LoginSignup
5
4

More than 3 years have passed since last update.

【GCP/AWS】インスタンスのシャットダウンし忘れを防ぐ

Last updated at Posted at 2019-05-10

クラウド上のインスタンスで作業をする際、夜中に処理回すために手動でシャットダウンが出来ないorそもそもシャットダウンを忘れてしまうことが度々ある。
インスタンス稼働の無駄を防ぐ為に、決まった時間にCPUが稼働していなければ自分を停止させる。

環境

CentOS 7.6

タイムゾーンの変更(UTC->JST)

$ timedatectl set-timezone Asia/Tokyo
このコマンドで一発で変更可能のよう

定期実行するジョブを指定

$ crontab -e

vimで編集する。

書き方の基本ルールはこう。
分 時 日 月 曜日 実行コマンド

定時で強制停止

稼働の有無に関わらずシャットダウンする場合はcronをこう編集。
0 0 * * * /usr/sbin/shutdown -h now

CPU稼働状況を見て停止

計算中はシャットダウンしたくない!とかなら、cronには以下を記載し、別にシェルスクリプトを用意する。
0 0 * * * /PATH/shtdwn.sh

gitのリンクはこちら

自分で作る場合は以下のコマンドで
$ vi ./shtdwn.sh

稼働率が一定以下ならインスタンスを停止する。閾値はよしなに。
(今回はひとまず10%に)

shtdwn.sh
#!/bin/bash

cpuused=`cat /proc/loadavg | cut -d ' ' -f 1`
thresh=0.10

LIMIT=`echo "$cpuused <= $thresh" | bc`

if [ $LIMIT -eq 1 ] ; then
  echo "インスタンス停止"
  sudo /usr/sbin/shutdown -h now
else
  echo "インスタンス稼働中"
fi

実行権限を設定
$ chmod +x ./shtdwn.sh

参考にさせていただいたページ

https://eng-entrance.com/linux-command-crontab
https://qiita.com/toshihirock/items/461da0f60f975f6acb10

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4