나는 10분마다 실행되는 일부 mtr
( ) 출력과 함께 한 시간 동안 매시간 실행되는 crontab 작업을 가지고 있으며 traceroute
(이는 이메일로 다시 전송되기 전에 한 시간 이상 지속됩니다) 지금까지 현재 진행 상황을 보고 싶습니다.
Linux에서는 다음과 같이 할 수 있습니다.fd를 열어 스크립트 결과가 들어 있는 임시 파일에 액세스합니다..
OpenBSD에서 이 작업을 어떻게 수행할 수 있나요?
이 작업을 시도했지만 fstat | fgrep -e USER -e cron -e mtr
임시 파일을 전혀 찾을 수 없습니다.
답변1
cron이 작업 출력 메일링을 처리하는 방법에 대한 소스를 조사했습니다.
cron(8)
mail(1)
임시 파일을 남기지 않고 stdout 및 stderr을 실행 중인 작업으로 직접 설정하고 파이프합니다 . 411행을 보십시오do_command.c
(1).mail(1)
표준 입력은 헤더가 필요하기 때문에 완벽하게 준비되어야 합니다. 임시 파일(보통 )을 열었다/tmp/mail-R…
가 흔적을 남기지 않기 위해 즉시 삭제합니다. 83행을 보십시오collect.c
(2).
아무리봐도 의도적인 노력인거 같은데아니요가로챌 수 있는 임시 파일을 남깁니다. 장기 실행 cronjob에서 일어나는 일을 가로채야 하거나 원한다면 임시 파일을 직접 설정해야 합니다.
이 시점에서 제가 제안하는 것은 tee $HOME/cronjob.out
안전한 장소에 작업 출력의 복사본을 캡처하는 cronjob을 추가하는 것입니다.
답변2
출력을 가로채야 합니다(또는 임시 파일이 어디에 있는지 알아내야 합니다). 죄송합니다. *BSD에서 이 작업을 수행하는 방법을 모르겠습니다. 그러나 파일이 버퍼링되지 않는 한 버퍼가 가득 찰 때마다(약 4KiB 정도) 출력만 표시되므로 꽤 오랜 시간이 걸릴 수 있습니다. 현재 상태를 확인하고 싶다면, 수동으로 명령을 실행하기만 하면 너무 비용이 많이 드나요?