เมื่อเร็ว ๆ นี้ฉันเปลี่ยนจาก anacrontab เฉพาะผู้ใช้ (ใช้ -t) เป็น global-one ตอนนี้ทุกวัน anacron ส่งข้อความให้ฉัน (ส่งอีเมลถึงรูท) ว่าไม่ได้เปิดโฟลเดอร์ cron.daily:
Subject: Anacron job 'cron.daily' on myComputer
Message: run-parts: failed to open directory /etc/cron.daily: No such file or directory
rsnapshot-jobs ทำงานได้ตามปกติอย่างไรก็ตามงานที่เกี่ยวข้องกับ cron ไม่ได้ ที่นี่ anacrontab ของฉัน/etc/anacrontab
# /etc/anacrontab: configuration file for anacron
#
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
# days to wait - delay in minutes - job-name - command to execute
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts--report /etc/cron.monthly
1 5 rsnapshot.day /usr/local/bin/doBackup.sh daily
7 30 rsnapshot.week /usr/local/bin/doBackup.sh weekly
และนี่คือผลลัพธ์ของls -rtl /etc | grep cron
การดูการอนุญาตของโฟลเดอร์:
-rw-r--r-- 1 root root 722 Jul 3 2012 crontab
drwxr-xr-x 2 root root 4096 Sep 11 2015 cron.hourly
drwxr-xr-x 2 root root 4096 Sep 11 2015 cron.monthly
drwxr-xr-x 2 root root 4096 Sep 11 2015 cron.weekly
drwxr-xr-x 2 root root 4096 Jan 25 16:04 cron.daily
-rw-r--r-- 1 root root 858 Mar 21 10:49 anacrontab
drwxr-xr-x 2 root root 4096 Mar 21 10:57 cron.d
drwxr-xr-x 10 root root 4096 Mar 21 10:57 cron-apt
(ชื่อเสียงไม่เพียงพอในการสร้างแท็ก 'anacron')
แก้ไข 1 :
ข้อมูลเพิ่มเติม. หากฉันคัดลอกบรรทัดที่ดูเหมือนว่าสร้างข้อความและดำเนินการเป็นรูทจะไม่มีปัญหา (ฉันเพิ่ม -v เพื่อดูเอาต์พุตบางตัว แต่มันทำงานได้โดยไม่มี):
root@myComputer:/etc# run-parts -v /etc/cron.daily
run-parts: executing /etc/cron.daily/0anacron
run-parts: executing /etc/cron.daily/apt
run-parts: executing /etc/cron.daily/aptitude
run-parts: executing /etc/cron.daily/bsdmainutils
run-parts: executing /etc/cron.daily/cracklib-runtime
run-parts: executing /etc/cron.daily/dpkg
run-parts: executing /etc/cron.daily/exim4-base
run-parts: executing /etc/cron.daily/logrotate
run-parts: executing /etc/cron.daily/man-db
run-parts: executing /etc/cron.daily/mlocate
run-parts: executing /etc/cron.daily/passwd
run-parts: executing /etc/cron.daily/popularity-contest
root@myComputer:/etc#
แก้ไข 2 :
ในที่สุดฉันก็รู้ว่าอะไรที่ทำให้ anacron ทำสิ่งนั้น มันเกี่ยวกับการจบบรรทัดในแอนนาคับแท็บ:
sed -n l anacrontab
# /etc/anacrontab: configuration file for anacron\r$
...
Anacrontab ที่ดีต่อสุขภาพไม่ควรอยู่\r
ที่ท้ายบรรทัด (นี่คือ Carriage Returns) .. จริง ๆ แล้วฉันไม่รู้เลยว่าพวกเขามาที่นี่ได้อย่างไร
ดังนั้นนี่คือข้อผิดพลาดใน anacron Anacron อาจจะปฏิเสธที่จะเรียกใช้ไฟล์ที่มีรูปแบบไม่ถูกต้องสมบูรณ์หรือควรกิน Carriage Returns และทำงานอย่างที่คาดไว้ ฉันยื่นข้อผิดพลาดไปยังตัวแก้ไขข้อบกพร่อง debian สถานะปัจจุบันของข้อผิดพลาดสามารถตรวจสอบได้ที่นี่: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=821081