cron
저는 이 명령을 실행하도록 설정하려고 합니다 mysqlauditgrep
(MySQL 5.6 유틸리티 패키지입니다). 이 mysqlauditgrep
명령은 bash에 있습니다.
내가 실행하고 싶은 명령은 다음과 같습니다
mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
이 명령을 사용하면 mysql에서 생성된 감사 로그를 그리드 형식으로 볼 수 있습니다. mysql 쉘에서는 실행되지 않습니다.
그래서 방금 Cron을 설치하고 다음을 설정하여 crontab을 설정했습니다.
00 11 * * fri root usr/bin/mysqlauditgrep mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
crontab 파일에 들어간 후 /sbin/service crond start를 실행했습니다.
하지만 그 행동이 일어났는지는 알 수 없습니다.
답변1
crontab 라인은 다음과 같아야 합니다:
00 11 * * fri /usr/bin/mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
man 5 crontab
crontab 파일의 구문을 확인하려면 입력하세요.
답변2
cron 항목에 포함하는 줄이지 root
만 호출하면 현재 사용자로 편집이 crontab -e
시작되므로 필요하지 않습니다 . 모든 cron 항목은 아래에 있으므로 항목을 확인할 수 있습니다. 또한 cron 작업에 대한 특정 메시지가 포함된 cron 로그를 확인할 수 있습니다. 따라서 cron이 작업을 수행했는지 확인할 수 있으며 물론 스크립트가 괜찮은 경우 cron 항목을 기록하는 가장 좋은 방법은 MTA가 실행되는 동안 일부 스팸을 피하기 위해 항목을 리디렉션하는 것입니다. 마지막 항목은 스크립트 자체에 로깅을 추가하는 것입니다. 그러면 모든 것이 제대로 작동하고 있다고 100% 확신할 수 있습니다.cron
root
/var/spool/cron/<user>
/var/log/cron
>/dev/null
기본적으로 cron은 bash에서 stderr 및 stdout을 리디렉션하는 바로 가기로 사용 되지 sh
않지만 해결책은 crontab에 env varibale을 추가 하거나 crontab 줄의 스크립트 앞에 env varibale을 추가하는 것 입니다 . crontab은 현재 하나의 쉘을 호출합니다. 귀하의 요청을 동시에 볼 수 없으므로 가능한 경우 메일 프록시가 한 가지 솔루션이 될 수 있습니다.bash
cron &>
sh
SHELL=/bin/bash
bash -c