ルートcrontabが実行されていない


10

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

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

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

crontab -e

それから加えて:

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

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

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

日付-Rで時刻を確認しました。crontabを実行する時間が来ては消え、システムはリブートしません。ここで何が欠けていますか?


念のため、編集してからcrontabを閉じますよね?また、どのようにして「ルートとして実行」しましたか?の出力はsudo crontab -l | grep -v '#'何ですか?
terdon 2014年

なぜこのタグ付けされたdebianなのですか?これがUbuntuではなくDebianに関するものである場合は、UnixおよびLinuxで質問してください。
muru 2014年

DebianはUbuntuの中核であるため、私は信じています。
アトミクラン2014年

回答:


11

3つの解決策を提案します。

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

  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つは、atコマンドを使用することです。

at 0am

コマンドshutdown -r nowを入力してctrl + dで保存するか、コマンドのスクリプトを実行してください:

at -f restart_script.sh 0am

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


解決策は、dev nullに出力することでした。なんでかしら?
アトミクラン2014年

これは、cronジョブに期待するような標準の入出力システムがない独自の環境があり、欠落している出力パイプにメッセージをストリーミングしようとしているためにプロセスが失敗するためです。cronジョブは、実際には、ユーザーとして端末でコマンドを実行する場合とは大きく異なります。結局、うまくいったと聞いてうれしいです。
Ahti Komu 2014年

0

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

したがって、

$ 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が正常にインストールされたかどうかがわかるので、crontabを編集した後にCronログファイルを確認してください。

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

幸運を!


-3

36 17 * * *など..

36 17は、cronで適切な時間を指定する方法ではありません。

システムが米国時間またはヨーロッパ時間で動作しているかどうかを確認するには、dateコマンドを使用して確認してください

europ時刻でシステムが24時間制を使用する場合は17 36を使用し、システムがUS TIMEおよび12時間制を使用する場合は5 36を使用します。


違います!Cronは12時間形式を使用せず、形式は常にmm hh DD MM WDです。
Ahti Komu 2014年

次回は投稿全体をお読みください。
アトミクラン2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.