ターミナルまたは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
テキストファイルにクリアテキストのパスワードを入れることはお勧めできません。そのため、このジョブを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エントリの実行時にログインして動作します。警告なしで再起動すると、非常に悲しいパンダになります。
なぜ-またはneedが必要ですか?それは非常に簡単ですが、リブートを必要としないLinuxでのより良い解決策はほぼ確実にあります。 Windowsとは異なり、LinuxベースのOSは、カーネルのアップグレード以外のほとんどの場合、再起動を必要としません。
あなたが達成しようとしていることを説明していただければ、おそらくあなたをより良くすることができます。