私はこの/etc/cron.d/reboot
ファイルを持っています:
PROJECT_ROOT=/usr/local/share/applications/ana
NODE_PATH=/usr/bin/node
REBOOT_SCRIPT=/usr/sbin/reboot
SCRIPT=scripts/server-reload-messages.js
0 5 * * * root cd $PROJECT_ROOT && $NODE_PATH $SCRIPT create
1 5 * * * root $REBOOT_SCRIPT
毎日午前5時にスクリプトを実行する必要がありますが、5時と17時に実行されます。
コメントで編集
@roaima、cronログを確認するための提案に感謝します。今、実際には1日に1回だけ動作することがわかりました。ただし、ジョブの名前を変更する必要があります。問題は、アプリを使用するとサーバーが再起動されることを示すメッセージが表示されることです。日付を確認してみると午後5時であり、間違いなく何かが間違っていたということです。
May 15 05:00:01 mail CROND[23278]: (root) CMD (cd $PROJECT_ROOT && $NODE_PATH $SCRIPT create )
May 16 05:00:01 mail CROND[52008]: (root) CMD (cd $PROJECT_ROOT && $NODE_PATH $SCRIPT create )
May 17 05:00:01 mail CROND[5363]: (root) CMD (cd $PROJECT_ROOT && $NODE_PATH $SCRIPT create )
May 18 05:00:01 mail CROND[19420]: (root) CMD (cd $PROJECT_ROOT && $NODE_PATH $SCRIPT create )
これが私が見つけたものです。システムの日付形式が奇妙です。 19:20には次のようになります。
date
Thu May 18 07:20:02 EDT 2023
答え1
正解はユーザーのコメントにありますパク・シミ。問題は、12時間サーバーのタイムゾーンが私が予想したものと異なることです。