
新しいサーバーをオンラインにして、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: バックアップ.daily logrotate mailbox_check
- cron.monthly; backup.monthly、および;
- cron.weekly; バックアップ.weekly
設定で何か間違ったことをした、あるいは実行されなかったと思うのに実行された理由について他の問題があると考える覚悟はできています。しかし、私がsystemctl list-timer
追加したものをいじり始める前にそこにあったインストール済みパッケージによってそこに置かれた s 出力の他のエントリが表示されません。
おそらく、問題は私がリストタイマーの出力に不慣れなことでしょうか? これらの他のジョブも表示されてはいけないのでしょうか?
答え1
Linux の多くのことと同様に、物事を実行する方法は複数あります。Cron と systemd タイマーは、cron のようなことを実行する異なる方法です。upstart、init.d、systemd は 3 つの異なる init システムです。
多くのcronジョブは、特定のユーザーcrontab -l
、特定のユーザーとして、またはcrontab -u username -l
root として別のユーザーの cron ジョブをチェックすることができます。
毎日、毎週、毎月などもあります
それぞれを詳しく調べることもできますが、それらは一連のファイルなので
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 ジョブと同じです。