오후 10시에 MF를 실행하기 위해 기본 종료 crontab을 수행하려고 합니다. 그래서 나는 다음을 수행했습니다.
sudo crontab -e
crontab 내부에 다음 줄을 추가했습니다.
0 22 * * 1-5 shutdown now
작업이 잘못 실행되고 있는 것 같은데 오류를 찾을 수 없습니다 /var/log/syslog
. 여기에 뭔가 눈에 띄게 잘못된 것이 있나요?
답변1
문제는 crontab 파일의 PATH가 제한되어 있고 /sbin
가장 가능성이 낮은 위치를 포함하지 않는다는 것일 수 있습니다.
따라서 닫으려면 전체 경로를 사용해야 합니다( check 를 사용할 수 있음 sudo which shutdown
).
0 22 * * 1-5 /sbin/shutdown now
에서 man 5 crontab
:
특히, "/usr/bin:/bin" 이외의 PATH를 원할 경우 crontab 파일에서 설정해야 합니다.
/sbin/shutdown
다음을 지정하는 대신:
PATH = /sbin:$PATH
0 22 * * 1-5 shutdown now
답변2
- 실행 시간을 나열해 볼 수 있습니다
cronlist
예상대로 작동하는지 확인하세요. 제가 아는 한,cron
작업은 월요일부터 금요일까지 22:00에 진행됩니다. 그렇게 하시겠습니까? shutdown now
일반 사용자로 실행하면 어떻게 인쇄되나요?- 무엇을 인쇄할까요
service cron status
? 표시되지 않으면cron start/running
다시 시작해야 합니다service cron start
. - 기계의 시계가 정확합니까? 구성되지 않았거나 동기화되지 않아 작업이 완전히 잘못된 날짜 또는 시간에 실행될 수 있습니다.
- 다음과 같은 오류 메시지가 있나요?
PAM bad jump in stack
존재하다/var/log/auth.log
? 이 게시물에는 디버깅 정보와 시도해 볼 만한 내용이 많이 포함되어 있습니다.
답변3
tail -n 100 /var/log/cron 확인
일반 사용자나 루트 사용자를 사용하여 이 크론을 실행해 보셨나요?
답변4
shutdown 명령을 사용할 권한이 없습니다. 다음 명령을 실행해 보십시오:
sudo chmod u+s /sbin/shutdown
그런 다음 crontab에서 종료에 대한 전체 경로를 지정하십시오.
0 22 * * 1-5 /sbin/shutdown now