-
Proxmox 自動シャットダウンとは?
-
方法1. 指定された時間にシャットダウンするためにCronを使用する
-
方法2. アイドル検出用のスクリプトとCronの併用
-
方法3. systemdタイマー+スクリプト
-
方法4. UPS + NUTの統合
-
Vinchinで自動シャットダウン後の仮想マシンを保護
-
Proxmox 自動シャットダウン FAQ
-
結論
Proxmoxで自動シャットダウンを有効にすると、ホストまたはその仮想マシンとコンテナを手動操作なしで自動的に電源オフできます。スケジュール、アイドル状態、またはUPSイベントによってトリガーできます。これによりエネルギーを節約し、データを保護し、人的ミスを減らします。
Proxmox 自動シャットダウンとは?
Proxmox 自動シャットダウンにより、シャットダウン処理を自動的に実行できます。cron、systemd、またはUPSツールを使用して管理できます。これは単なる基本的なLinuxシャットダウンではありません。Proxmoxは qm および pct を使用して、仮想マシンとコンテナを正常にシャットダウンします。 qemu-guest-agent がインストールされている場合、 Proxmox はゲストOSにシャットダウンを通知することも可能です。
サーバーが夜間アイドル状態になっている場合や、バックアップ後にシャットダウンしたい場合、自動シャットダウンが最適です。これにより電力消費を抑え、メンテナンスの時間枠を明確に設定でき、ミスも防げます。
方法1. 指定された時間にシャットダウンするためにCronを使用する
Cronは最も簡単な方法です。実行中のタスクをチェックしませんが、使いやすく信頼性があります。
例えば、毎日午前1時にシャットダウンする場合:
0 1 * * * ルート /usr/sbin/shutdown -h now
まずテストしてください:
shutdown -h +5 "テスト:5分後にシャットダウン" grep shutdown /var/log/syslog
仮想マシンはACPI信号を受信し、シャットダウンを試みます(サポートされている場合)。ただし、Cronは進行中のタスクを確認しないため、実行中のジョブが中断される可能性があります。
方法2. アイドル検出用のスクリプトとCronの併用
スクリプトはシャットダウン前にアクティビティをチェックすることで、実行中の仮想マシンやジョブが切断されるリスクを軽減します。
サンプルスクリプト /root/shut.sh:
#!/bin/bash ACTIVE_VMS=$(qm list | grep -cv stopped) ACTIVE_PCT=$(pct list | grep -cv stopped) ACTIVE_TASKS=$(pgrep -f "pvesr|zfs scrub|vzdump") if [[ $ACTIVE_VMS -eq 0 && $ACTIVE_PCT -eq 0 && -z "$ACTIVE_TASKS" ]]; then echo "$(date): System idle. Preparing to shut down." >> /var/log/auto-shut.log shutdown -h +30 "Idle state: system will shut down in 30 minutes" fi
実行可能にして Cron に追加してください:
chmod +x /root/shut.sh */5 * * * * root /root/shut.sh
これは5分ごとにチェックします。何も実行されていない場合、30分後にシャットダウンを予定します。
方法3. systemdタイマー+スクリプト
より細かい制御と優れたログを求める場合、本番環境ではsystemdを使用してください。
スクリプト: /usr/local/bin/autoshutdown
#!/bin/bash ACTIVE_VMS=$(qm list | grep -cv stopped) ACTIVE_PCT=$(pct list | grep -cv stopped) ACTIVE_TASKS=$(pgrep -f "pvesr|zfs scrub|vzdump") if [[ $ACTIVE_VMS -eq 0 && $ACTIVE_PCT -eq 0 && -z "$ACTIVE_TASKS" ]]; then echo "$(date): アイドル状態を確認しました。まもなくシャットダウンします。" >> /var/log/autoshutdown.log shutdown -h +10 "アイドル状態:10分後にシャットダウンします" fi
Systemdサービス /etc/systemd/system/autoshutdown.service:
[Unit] Description=Proxmox 自動シャットダウンサービス [Service] Type=oneshot ExecStartPre=/bin/sleep 300 ExecStart=/usr/local/bin/autoshutdown
Systemdタイマー /etc/systemd/system/autoshutdown.timer:
[Unit] Description=Proxmox 自動シャットダウンタイマー [Timer] OnCalendar=*-*-* 23:00:00 Persistent=true [Install] WantedBy=timers.target
有効にするには:
systemctl daemon-reload systemctl enable --now autoshutdown.timer
メモ: Type=oneshot は同時実行を防ぎます。 sleep 300 は5分のバッファ時間を追加します。
方法4. UPS + NUTの統合
停電保護はビジネス環境において必須です。NUTとUPSはシステムを賢くシャットダウンするのを助けます。
NUTをインストール:
apt install nut
設定 /etc/nut/nut.conf:
MODE=ネットサーバー
次に /etc/nut/ups.conf および /etc/nut/upsmon.confを編集します。例:
MONITOR ups@localhost 1 monuser password slave SHUTDOWNCMD "systemctl poweroff"
UPSをモニタリング:
upsc ups@localhost
電源喪失をシミュレートする:
upsmon -c fsd
ホストより前にVMをシャットダウン:
qm シャットダウン <ID> --タイムアウト 60 pct シャットダウン <ID> --タイムアウト 60
VMに qemu-guest-agent がインストールされていることを確認してください。
Vinchinで自動シャットダウン後の仮想マシンを保護
自動シャットダウンが動作した後は、次に仮想マシンのデータが安全であることを確保する必要があります。
Proxmox環境を確実に保護するために、Vinchin Backup & Recoveryを検討してください。これはプロフェッショナルで企業向けの仮想マシンバックアップソリューションであり、Proxmox VEおよびVMware、Hyper-V、oVirt、RHV、XCP-ng、XenServer、OpenStackなど15以上のプラットフォームをサポートしています。
Vinchin は、永久増分バックアップ、内蔵の重複排除および圧縮、 V2V マイグレーション、高速な復旧オプションといった強力な機能を提供します。これらにより、バックアップサイズを削減し、タスクを高速化し、ディザスタリカバリを簡素化できます。
直感的なWebコンソールにより、Proxmox VMのバックアップをわずか4つの手順で行うことができます:
1.ホスト上の仮想マシンを選択します

2. バックアップ先を選択します

3.戦略の選択

4.最後にジョブを送信する

Vinchin は世界中のユーザーから信頼されており、信頼性が高いことで知られています。今すぐ 60日間のフル機能無料トライアルから始めましょう。以下をクリックして数分でダウンロードおよび導入できます。
Proxmox 自動シャットダウン FAQ
Q1: タイマーやスクリプトのトラブルシューティング方法を教えてください。
systemctlのステータスとjournalctl -u autoshutdown.serviceを確認してください。
Q2: シャットダウンが固まった場合はどうすればよいですか?
journalctlを使用して、どのサービスが停止したかを確認してください。
Q3: 仮想マシンのシャットダウン順序を制御できますか?
はい—順番にqm shutdownを使用して、優先度に基づいて仮想マシンをシャットダウンできます。
結論
Proxmoxの自動シャットダウンは、電力の節約、データの保護、リスクの削減に役立ちます。スケジュール、アイドルチェック、またはUPSによって起動できます。自分のケースに合った方法を選び、システムをスマートで安全かつ効率的に保ちましょう。
共有: