crontab の lint のようなものはありますか? 何かがうまくいかなくなるのを待たずに、すべてのスペースと星を整理したことを知りたいです。
6 に答える
cron 用の Python リンターがあります。プロジェクトを見るchkcrontab
次の方法でインストールできますpip
。
pip3 install chkcrontab
使用例:
chkcrontab /etc/cron.d/power-schedule
Checking correctness of /etc/cron.d/power-schedule
E: 15: 0 12 * foo * * root echo hi
e: FIELD_VALUE_ERROR: foo is not valid for field "month" (foo)
e: INVALID_USER: Invalid username "*"
E: There were 2 errors and 0 warnings.
CronWTF は、crontab を作成する際に非常に役立つことがわかりました。CronWTFは、スターとコマンドをより人間に優しいものに変換し、奇妙な cron ジョブを読みやすくします。
さらに良いことに、ローカルで実行できるすべての JavaScript であるため、上位の sekrit cron ジョブについて誰も知る必要はありません。
ruby をコーディングする場合の別の方法は、 whenジェムを使用することです。schedule.rb
解析するために呼び出されるサンプルの ruby ファイルを使用し、次のように crontab を生成します。
every 10.minutes do
command "/usr/bin/my_great_command"
end
のcrontabエントリが表示されます
0,10,20,30,40,50 * * * * /usr/bin/my_great_command
そして、これはここにあります:
every 2.days, :at => '4:30am' do
command "/usr/bin/my_great_command"
end
あなたに与えます:
30 4 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * /usr/bin/my_great_command
crontab のリントは必要ないと思います。スペースで区切られた 5 つのフィールドがあり、次にスペースがあり、次に実行するコマンドとその引数が行を終了します。
また、少なくとも Ubuntu では、crontab では bum ファイルを保存できません。私はいくつかのことを試してみましたが、それらすべてにバーフがありました。これは、crontab が独自の「cron 用リント」であることを意味していると思います。
少しずれているかもしれませんが、kcron や gcrontab などのグラフィカルな crontab エディターを使用してロードするのが簡単な方法です。スクリプトで呼び出す必要がある場合、この質問はphpでそれを行う方法についてです。