【Ubuntu】定期的な再起動の設定方法:cronの利用

時計 2023.12.10 / 時計

【Ubuntu】定期的な再起動の設定方法:cronの利用

記事ではLinux系OSのUbuntuにおける、cronを利用して定期的再起動をする方法について解説していきます。

Ubuntuのサーバーを運用している場合、定期的にサーバーを再起動しておきたいことがあります。

私の場合

私はUbuntuで動いているサーバーやさくらのVPSのCentOS上で動いている本サイトで、本記事で紹介する方法で定期的に再起動するように設定しています

本記事を通して、Ubuntuをcronを使って定期的に再起動する方法について理解を深めてください。

cronとは

cronとはLinux系OSに備わっている定期的にプログラム(スクリプト)を実行する機能です。

指定した時間にプログラムを走らせるため、バッチ処理やバックアップ、再起動など定期的に実行する必要がある処理に利用することが多いです。

cronの設定には以下2つの方法があります。

cronの設定方法
  • crontabコマンドを使用した方法
  • 「/etc/cron.d/」のファイルを編集する方法

本記事ではcrontabコマンドを使った方法を解説しております。

cronについて詳しく知りたい方は以下記事をご参照ください。

cronによるジョブスケジューリング方法

cronで定期的に実行する処理を設定するには、まず最初に以下コマンドを実行します。

$ crontab -e
注意

上記のコマンドを誤って「crontab -r」で実行するとすべてのスケジュールが削除されます。絶対に間違えないようにしましょう

上記コマンドを実行後にスケジュールと実行するコマンドを記述して保存することで、定期的にコマンドを実行するようになります。

スケジュールは以下構文に沿って記述します。

構文

min hour dom month dow command

min 分の意味、0~59を指定
hour 時間の意味、0~12を指定
dom 日(day of month)の意味、1~31を指定
month 月の意味、1~12またはjan-decを指定
dow 週(day of week)の意味、0~7またはsun-satを指定(0と7は日曜日)
command 実行したいコマンドを指定

例えば毎日4時にコマンドを実行したい場合は次のようになります。

0 4 * * * command

また毎週日曜日の3時30分にコマンドを実行したい場合はスケジュールは次のように記述します。

30 3 * * 0 command

Ubuntuの再起動のコマンド

再起動とは一度電源をオフ(シャットダウン)し、その直後に自動的に起動することです。Ubuntuで再起動をするにはshutdownコマンドで以下の通りオプションをつけて実行します。

$ shutdown -r now

オプション「-r」は再起動、オプション「now」は今すぐという意味です。

再起動やシャットダウンの際に使用するshutdownコマンドについては以下記事をご参照ください。

cronで定期的に再起動する方法

ここまでに解説したcronや再起動コマンドを使って、定期的に再起動する設定を行う方法を解説していきます。

まず以下コマンドを実行して、ジョブスケジューリングを登録できる画面に移動します。

$ crontab -e

次にスケジュールと再起動するコマンドを記述します(キーボードで「i」を押して入力モードに切り替える)。

ここでは毎週日曜日の3時30分に再起動するように設定します。

30 3 * * 0 /usr/sbin/shutdown -r now

上記を記述したらキーボードで「esc」を押し、「:wq」を実行します。これで毎週日曜日に再起動する設定が完了しました。

注意点

commandには「/usr/sbin/shutdown」と記入するようにしてください。絶対パスでコマンドを指定しないと再起動が失敗する可能性があります。shutdownコマンドの絶対パスは以下コマンドを実行して確認することもできます。

$ which shutdown

スケジュールがきちんと登録されているか念のため確認したい場合は以下コマンドを実行してください。

$ crontab -l

再起動の確認

実際に再起動したか確認したい場合は以下コマンドを実行してください。

$ last reboot

上記コマンドの実行後に表示される結果から、いつ再起動されたかが確認できます。