Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

クラウド上のインスタンスで作業をする際、夜中に処理回すために手動でシャットダウンが出来ない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

Gri_Gra
若手技術者です。仕事では主にデータ解析とかやっています。趣味で作るものは仕事に関係あったりなかったり。pythonや機械学習まわりのことを備忘録的に書き留めてこうと思います。 記事に修正点/改善点等あればコメントください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away