crontab은 /etc/cron.d에서 실행되지 않습니다.

crontab은 /etc/cron.d에서 실행되지 않습니다.

Debian Jessie에서 내가 한 일은 다음과 같습니다:

  • 크론을 통해 설치apt-get install cron
  • backup_crontab파일을 넣어/etc/cron.d/

그러나 작업은 실행되지 않습니다.

다음은 일부 출력입니다.

/# crontab -l
no crontab for root

/# cd /etc/cron.d && ls
backup_crontab

/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1

특정 crontab이나 cron "서비스" 자체를 활성화하기 위해 수행해야 할 작업이 있습니까?

답변1

필수 서류 /etc/cron.d도 나와있습니다사용자작업은 그 아래에서 실행됩니다.

0,15,30,45 * * * * root /backup.sh >/dev/null 2>&1

또한 권한과 소유자:그룹이 올바르게 설정되었는지( -rw-r--r--및 소유한 사람이 있는지 root:root) 확인해야 합니다.

답변2

내가 관찰한 또 다른 점은 파일에는 /etc/cron.d확장자가 있을 수 없다는 것입니다. 내 특별한 경우에는 심볼릭 링크가 있습니다.

# my-job.crontab
* * * * * root echo "my job is running!" >> /tmp/my-job.log

$: ln -sf /home/me/my-job.crontab /etc/cron.d/
# This did not work -> job would not run

$: ln -sf /home/me/my-job.crontab /etc/cron.d/my-job
# This did work -> job ran fine

파일 이름 제한 사항은 실행 섹션 매뉴얼 페이지에 설명되어 있습니다.http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html, --regex 옵션을 전달하여 파일 형식을 재정의할 수 있습니다.

그러나 기본 크론 동작은 확장되지 않습니다. 아래 설명을 참조하세요.https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022

답변3

크론 파일 끝에 필요한 빈 줄이 누락된 것 같습니다. 나는 같은 문제가 있었지만 여기에 나열된 모든 것(사용자 권한, 파일 이름, cron 버전 등)을 확인한 후에 마지막 항목 뒤에 개행 문자가 없어서 /etc/cron.d/own_cron전체 파일이 무시된다는 것을 깨달았습니다.

답변4

이 컴퓨터의 유일한 사용자인 경우 crontab -e명령을 처음 실행할 때 편집기를 선택하라는 메시지가 표시됩니다. 그런 다음 이것을 추가할 수 있습니다:

0,15,30,45 * * * * /backup.sh >/dev/null 2>&1

sudo crontab -e일반 사용자 계정으로 변경하는 경우 일정에 따라 실행하려는 스크립트를 구성하는 데 사용해야 합니다 root.

crontab -l를 사용하여 설정하면 현재 crontab만 표시됩니다 crontab -e. /에 cron 파일이 있으면 /etc/cron.d으로 끝나지 않습니다 crontab -l.

또한 다음 명령을 사용하여 스크립트가 실행 가능한지 확인해야 합니다 chmod +x /backup.sh.

관련 정보