Proxmoxで自動シャットダウンを設定する方法(4つのシンプルな方法)

自動シャットダウンにより、Proxmoxユーザーはサーバーがアイドル状態になっているときや障害発生時に電力を節約し、データを保護することができます。このガイドでは、設定方法を4つの簡単な手順で紹介しています。

download-icon
無料ダウンロード
VM、OS、DB、ファイル、NASなどに対応
takahashi-meitetsu

Updated by 高橋明哲 on 2025/12/02

目次
  • 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.ホスト上の仮想マシンを選択します

Proxmox VMのバックアップ

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

Proxmox VMのバックアップ

3.戦略の選択

バックアップ Proxmox VM

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

バックアップProxmox VM

Vinchin は世界中のユーザーから信頼されており、信頼性が高いことで知られています。今すぐ 60日間のフル機能無料トライアルから始めましょう。以下をクリックして数分でダウンロードおよび導入できます。

Proxmox 自動シャットダウン FAQ

Q1: タイマーやスクリプトのトラブルシューティング方法を教えてください。

systemctlのステータスとjournalctl -u autoshutdown.serviceを確認してください。

Q2: シャットダウンが固まった場合はどうすればよいですか?
journalctlを使用して、どのサービスが停止したかを確認してください。

Q3: 仮想マシンのシャットダウン順序を制御できますか?
はい—順番にqm shutdownを使用して、優先度に基づいて仮想マシンをシャットダウンできます。

結論

Proxmoxの自動シャットダウンは、電力の節約、データの保護、リスクの削減に役立ちます。スケジュール、アイドルチェック、またはUPSによって起動できます。自分のケースに合った方法を選び、システムをスマートで安全かつ効率的に保ちましょう。


共有:

Categories: VM Tips