Fexora Server 32 では、systemctl list-timers --all で新しい cron ジョブが表示されない

Fexora Server 32 では、systemctl list-timers --all で新しい cron ジョブが表示されない

新しいサーバーをオンラインにして、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同じ出力が得られました。そこで、再起動しても、やはり同じ出力が得られました。

私の追加は次のとおりです:

  1. cron.d: local - 通常のスケジュールには含まれないローカルな処理のセット
  2. cron.daily: バックアップ.daily logrotate mailbox_check
  3. cron.monthly; backup.monthly、および;
  4. cron.weekly; バックアップ.weekly

設定で何か間違ったことをした、あるいは実行されなかったと思うのに実行された理由について他の問題があると考える覚悟はできています。しかし、私がsystemctl list-timer追加したものをいじり始める前にそこにあったインストール済みパッケージによってそこに置かれた s 出力の他のエントリが表示されません。

おそらく、問題は私がリストタイマーの出力に不慣れなことでしょうか? これらの他のジョブも表示されてはいけないのでしょうか?

答え1

Linux の多くのことと同様に、物事を実行する方法は複数あります。Cron と systemd タイマーは、cron のようなことを実行する異なる方法です。upstart、init.d、systemd は 3 つの異なる init システムです。

多くのcronジョブは、特定のユーザーcrontab -l、特定のユーザーとして、またはcrontab -u username -lroot として別のユーザーの 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 ジョブと同じです。

関連情報