ユーザーの crontab に「if」ステートメントを入れることは可能ですか、それとも多くの条件付き cron ジョブを整理する別の賢明な方法がありますか? エンド ユーザーの観点からは、通常の crontab を使用して、可能であればエントリを 2 行の間に入れるのが最も簡単です。
理想的には次のようになります:
if [ something ]; then
* * * * * /usr/bin/php /path/to/file.php
0 0 * * * /usr/bin/php /path/to/file2.php
*/5 * * * * /root/script.sh
fi
答え1
これを正確に行うことは不可能です。
ただし、次のようなスクリプトを作成することはできます。このスクリプト/usr/local/bin/check_live
は、サーバーが現在稼働中の場合はステータス コード 0 で終了し、稼働中でない場合は 0 以外で終了します。
次のような crontab 行を作成できます。
* * * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file.php
0 0 * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file2.php
*/5 * * * * /usr/local/bin/check_live && /root/script.sh
答え2
crontab ファイルに入れることはお勧めしません。代わりに、条件を設定するスクリプトを作成し、それを crontab ファイルに入れます。よりクリーンで整理されたセットアップになります。