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
.