読者です 読者をやめる 読者になる 読者になる

ソフトウェアエンジニア現役続行

雑多なことを綴ります

run-parts --test で cronスクリプトが動くかテスト

Linux

結論から言うと、以下のようにrun-partsコマンドを--testオプションで実行することで、cron.dailyで実行されるスクリプト名を確認することができます。同様にcron.hourly, cron.weekly, cron.monthlyも確認可能です。

run-parts --test /etc/cron.daily

cronスクリプトを作成したときにいつも苦心していたのが、そのcronスクリプトがちゃんと動くかどうか確認することです。このオプションをもっと早く知っていれば。。。今まではマシンの時刻をずらしたり、わざとsyslog出力してスクリプトの実行を確認したり、色々と面倒なことをしていました。

しかもrun-partsのmanページを見ると分かるのですが、ubuntuなどDebian系のディストリビューションでは、cronスクリプトのファイル名に許されている文字列は、(^[a-zA-Z0-9_-]+$) のみです。つまり英数字以外で許される記号はハイフンとアンダースコアのみです(ドットなどはNG)。今までredhat系を利用していた私は、全く疑いもせずにubuntuサーバーにインストールしたcronスクリプト名にドット(.)を使ってしまい、cronスクリプトが実行されず原因究明に時間がかかりました。