Недавно я переключился с пользовательского анакронтаба (используя -t) на глобальный. Теперь каждый день anacron отправляет мне сообщение (по электронной почте пользователю root), что ему не удалось открыть папку 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, не работают.
Вот мой анакронтаб /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')
Edit1:
Дополнительная информация. Если я скопирую строку, которая, кажется, генерирует сообщение, и выполню его от имени пользователя root, проблем не возникнет (я добавил -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#
Edit2:
Наконец-то я знаю, что заставило анакрон действовать так, как будто это провод. Это конец строки в anacrontab:
sed -n l anacrontab
# /etc/anacrontab: configuration file for anacron\r$
...
У здорового анакронтаба не должно быть \r
в конце строки (это возврат каретки) .. на самом деле я понятия не имею, как они туда попали.
Так что это ошибка в анакроне. Либо анакрон должен полностью отказаться от выполнения такого искаженного файла, либо он должен просто съесть возврат каретки и работать так, как ожидалось. Я отправил сообщение об ошибке в систему отслеживания ошибок Debian. Текущее состояние ошибки можно проверить здесь:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=821081.