web-dev-qa-db-ja.com

ルートcrontabが実行されていません

何らかの理由で、ルートcrontabが実行されていないようです。

毎晩深夜にデバイスを再起動しようとしています。

ルートとして次のようにする必要があります。

crontab -e

それから加えて:

0 0 * * * /sbin/shutdown -r now

現在の時間に近い値を使用してテストしても、何も起こりません。 NTPをインストールし、タイムゾーンが正しいことを確認しました。また、24時間制の使用を指定しています。たとえば、この行を今すぐ(午後5時35分)テストするには、次のように入力してみます。

36 17 * * * /sbin/shutdown -r now

Date -Rで時刻を確認しました。 crontabを実行する時間は来たり来たりし、システムは再起動しません。ここに何が欠けていますか?

9
Atomiklan

3つの解決策があります。

  1. crontab -e -u rootでcrontabを呼び出します

  2. Cronjobファイルの最後に空の行があることを確認してください。つまり、すべての行が改行で終わっています。

  3. 出力をdevnullにリダイレクトする必要がある場合があります:shutdown -r now > /dev/null

Cronjobsに役立つ2つのWebページを次に示します。

CRONテスター

CRONジェネレーター

webmin でcronjobsをきちんと処理することもできます。

それ以外には、深夜にコンピューターを再起動する方法が少なくとも2つあります。

1つは、ログイン時に自動的にシャットダウンコマンドをスクリプトとして実行することです。ただし、「今」ではなく特定の時間をパラメーターとして使用します。

shutdown -r 00:00

ただし、これにより、ログインごとにシャットダウンのブロードキャストメッセージが生成されます(まったく悪いことではないかもしれません)。まあ、init.dにスクリプトを追加することでブート時に実行することもできますが、それでもメッセージは表示されます。

もう1つは、atcommandを使用することです。

at 0am

コマンドshutdown -r nowを入力してctrl + dで保存するか、コマンドのスクリプトを実行して次の操作を実行します。

at -f restart_script.sh 0am

これらがあなたが望む結果を得るのに役立つことを願っています。

10
Ahti Komu

System Cronジョブは/ etc/crontabファイルにリストされています。したがって、このファイルを直接編集すると、rootとしてリブートコマンドを実行するのに役立ちます。

したがって、

$ Sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR Sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

cronタブを編集した後、cronが正常にインストールされたかどうかを確認できるように、必ずCronログファイルを確認してください。

私はそれをテストし、それは私のために働いた。午後8時23分にシステムを再起動した

幸運を!

0
rulebreaker4