こうこく
作 ▸
改 ▸

cron.dに置くファイルの名前にピリオドが入ってると動かない

ピリオドを含む名前のファイルを cron.d に置いたら動かなくて、最終的にファイル名を変更したら動いたという、本当にそれだけです。

Ubuntu 18

cron.d が動かなくてやったこと

動作確認のために毎分動くように cron.d を設定してました。が、待てど暮らせど /var/log/syslog に出てこないので、いくつか確認しました。

cronが動いてるか確認

service cron status

普通に動いてた。

cron.dファイルの所有者とパーミッション確認

ll /etc/cron.d/

# 結果

-rw-r--r--  1 root root   99 Nov 27 22:16 periodo_haitteru.namae

正常に動いてた他の cron.d ファイルたちと同じだった。

ぐぐると、root以外に実行権限があったらNG (0600 しかダメ) と書いてるページがいくつか見つかったけど、Ubuntuの場合は違うっぽい。最終的に 0644 のままでも動いた。

cron再起動

sudo service cron restart

設定ファイルがリロードされてないのかと思って再起動したけど、やっぱり動かない……。

ファイル名変更

TeraTermで接続してたんだけど、ふと当該のファイルを vi で開いた時に、他の cron.d ファイルと違うシンタックスハイライトをされてることに気づく。

もしかしてcronのファイルだと認識されてない? と思ってファイル名からピリオドを除去してみると、ビンゴ。restartせずともすぐさま反映されて、毎分動きだした。

以上😭

参考にさせていただいた記事

Ubuntu 14.04 LTSでcron設定 - メンチカツには醤油でしょ!!

/etc/cron.dへ置くファイルにはownerとpermissionに制約があるっぽい - モヒカンは正義

この記事に何かあればこちらまで (非公開)