구문은 무엇입니까?로깅 파일 시스템구성 파일?
공식 문서에는 loggedfs
명령 지침과 구성 파일 예제만 포함되어 있습니다. 좋습니다. XML입니다. 그런데 가능한 태그와 속성은 모두 무엇이며, 그 의미는 무엇입니까?
답변1
Config.cpp
구성 분석을 담당하는 파일을 살펴 보았습니다 . 예제 구성은 실제로 사용 가능한 옵션을 캡처하는 데 꽤 효과적입니다. 너무 많지는 않습니다.
아래의 "예제 출력"을 참조할 때 다음 줄에 대해 이야기하고 있습니다(예제 페이지에서 무작위로 가져옴).
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
루트 태그는 <loggedFS>
다음과 같은 두 가지 선택적 속성을 갖습니다.
- 로그가 활성화되었습니다.문자열입니다. "true"는 실제로 로깅 정보를 출력해야 함을 의미하며, 그 밖의 경우에는 모든 로깅이 비활성화됩니다. 이것이 프로그램의 전부이기 때문에 기본값은 "true"입니다.
- 인쇄 프로세스 이름문자열입니다. "true"는 로그 출력에 프로세스 이름이 포함됨을 의미하고, 다른 값은 포함되지 않음을 의미합니다. 기본값은 "참"입니다. 예제 출력에서
kded [kdeinit]
프로세스 이름은 다음과 같습니다 .
관심 있는 유일한 하위 노드는 <include>
및 입니다 <exclude>
. 예제에서는 이들을 <includes>
and <excludes>
블록 아래에 그룹화하지만 파서는 이러한 노드를 무시합니다( <include>
및를 제외한 다른 노드도 마찬가지로 <exclude>
).
물론, <include>
규칙은 일치할 때 로그 줄을 출력하도록 하고, <exclude>
줄은 출력하지 않도록 합니다. 중복이 발생하면 <exclude>
덮어씁니다 <include>
. 일반적으로 <include>
기록할 이벤트와 일치하는 규칙이 하나 이상 필요 하지만 <include>
규칙이 0개인 경우 모든 이벤트가 기록됩니다.<exclude>
일치하는 선이 있더라도.
둘 다 동일한 속성을 <include>
갖습니다 .<exclude>
- 확장하다액세스/수정/모든 파일에 대한 절대 경로와 일치하는 정규식입니다(
extension
아주 나쁜 이름이지만 일반적인 사용법인 것 같습니다). 예를 들어,touch /mnt/loggedfs/some/file
정규식의extension
(부분) 일치가 필요한 경우/mnt/loggedfs/some/file
- UID은 정수 또는 을 포함하는 문자열입니다
*
. 이 규칙은 작업을 발생시킨 프로세스의 소유자가 지정된 사용자 ID(자연적으로 모든 사용자 ID가 일치함을 의미함)를 갖는 경우에만*
지정된 작업과 일치합니다 . 예제 출력에서1000
uid는 - 행동파일 시스템에서 수행되는 특정 유형의 작업입니다. 예제 출력에서는 가
getattr
작업입니다. 가능한 조치는 다음과 같습니다.- 사용할 권리
- chmod
- 존
- 속성 가져오기
- 협회
- 목차
- MKFIFO
- 무노드
- 열려 있는
- 읽기 전용으로 열기
- 오픈 리터러시
- 열기 - 쓰기 전용
- 읽다
- 디렉토리 읽기
- 링크 읽기
- 이름을 바꿔라
- 목차
- 통계 파일 시스템
- 심볼릭 링크
- 자르기
- 풀리다
- 항목
- Utimens
- 쓰다
- 이름 바꾸기정규식입니다. LoggedFS가 수행한 실제 파일 시스템 작업의 반환 코드가 0인 경우 정규식은 문자열과 일치합니다
SUCCESS
. 0이 아닌 반환 코드는 와 다를 수 있습니다FAILURE
. 이것이 가능한 유일한 값이므로 하드코딩하거나 원하는 경우 둘 다를 사용할 가능성SUCCESS
이 높습니다FAILURE
..*
예제 출력에서는SUCCESS
다음과 같습니다.retname
속성 과 달리 <loggedFS>
이러한 속성에는 기본값이 없습니다. 또한 파서는 알 수 없는 속성과 오류를 인식하지만 누락된 속성은 감지하지 않으므로 속성을 잊어버리면 초기화되지 않은 메모리를 사용하게 됩니다.