
저는 CentOS 5.3을 실행 중이고 "at" 데몬의 모든 메시지를 기록하고 싶습니다. 내 syslog.conf에는 다음 항목이 포함되어 있습니다.
cron.* /var/log/cron
나는 syslog의 cron 라인이 "cron, anacron, at 및 배치" 전체 제품군을 참조한다고 가정했습니다. 그러나 cron 및 anacron 작업은 기록되는 것처럼 보이지만 "at" 작업은 기록되지 않습니다. atd 작업을 어떻게 기록합니까?
관심을 가져주셔서 감사합니다
(추가됨) 오류가 있을 경우를 대비해 syslog.conf의 내용을 추가하고 싶습니다.
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
답변1
'at' 프로그램의 소스를 보면 (CentOS 5.3 소스 저장소에서) , 실제로 syslog에 로깅하는 것처럼 보이지만 at 데몬 자체와 관련된 치명적인 오류만 기록됩니다(예: 2 at 데몬을 동시에 실행하려고 하는 경우).
그러나 프로세스 실행, 결과 반환 코드 및 표준 오류/출력은 syslog에 전혀 기록되지 않습니다. 재컴파일이 필요한 디버그를 켤 때에도 로그 메시지는 최종 사용자에게 그다지 많은 정보를 제공하지 않으며 다음과 같이 작성됩니다.
atd[24116]: pid 24121 exited with status 0.
어떤 명령이 실행되었는지, 어떤 사용자가 실행했는지 또는 표준 출력/오류가 무엇인지 식별하는 데 많은 도움이 되지 않습니다.
atd하다명령이 실패했거나 표준 출력/오류가 발생한 경우 명령을 요청한 사용자에게 이메일 알림을 보냅니다. 그러나 출력 없이 성공하는 명령의 경우 메일이 전송되지 않습니다. -m 플래그를 사용하여 이를 변경할 수 있습니다.
에서(1)에서:
-m 출력이 없더라도 작업이 완료되면 사용자에게 메일을 보냅니다.
답변2
이와 같은 경우에는 syslog에 기록하는 명령 주위에 래퍼를 사용합니다. 예를 들어:
#!/bin/bash
logger -i -t mycmd Starting
/bin/somecommand
logger -i -t mycmd Completed
exit 0
그런 다음 cron, at 등에서 래퍼 스크립트를 대신 호출하겠습니다.
나는 이것이 해결책이라기보다는 해결 방법에 가깝다는 것을 알고 있지만 작업은 완료됩니다.
답변3
/var/log/secure(RHEL)
PAM을 통해 atd 로그를 기록하려면 syslog.conf를 확인하여 pam이 로그인하는 위치를 알아보세요.
답변4
에 따르면atd(8)
, 이미 syslog에 기록되어 있으므로 잘못된 syslog 규칙이 없는지 확인하면 됩니다.
먼저 여기에 파일을 게시하세요 syslog.conf
.
또한 atd
특정 로그 기능을 지정하는 한 구성할 수는 없지만 문제가 되지는 않습니다. syslog 구성이 올바른지 확인하면 됩니다.