웹사이트와 Wiki를 호스팅하는 CentOS 7 VM에서 크론 오류 문제를 해결하려고 합니다. cron 문제 해결에 대한 많은 정보가 온라인에 있지만 현재 보고 있는 내용을 이해할 수 없습니다(아직 설명도 찾지 못했습니다).
크론 작업 설정이 있습니다.
# ls -Al /etc/cron.daily/
total 24
-rwxr-x--- 1 root root 332 Nov 4 20:53 yum-daily.cron
-rwxr-x--- 1 root root 1206 Apr 12 2018 gdrive-backup
-rwx------ 1 root root 219 Oct 30 15:12 logrotate
-rwxr-x--- 1 root root 618 Oct 30 10:55 man-db.cron
-rwx------ 1 root root 208 Apr 10 2018 mlocate
그러나 cron은 어떤 작업도 표시하지 않습니다.
[root@ftpit ~]# whoami
root
[root@ftpit ~]# crontab -l
no crontab for root
그리고:
[root@ftpit ~]# for user in $(cut -f1 -d: /etc/passwd); do crontab -l $user 2>/dev/null; done
[root@ftpit ~]#
cut -f1 -d: /etc/passwd
사용자 목록을 반환합니다(아래 참조).
cron이 작동하지 않는다고 주장하는 이유는 무엇입니까?
# cut -f1 -d: /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
saslauth
mailnull
smmsp
rpc
sshd
nscd
named
apache
tcpdump
mysql
postfix
<user XXXX>
<user yyyy>
tss
systemd-bus-proxy
systemd-network
ntp
답변1
이 crontab
명령은 스풀만 작동 하며 등에 정의된 작업은 고려 /var/spool/cron
하지 않습니다 ./etc/cron.daily
모든 크론 작업을 나열하는 좋은 방법은 없습니다. 다음은 몇 가지 아이디어입니다.
head -n -0 /var/spool/cron/* /etc/crontab /etc/cron.d/*
ls /etc/cron.{hourly,daily,weekly,monthly}/
(모든 crontab을 표시하면 삭제된 사용자에 해당하는 파일에 대한 오탐지가 포함될 수 있습니다.)
systemd를 사용하면 타이머를 나열할 수도 있습니다.
systemctl list-timers
cron 작업을 디버깅할 때 많은 시스템에서 일일, 주간 및 월간 작업이 cron이 아닌 anacron에 의해 실행된다는 점을 기억할 가치가 있습니다.
당신은 또한 볼 수 있습니다내 컴퓨터에서 예약된 모든 크론 작업 목록을 얻으려면 어떻게 해야 합니까?