
Я только что запустил новый сервер и настроил его так же, как и старый, в отношении cron, но задания не выполняются. Поэтому я внимательно просмотрел конфигурацию и проверил, что текущий cron работает так же, как и старый. Да, похоже, так!
Поскольку это система типа «systemd», я запустил соответствующую команду, чтобы посмотреть, что, по ее мнению, запланировано, и вот что я получил:
# systemctl list-timers --all
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-08-16 15:15:55 PDT 5min left Sun 2020-08-16 14:15:54 PDT 54min ago dnf-makecache.timer dnf-makecache.service
Sun 2020-08-16 20:57:26 PDT 5h 47min left Sat 2020-08-15 20:57:26 PDT 18h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2020-08-17 00:00:00 PDT 8h left Mon 2020-08-10 00:00:00 PDT 6 days ago fstrim.timer fstrim.service
Mon 2020-08-17 00:00:00 PDT 8h left Sun 2020-08-16 00:00:01 PDT 15h ago mlocate-updatedb.timer mlocate-updatedb.service
Mon 2020-08-17 00:00:00 PDT 8h left Sun 2020-08-16 00:00:01 PDT 15h ago unbound-anchor.timer unbound-anchor.service
5 timers listed.
Это все хорошо, но он не показывает мои конкретные дополнения - ни одно из них. Итак, я сделал то, что считал правильным, я запустил systemctl reload crond.service
и получил тот же вывод. Поэтому я перезапустил и все еще получил тот же вывод!
Мои дополнения:
- cron.d: local — набор локальных вещей, которые не входят в обычные расписания
- cron.daily: резервное копирование.ежедневная ротация журнала mailbox_check
- cron.ежемесячно; резервное копирование.ежемесячно, и;
- cron.еженедельно; резервное копирование.еженедельно
Я полностью готов поверить, что я сделал что-то неправильно в конфигурации, или, может быть, есть какая-то другая проблема, почему я НЕ ДУМАЮ, что они запустились, но они запустились. Но я не вижу других записей в выводе systemctl list-timer
s, которые были там установлены пакетами, которые были там еще до того, как я начал возиться со своими собственными дополнениями.
Может быть, проблема в моем незнании вывода list-timer? Разве он не должен показывать и эти другие задания?
решение1
Как и во многих вещах в Linux, есть более одного способа сделать что-то. Cron и systemd timer — это разные способы делать cron-подобные вещи, как и upstart, init.d и systemd — это 3 разные системы инициализации.
Многие задания cron принадлежатконкретный пользователь, поэтому вы можете либо crontab -l
от имени конкретного пользователя, либо crontab -u username -l
проверить задания cron другого пользователя как root.
У вас также есть ежедневные, еженедельные, ежемесячные и т. д.
Хотя вы можете изучить каждый из них, они представляют собой ряд файлов, поэтому
поэтому ls -la /etc/cron.*
я хотел бы дать вам обзор
geek@heckate_router:~$ ls -la /etc/cron.*
/etc/cron.d:
total 28
drwxr-xr-x 2 root root 4096 Jan 22 2020 .
drwxr-xr-x 117 root root 12288 Aug 12 06:54 ..
-rw-r--r-- 1 root root 589 Jun 26 2018 mdadm
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
-rw-r--r-- 1 root root 190 Jul 25 2018 popularity-contest
/etc/cron.daily:
total 76
drwxr-xr-x 2 root root 4096 Aug 12 06:54 .
drwxr-xr-x 117 root root 12288 Aug 12 06:54 ..
-rwxr-xr-x 1 root root 376 Nov 20 2017 apport
.....
/etc/cron.hourly:
total 20
drwxr-xr-x 2 root root 4096 Jul 25 2018 .
drwxr-xr-x 117 root root 12288 Aug 12 06:54 ..
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
/etc/cron.monthly:
total 20
drwxr-xr-x 2 root root 4096 Nov 18 2018 .
drwxr-xr-x 117 root root 12288 Aug 12 06:54 ..
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
/etc/cron.weekly:
total 28
drwxr-xr-x 2 root root 4096 May 30 2019 .
drwxr-xr-x 117 root root 12288 Aug 12 06:54 ..
-rwxr-xr-x 1 root root 723 Apr 7 2018 man-db
-rw-r--r-- 1 root root 102 Nov 16 2017 .placeholder
-rwxr-xr-x 1 root root 211 Jun 27 2018 update-notifier-common
Преобразуем их вскрипты таймера systemdвыходит за рамки этого ответа, но они естьнетто же самое, что и классическое задание cron.