특정 파일의 활동을 추적하는 방법 [닫기]

특정 파일의 활동을 추적하는 방법 [닫기]

현재 서버 중 하나에 MAAS를 배포했습니다. 이것은 모두 작동합니다(대부분의 경우). 이제 MAAS의 WOL 파일(/etc/maas/templates/power/ether_wake.template)에 몇 줄을 추가했습니다. 이 파일에 몇 가지 기능을 추가하고 싶습니다.

먼저 모든 것이 제대로 작동하는지 확인하기 위해 bash 스크립트를 만들었고, 몇 가지 버그를 수정한 후에 제대로 작동했습니다. 그 후 WOL 파일에 추가했습니다. 그 이후로는 더 이상 작동하지 않습니다. 글쎄요, 저는 bash 스크립팅이나 다른 것이 처음이 아니지만 디버깅 방법을 모릅니다. 오류 로그를 보면 해당 파일과 관련된 내용이 전혀 표시되지 않습니다. 이는 오류가 발생했는지 여부에 대한 일종의 힌트를 제공합니다. 그렇다면 시간이 지남에 따라 이 특정 파일의 출력을 추적할 수 있는 일종의 CLI 도구가 있는지 알고 싶습니다. 가능합니까? 전반적으로 나는 이 문제에 올바른 방식으로 접근하고 있는가?

답변1

"CLI 도구는해당 특정 파일의 출력을 따르십시오.for a while"은 입니다 tail --follow=name --retry filename. 파일이 추가될 때 줄을 인쇄하고 파일을 삭제하고 다시 생성하면 파일의 시작 부분부터 읽습니다. 그러나 불행하게도 파일이 삭제되면 줄이 손실될 수 있습니다.잘린. 테스트 1:

터미널 1(인쇄되지 않음 bar):

$ tail --follow=name --retry test.log
tail: cannot open 'test.log' for reading: No such file or directory
tail: 'test.log' has appeared;  following new file
foo
tail: 'test.log' has become inaccessible: No such file or directory
tail: 'test.log' has appeared;  following new file
baz

NO2. 터미널:

$ echo foo > test.log
$ echo bar > test.log
$ rm test.log
$ echo baz > test.log

테스트 2, 터미널 1:

$ rm test.log
$ tail --follow=name --retry test.log
tail: cannot open 'test.log' for reading: No such file or directory
tail: 'test.log' has appeared;  following new file
1
2
tail: test.log: file truncated
3
4

NO2. 터미널:

$ echo 1 > test.log
$ echo 2 >> test.log
$ echo 3 > test.log
$ echo 4 >> test.log

시도하고 싶다면다음의 출력을 따르십시오.주문하다명령의 표준 출력(및 표준 오류도 가능)을 연결해야 합니다.무엇- 터미널(명령만 실행), 파일( command > my.log 2>&1) 또는 다른 명령( command 2>&1 | tail -f).

관련 정보