Linuxで再起動をスケジュールするにはどうすればよいですか?


38

私はLinuxの初心者で、真夜中にリブートをスケジュールしたいです。どうすればいいですか?

編集:

  • すみませんが、完全な詳細を入力しませんでした。毎月第3土曜日の23時30分に再起動します。

  • 何が悪いのかわかりませんが、crontabが見つかりません。私が持っていることですcron.dcron.daily; cron.weekly; cron.monthly;

noobの質問についてすみません。Plsは私を助けます。ありがとう。


2
本当の質問は、なぜこれを定期的にやりたいのか、漏れのあるアプリケーションなどがありますか?問題を解決するために定期的な再起動をスケジュールしている場合は、おそらくより大きな問題を抱えているでしょう
...-ジェームズハンナ

1
毎晩再起動しますか?
マットシモンズ

4
私は投票していません、それは一種のポリシー決定であるためです(そして、毎晩の再起動は少し過剰だと思います)が、インフラストラクチャ全体で定期的に再起動をスケジュールすることは、マシンが最新のカーネルとすべてのサービスを実行していることを保証する適切な方法ですパッチが適用されます。良い妥協点として、3か月の稼働時間制限を聞いたことがあります。
マットシモンズ

これが質問に対するコメントであり、答えではない場合は、賛成します。これが一度きりなのか、それとも定期的なものなのかという質問があいまいだったので、実際に考えを変えるでしょう。:)
直観

3
/etc/crontabのようなエントリ30 23 15-21 * 6 /sbin/shutdown -r nowは、毎月第3土曜日の23:30に再起動します。
クリスS

回答:


45

入力するshutdown -r 0:00と、真夜中に再起動します。

毎晩再起動する場合は、crontab -eをルートとして使用してcronエントリを追加し、shutdown -rを毎晩実行します

@midnight shutdown -r now

3
時間引数は必須ですnow。使用できます。
東武

いいえ...彼が1回限りのコマンドが必要で、今すぐコマンドを入力したい場合は、時間を追加する必要があります!
半径

3
@いいえ、nowcrontab行などの時間引数が必要です。
追って通知があるまで一時停止します。

申し訳ありませんはいOups、私は東武のコメントを読み違えると、彼は0:00最初のコマンドでは駄目だった告げると思う...私は修正するために編集した(とマッシモはあまりにも答え)
半径

他にどのような@{command}変数が利用可能かを知りたいです。
グレッグ

16

を使用しcrontabます。

http://en.wikipedia.org/wiki/Crontab

このエントリを/ etc / crontabに追加すると、次のようになります。

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

3
shutdownなどの時間引数必要now
追って通知があるまで一時停止します。

1
これにより、毎晩再起動が行われます。これが彼が望んでいるものかどうかはわかりません。
cstamas

1
元々の質問は、彼が毎晩再起動したかったように聞こえました。彼は実際に毎週第3土曜日に再起動することを望んでいますが、これはまだcrontabを使用すると最も簡単になります
クリスS

何が間違っているのかわかりませんが、crontabが見つかりません。私が持っているのはcron.d; cron.daily; cron.weekly; cron.monthly; noob question.Plsは私を助けてすみません。ありがとう
klauriens

使用しているディストリビューションによって異なりますが、通常はシステムの/ etcディレクトリに「crontab」というファイルがあります。また、コマンド「crontab -l」を使用して現在のcrontabを調べ、「crontab -e」を使用して編集することもできるはずです。
マッシモ

12

別のオプションはatコマンドで、多くのLinuxディストリビューションで使用できます。詳細についてはmanページを参照してください。ただし、目的の一般的な構文は次のとおりです。

echo "reboot" | 0000 6月27日

OS Xのマニュアルページを引用するには:

- 指定した時刻に実行するコマンド

私たちが話しているように聞こえます。;)


1

私の知る限り、cronを使用して「各月の最終金曜日」または「各月の第3木曜日」のタスクをスケジュールすることはできません。everyいように思えますが、毎週土曜日の23:30にスクリプトを実行し、この特定の土曜日が週の第3土曜日であるかどうかをこのスクリプトに判断させることができます(dateおよびcalコマンドを使用して実行できます) 。

これがお役に立てば幸いです。この問題の解決策は見つかっていません。同じ問題の解決策を探していたので、このスレッドを見つけました。


1
上記の「30 23 15-21 * 6 / sbin / shutdown -r now」のコメントは機能します。それは基本的に月だけの第3週に実行されますが、それはまた、土曜日のときにのみ
Sirex

このcron行は、あなたが思うように機能するとは思わない。
ervingsb

「30 23 1-7 * 4 date」および「30 23 1-7 * 3 date」という2行を作成しました。私が得た2通の「CET 2012年3月7日水曜日午前23時30分02秒」を:言って、両方の最後の夜メールを
ervingsb

最後のフィールドは曜日と一致し、日曜日はゼロです。水曜日に4つのcronjobが一致することはありません。
Sirex

それが私が意味したことです。あなたが書いたルールは、あなたがそれが意味すると思うことを意味しません。1週間毎日、ジョブをトリガーします。平日は関係ありません。
-ervingsb

0

1)コマンドラインで 2)再起動の場所がわかったら(通常/ sbin / reboot)/etc/cron.daily、/etc/cron.weekly、/ etc / cronのいずれかのディレクトリに移動します。毎時など...すなわちwhich reboot
cd /etc/cron.weekly

3)(nanoまたはvimを使用して)ファイルを作成し、zzrebootと呼び、次の行を追加します。

#!/ bin / sh
/ sbin / reboot

ファイルzzwhateverを呼び出す理由は、それが他のすべてのジョブの後に呼び出される最後のジョブであることを確認するためです。必ずls -lディレクトリでを実行し、それが最後のファイルであることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.