/etc/crontab의 유효한 코드는 실행되지 않습니다.

/etc/crontab의 유효한 코드는 실행되지 않습니다.

사용자 정의되지 않은 최소 Ubuntu 16.04 서버 시스템의 /etc/crontab에 다음 코드가 있는데, 수동으로 실행하면 제대로 실행됩니다.

0 8 * * * zip -r /UsualUser/backups/dirs/html-$(date +\%F-\%T-).zip /var/www/html
0 8 * * * find /UsualUser/backups/dirs/* -mtime +30 -exec rm {} \;
# m h dom m dow
# 0-59 | 0-23 | 1-31 | 1-12 | 0-6

에는 오류가 없습니다 journalctl -u cron.

문제는 권한 때문에 파일을 실행할 수 없기 때문이라고 생각합니다 644. 그러나 그 안에 있는 코드가 작동하기 시작하도록 실행 가능하게 만드는 가장 안전한 권한 집합이 무엇인지 잘 모르겠습니다.

답변1

Ubuntu의 파일은 /etc/crontab시스템 crontab 파일입니다. 실행 가능하지 않아야 하며 사용자의 crontab 파일과 다른 형식이어야 합니다.

형식의 차이점은 여섯 번째 필드가 항목을 수행한 사용자의 이름이라는 점입니다.

또한 %crontab 파일에서는 특별한 의미를 갖습니다. %이스케이프 처리하지 않는 한 모든 내용은 줄바꿈으로 변경됩니다 (하지만 예방 조치를 취하신 것으로 보입니다).\%

이러한 사항은 man 5 crontabcrontab 매뉴얼( )에 설명되어 있습니다.

cron 명령의 형식은 V7과 매우 호환되며 많은 상향 호환 확장이 가능합니다. 각 줄에는 5개의 시간 및 날짜 필드가 있고 그 뒤에 명령, 개행 문자( \n)가 옵니다. 시스템 crontab( /etc/crontab)은 명령의 사용자 이름이 시간 및 날짜 필드 뒤, 명령 앞에 지정된다는 점을 제외하고 동일한 형식을 사용합니다.

관련 정보