期限切れの仮想マシンを自動シャットダウンさせる方法

期限切れの仮想マシンを自動シャットダウンさせる方法 無料ツール
この記事は約3分で読めます。

作成・設定手順

CentOS Version7

EPELリポジトリを追加する
yum install epel-release
zenityをインストールする
yum install zenity

ubuntu Version22.04

システムを更新する
sudo apt update
zenityをインストールする
sudo apt install zenity

configを作成する

EXPIRATION_DATE=2099-12-31

※ /usr/local/binで保存

expire_check_shutdown.shを作成する

#!/bin/bash

# configファイルから有効期限の読み込み
source /usr/local/bin/config

# 現在日付の取得
CURRENT_DATE=$(date +%Y-%m-%d)

# 有効期限の表示
zenity --info --text="有効期限: $EXPIRATION_DATE"

# 有効期限が過ぎているかの確認
if [[ "$CURRENT_DATE" > "$EXPIRATION_DATE" ]]; then
  if [ -n "$DISPLAY" ]; then
    # 有効期限が過ぎている場合、180秒後にシステムをシャットダウン(GUI)
    zenity --info --text="有効期限が過ぎています。180秒後にシステムをシャットダウンします。"
  else
    echo "有効期限が過ぎています。180秒後にシステムをシャットダウンします。"
  fi
  sleep 180
  shutdown now
else
  if [ -n "$DISPLAY" ]; then
    # 有効期限内の場合、正常起動(GUI)
    zenity --info --text="有効期限内です。システムを起動します。"
  else
    echo "有効期限内です。システムを起動します。"
  fi
fi

※ /usr/local/binで保存

expire_check_shutdown.serviceを作成する

[Unit]
Description=My startup script service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/expire_check_shutdown.sh

[Install]
WantedBy=multi-user.target

※ /etc/systemd/systemで保存

所有者の変更

chown root:root /usr/local/bin/expire_check_shutdown.sh
chown root:root /etc/systemd/system/expire_check_shutdown.service
chown root:root /usr/local/bin/config

実行権限・参照権限の変更

chmod 755 /usr/local/bin/expire_check_shutdown.sh
chmod 755 /etc/systemd/system/expire_check_shutdown.service
chmod 755 /usr/local/bin/config

リロード・自動起動等の設定

systemctl daemon-reload
systemctl enable /expire_check_shutdown.service
systemctl start /expire_check_shutdown.service

最後に私からの宣伝

自分達でシステム構築できそうですか?

『専任の担当者がいないから無理かなぁ』
『担当者に構築する時間がないからなぁ』
『一人でやりきる自信がない』
『導入・構築までやってくれないかなぁ』

と色々と思う方もいたのではないでしょうか?

そんな方に朗報です。
御社が望む環境をお伝え頂き
環境構築・システム構築のお手伝いをさせて頂きます。
別途、メニューを設けておりますので、興味を持たれた方は
見積り希望と明記のうえお問い合わせ下さい
連絡お待ちしております。ここをクリック
※無理な場合もありますので、その際にはご理解の程宜しくお願い致します。

コメント

タイトルとURLをコピーしました