Cron に関する投稿を表示しています

cron って +x ついてないと動かないのね

Let's Encrypt の証明書が切れるよーってメールが度々来ていて certbot の cron 設定しているはずなのになんだかなあと思ってその都度手動でやっていた。

cron はちゃんと動いている cron.daily は anacron に設定されている。

$ cat /var/log/cron* | grep daily | head
Dec 16 04:30:07 ... run-parts(/etc/cron.daily)[15097]: finished logrotate
...

$ cat /etc/anacrontab
...

#period in days   delay in minutes   job-identifier   command
1    5    cron.daily        nice run-parts /etc/cron.daily

...

どうやら+x がついていないのが原因っぽいなってことがわかった。

$ ls -al /etc/cron.daily/
...
-rw-------   1 root root   46 Nov 18 22:05 certbot
...
-rwx------   1 root root  219 Jul 15 21:16 logrotate
...

ので+x をつけ、あとで様子を見ることにする。

$ sudo chmod u+x /etc/cron.daily/certbot

anacron は run-parts でプログラムを起動する、というかそう設定に書いてある。

第 21 章 システムタスクの自動化 - Red Hat Customer Portal

Linux 2.6 - man page for run-parts (linux section 8)

run-parts runs all the executable files named within constraints described below found in directory directory. Other files and directories are silently ignored.

だそうで cron.daily のディレクトリに何かしらのスクリプトなり実行ファイルを置いていても、実行することの出来ないものであれば無視されるのは正しい動き。
verbose オプションつけられたら cron 側のログ的なところにもうちょっと何かでてくれそうな気がする。
ちなみにこのサーバにいる run-parts にはオプションが list と test くらいしかなかった。多分 cron か anacron が古い…?

$ man run-parts
...
SYNOPSIS
       run-parts [--list|--test]<directory>
...

適当に yum update しても出てこない。
調べてみると久しく更新されていないっぽい。

crontabs-1.11-6.20121102git.el7.noarch.rpm CentOS 7 Download

パッケージに含まれる run-parts を更新していないってことなのかな、わからん。

まあいっか、ということで追いかけるのはおわり。