cronjob을 기록하는 더 좋은 방법을 찾고 있습니다. 대부분의 cronjob은 이메일이나 콘솔을 스팸하거나 무시하거나 다른 로그 파일을 만드는 경향이 있습니다.
이 경우 중앙 Nagios 서버로 데이터를 보내는 Nagios NSCA 스크립트가 있습니다. 이 send_nsca 스크립트는 또한 단일 상태 행을 STDOUT에 인쇄하여 성공 또는 실패를 나타냅니다.
0 * * * * root /usr/local/nagios/sbin/nsca_check_disk
그러면 다음 메시지를 root @ localhost로 전자 메일로 보낸 다음 sysadmins 팀으로 전달됩니다. 스팸.
forwarded nsca_check_disk : 1 개의 데이터 패킷이 호스트로 성공적으로 전송되었습니다.
로깅 방법을 찾고 있습니다.
- 이메일이나 콘솔로 메시지를 스팸하지 않습니다
- 몇 개월 또는 몇 년 후에 정리가 필요한 다른 krufty 로그 파일을 작성하지 마십시오.
- 로그 정보를 어딘가에 캡처하여 원하는 경우 나중에 볼 수 있습니다.
- 대부분의 유닉스에서 작동
- 기존 로그 인프라에 적합합니다.
- ‘facility’및 ‘priority’와 같은 일반적인 syslog 규칙을 사용합니다.
- 항상 내부적으로 로깅하지는 않는 타사 스크립트를 사용할 수 있습니다.
답변
이 질문을 쓰는 과정에서 나는 스스로 대답했다. 그래서 나는 ” 저희 스타일 ” 이라고 대답 할 것 입니다. 이것은 Dennis Williamson이 제공 한 답변으로 확장됩니다.
다음은 모든 Cron 출력을 /usr/bin/logger
(stderr,를 사용하여 stdout으로 변환 2>&1
)을 포함하고 syslog에 ‘tag’가으로 전송됩니다 nsca_check_disk
. Syslog가이를 처리합니다. 이러한 시스템 (CentOS 및 FreeBSD)에는 이미 내장 된 로그 회전 메커니즘이 var/log/mycustom.log
있으므로 디스크를 채우 거나 채우는 것과 같은 로그에 대해 걱정할 필요가 없습니다 .
*/5 * * * * root /usr/local/nagios/sbin/nsca_check_disk 2>&1 | /usr/bin/logger -t nsca_check_disk
/ var / log / messages에 다음과 같은 추가 메시지가 추가되었습니다.
Apr 29, 17:40:00 192.168.6.19 nsca_check_disk: 1 data packet(s) sent to host successfully.
/ usr / bin / logger는 기존 syslog 구성 및 인프라와 잘 작동하며 대부분의 Unix 배포판에 포함되어 있기 때문에 / usr / bin / logger가 좋습니다. 대부분의 * nix 배포판은 이미 로그 회전을 수행하고 잘 수행합니다.
답변
로거를 통해 출력을 파이프하십시오 .
0 * * * * root /usr/local/nagios/sbin/nsca_check_disk | logger -p local0.notice
편집 : 업데이트가 올바른 방법으로 보입니다.
답변
또한 실행할 수있는 crond
옵션 -s
(또는 -S
그 출력으로 전송되도록 비지 박스에서) syslog
.