nfexpire
그래서 crontab이 실행해야 하는 몇 가지 명령 목록이 있습니다 /etc/crontab
. 한동안 잘 작동했지만 최근에는 완전히 작동을 멈췄습니다. 다른 모든 작업은 실행됩니다 /etc/crontab
. crontab 데몬이 실행 중인지 확인했습니다.systemctl status crond
오류가 있는지 확인 /var/log/cron
하고 /var/log/messages
실행했지만 아무 것도 발견되지 않았습니다.journalctl
터미널을 통해 명령이 실행될 수 있는지 확인했으므로 문제는 crontab 어딘가에 있습니다.
문서 /etc/crontab
:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 03 01 * * nfexpire -e "something"
30 03 01 * * nfexpire -e "something"
30 03 01 * * nfexpire -e "something"
30 03 01 * * nfexpire -e "something"
30 03 01 * * nfexpire -e "something"
30 03 01 * * nfexpire -e "something"
아, 끝에 줄 바꿈이 있는지 확인했습니다.
어쩌면 권한 문제가 있는 걸까요?
-rw-r--r--. 1 root root 891 Feb 6 2020 /etc/crontab
하지만 이 설정으로 몇 달 동안 아무 문제 없이 실행되고 있어서, 무엇을 변경해야 할지 모르겠습니다.
추가 정보
시스템: 센토스 7
커널: 3.10.0-1160.el7.x86_64
답변1
이는 구문 문제입니다. 이 파일에는 추가 필드를 추가해야 합니다.사용자 이름:
30 03 01 * * username nfexpire -e "something"
그러면 cron 작업이 username
.
기타 고려 사항.
- 모든 작업이 시작되는지 여부동시에? 너무 좋지 않아. 이 경우 모든 작업을 실행하고 하나의 작업만 갖도록 스크립트를 만드는 것이 좋습니다.
- /etc/crontab을 전혀 편집하지 않는 것이 가장 좋습니다. 루트 소유 작업의 경우 드롭 디렉터리
/etc/cron.d
및 기타 항목/etc/cron.*
(실행 가능한 스크립트 배치)을 사용하는 경우 이러한 작업의 시작 시간은 그다지 중요하지 않으며 중요한 것은 작업 기간(매일, 매주 등)뿐입니다. 사용자 실행 작업을 실행하려면 전용 사용자 crontab을 사용하십시오.crontab -e -u username
작업은 해당 특정 crontab이 속한 사람 아래에서 실행되므로 사용자 이름 필드를 생략할 수 있습니다. 그럼에도 불구하고 이렇게 하면 시스템 업데이트가 crontab 항목을 방해하지 않습니다. systemd
타이머 사용을 고려해보세요 .
답변2
/etc/crontab 파일은 root
각 명령 앞에 있어야 합니다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 03 01 * * root nfexpire -e "something"
30 03 01 * * root nfexpire -e "something"
30 03 01 * * root nfexpire -e "something"
30 03 01 * * root nfexpire -e "something"
30 03 01 * * root nfexpire -e "something"
30 03 01 * * root nfexpire -e "something"