web-dev-qa-db-ja.com

特定の時間に毎日リブートするようにUbuntuを構成するにはどうすればよいですか?

ターミナルまたはbashファイルを使用して、たとえば午前3時に毎日リブートするようにUbuntuを構成するにはどうすればよいですか?

言い換えれば、ターミナルを介した自動再起動をスケジュールします。

GoogleやAskUbuntuでこれに関連するものを見つけることができませんでしたが、一般的にはUbuntuにはかなり新しいです(新しいRaspberry Piを手に入れたばかりです)。

crontab -eコマンドを使用してcrontabエントリを編集し(デフォルトでは現在のログインユーザーcrontabを編集します)、次の行を追加します。

0 3 * * * echo $PASSWD | Sudo -S reboot
#change $PASSWD with your password

ファイルを保存し、crontab -lで新しいcrontabエントリを確認します。

のみを使用する場合:

0 3 * * * Sudo reboot

crontabとしては、これは正常に機能しません。 この投稿 をチェックして、どのように機能させることができるかを確認する必要があります。

または、Sudo crontab -eを使用して、rebootコマンドの完全なパスを提供するcrontabをrootユーザーのcrontabファイルに追加するだけです。

0 3 * * * /sbin/reboot
12
Radu Rădeanu

テキストファイルにクリアテキストのパスワードを入れることはお勧めできません。そのため、このジョブをget-goからrootとして実行することをお勧めします。通常、crontabコマンドを使用してルートのcrontabを編集するのではなく、エントリを/var/spool/cron/crontabs(やや不可解な場所)に残すのではなく、/etc/cron.dに明示的に入力することをお勧めします。 cron.dのエントリはシステムcrontabエントリとして実行され、構成ファイルとして扱われるため、システムの再起動、更新、アップグレードに耐え、実行中のユーザーを明示的に指定できます。

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | Sudo tee /etc/cron.d/reboot-at-3-am

特定の時間を必要とせず、システムを1日に1回再起動したい場合は、/etc/cron.dailyに実行可能ファイルまたはスクリプトを追加すると、事前に決められた時間(6:25 AMシステム時間)に自動的に実行されますデフォルトで):

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | Sudo tee /etc/cron.daily/reboot-me

警告なしにシステムを再起動するだけでなく、5分間の警告を設定しているため、誰かがログインしている場合、作業を保存するか、Sudo shutdown -cでシャットダウンを中断することもできます。システムをそれらの下から引き離すよりも。より多くの警告を表示したい場合は、これらを適宜調整できます(たとえば、shutdown -h 60を使用して午前2時にコマンドを実行すると、ユーザーに1時間の寛大な警告が表示されます)。

これは私の過去の経験に基づいています。ある時点でwill crontabエントリの実行時にログインして動作します。警告なしで再起動すると、非常に悲しいパンダになります。

1
roadmr

なぜ-またはneedが必要ですか?それは非常に簡単ですが、リブートを必要としないLinuxでのより良い解決策はほぼ確実にあります。 Windowsとは異なり、LinuxベースのOSは、カーネルのアップグレード以外のほとんどの場合、再起動を必要としません。

あなたが達成しようとしていることを説明していただければ、おそらくあなたをより良くすることができます。

0
Jack Knight