RHEL8系でcronを使用してタイマーでシャットダウン

Linux
スポンサーリンク

やりたいこと

やりたいことは、RHEL8系のOSで(今回はCentOS8を使ってます)、設定した日時になったらマシンをシャットダウンさせたいです。

やり方

cron を使用してタイマーによるシャットダウンをしかけます。

おおまかな手順は以下のとおりです。

  1. shutdownコマンドのPathを確認
  2. crontabを編集(設定)する
  3. crontabの設定内容を確認する
  4. 時間になるのを待つ

上記の手順を詳細に書いていきます。

1. shutdownコマンドのPathを確認

cron にコマンドを書くときはフルパスで書かないと、環境変数等の影響でコマンドが動かなかったりすることがあります。(最近のOSは割と動いてる気がしますが)

cron からシェルスクリプトを呼び出す場合は、そのシェルスクリプトの中身に記述するコマンドもフルパスで書く必要があるみたいっす

今回はshutdownコマンドを使うので、shutdownコマンドのフルパスを確認します。

# which shutdown
/usr/sbin/shutdown
#

/usr/sbin/shutdown

がshutdownコマンドのフルパスってことが分かりました。

2. crontabを編集(設定)する

crontab を編集します。

まず、編集前の確認をします。
なにかを変更するときは、前後で確認する癖をつけませう。

crontab -il
が、cronの内容を確認するコマンドです。

# crontab -il
no crontab for root
# 

現在はなにもcronには登録されてないみたいっすね。

続いてcronを編集します。

# crontab -ie

デフォルトだとviエディタが立ち上がるはずなので、
「i」キーを押下して編集モードにしましょー。

書き込む内容は、以下です。

0 0 1 3 * /usr/sbin/shutdown -h now

意味は、左から、
分、時、日、月、曜日、コマンド

なので、

上記は、

3月1日の0時にシャットダウンコマンドを実行するという意味になります。

書き込めたら、
(Viエディタの場合)

  1. 「Esc」キーを押下してノーマルモードに戻し、
  2. 「:wq」と入力し、「Enter」キーを押下します(内容が保存されてViエディタが閉じます)

3. crontabの設定内容を確認する

今、設定したcronの内容を確認します。
設定後確認です。

# crontab -il
0 0 1 3 * /usr/sbin/shutdown -h now
# 

はい、ちゃんと設定されてました。

4. 時間になるのを待つ

あとは時間になるまでお茶をひいて待つだけです。

5. 後日追記:結果

ちゃんと自動シャットダウンされました。

ターミナルを開いて目視で観察していたら、0時になった瞬間に以下のメッセージがターミナル上に出力され、コネクションが切断されました。

 # Connection to IPアドレス closed by remote host.
Connection to IPアドレス closed.

コメント