管理者が知っておくべきProxmox CLIコマンドベスト10

Proxmox仮想環境(VE)は、ウェブブラウザのユーザーフレンドリーなグラフィカルインターフェースで管理できます。しかし、特定のシナリオでは、コマンドラインインターフェース(CLI)を使用する方が良いです。CLIは、より詳細な設定、バッチ処理、スクリプト作成および自動化などの利点を提供します。

Proxmox仮想環境を管理するための標準LinuxコマンドとProxmox特有のコマンドがあります。このブログ記事では、効果的な管理のためのトップ10のProxmox特有のコマンドとその例を紹介します。

1. qm

コマンドは、主要なProxmox CLIコマンドの1つであり、qmはQEMUマネージャの略です。このコマンドは、Proxmox仮想環境(Proxmox VE)内の仮想マシン(VM)を管理するために使用されます。Proxmoxの仮想マシンはQEMU/KVMベースであり、qmコマンドはそれらと対話します。このコマンドを使用して、VMを作成、編集、構成、起動、停止、およびマイグレーションすることができます。

コマンドの一般的な構文は次の通りです:

qm [options] <command> [arguments]

仮想マシンの一覧表示

VMのステータスとIDを確認できます。このVMをProxmox CLIで管理するには、IDが必要です。

qm list

新しい仮想マシンの作成

一般的な構文:

qm create <vmid> [options]

例:

qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26

以下のProxmox CLIコマンドは、ID 103 の「DebianVM」という名前のVMを作成します。RAMは2GB、ソケットは1、コアは2、Virtioネットワークインターフェースは vmbr0 にブリッジ接続されています。OSタイプはLinux(l26で示されています)。

VMにディスクを接続する

qm set 105 --scsi0 local-lvm:32G

このコマンドは、SCSIインターフェースを使用してVMに32GBのディスクを接続します。

OSインストール用のCD-ROMを接続する

qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom

このコマンドは、ゲストオペレーティングシステムのインストールやその他の目的のために、VMのIDE CD-ROMドライブにDebian ISOを接続します。

ブート順序の設定

qm set 105 --boot order=ide2;scsi0

この例で使用されるコマンドは、VMが最初にCD-ROM(IDE2)から起動し、次にディスク(SCSI0)から起動するように設定します。

仮想マシンの起動

構文:

qm start <vmid>

例:

qm start 103

ID 103のVMを起動します。

VMの停止

qm stop <vmid>

このコマンドは、実行中のVMを直ちに停止します。この方法でVMを停止するのは、物理マシンの電源プラグを抜くのと同じです。

qm stop 103

ID 103のVMを停止します。

Proxmox CLIでVMをシャットダウンする

qm shutdown <vmid>

このコマンドは、ゲストOSがファイルを閉じ、プロセスを適切に終了できるように、VMを優雅にシャットダウンします。

qm shutdown 101

VM ID 101にシャットダウン信号を送信しています。

VMを別のノードに移行する

qm migrate <vmid> <targetnode>

このコマンドは、VMを現在のノードから同じProxmoxクラスター内の別のノードに移行します。

たとえば、ID 103のVMをnode2に移行するには、次のコマンドを使用します:

qm migrate 103 node2

VMのスナップショットを取得する

qm snapshot <vmid> <snapshotname>

このコマンドは、VMのスナップショットを作成し、メモリ、ディスク、およびデバイスの状態を含む現在の状態をキャプチャします。

qm snapshot 103 "before_upgrade"

このコマンドは、ID 103のVMのスナップショットを取得し、「before_upgrade」という名前を付けます。スナップショットを取得するコマンドを使用することは、ソフトウェアのアップグレードなどのリスクの高い操作を行う前に便利です。

スナップショットからVMの状態を復元する

qm rollback <vmid> <snapshotname>

このコマンドは、VMを以前のスナップショットにロールバックし、スナップショットが取得された時点の状態に復元します。

たとえば、VM内のソフトウェアアップグレードが失敗した場合、次のコマンドでVMの状態を復元できます:

qm rollback 103 "before_upgrade"

スナップショットが作成されて以来の変更は破棄されます(元に戻されます)。

仮想マシンのクローン作成

qm clone <vmid> <newid> [--name <newname>] [--full]

qm cloneコマンドは、既存のVMをクローンして異なるIDの新しいVMを作成します。ディスク全体をクローンする(フルクローン)か、リンクされたストレージのみをクローンするかを選択できます。

qm clone 103 104 --name "DebianClone" --full

このコマンドは、ID 103のVMをID 104の新しいVMにクローンし、名前を「DebianClone」にします。fullオプションはフルクローンを作成し、すべてのデータをコピーします。

仮想マシンのディスクのサイズ変更

qm resize <vmid> <disk> <size>

qm resizeコマンドは、VMに接続されている仮想ディスクのサイズを変更するために使用され、サイズを拡張または縮小します。ゲストOSが変更を処理できることを確認してください。

qm resize 103 scsi0 +10G

このProxmox CLIコマンドは、ID 103のVMのscsi0ディスクのサイズを10GB増加させます。

2. pve-firewall

pve-firewallコマンドは、Proxmox仮想環境内、特にProxmoxクラスターのファイアウォール設定を管理するために使用されます。このProxmox CLIコマンドは、ファイアウォールルールの設定に対して使いやすいオプションを提供し、管理者がProxmoxノード、仮想マシン、コンテナへのネットワークトラフィックを制御できるようにします。Proxmoxファイアウォールは、Proxmox管理インターフェースと密接に統合されており、Proxmox環境全体でのファイアウォール管理をより便利にします。pve-firewallツールは、特にProxmox VEのために開発されており、iptablesで使用されるより細かく手動のアプローチに比べて、ファイアウォールルールを管理するために高レベルの抽象化を使用します。

構文:

pve-firewall <command> [options]

主なコマンドの使用法を確認するには、pve-firewallコマンドを実行してください。

ステータスの確認

Proxmox VEファイアウォールサービスのステータスを確認するには:

pve-firewall status

出力は、現在のノードでファイアウォールが実行中かどうかを表示します。

ファイアウォールの開始

現在のProxmoxノードでファイアウォールサービスを開始するには:

pve-firewall start

ファイアウォールの再読み込み

ファイアウォールサービスを再読み込みし、ファイアウォール設定の変更を適用します。ファイアウォールサービスを停止して再起動する必要はありません。

pve-firewall reload

SSHトラフィックの受け入れ

SSHトラフィックを受け入れるファイアウォールルールを作成します:

pve-firewall create rule -action accept -macro ssh

このコマンドは、Proxmox環境へのSSHアクセスを許可するルールを作成します。

場所:create <object>は、ルール、セキュリティグループ、またはIPセットなどの新しいファイアウォールオブジェクトを作成します。

ルールを削除する

ルールを削除するには、次のコマンドを使用します:

pve-firewall delete rule <rule-id>

ログを表示する

トラフィックとルールの一致を示すファイアウォールログを表示します:

pve-firewall log

出力には、最も最近のファイアウォールログエントリが表示されます。

HTTPトラフィックを拒否する

HTTPトラフィックを拒否するファイアウォールルールを作成するには、次のコマンドを使用します:

pve-firewall create rule -action drop -macro http

3. pvesm

Proxmox CLIのpvesmコマンドは、Proxmox VEのストレージ構成を管理するために使用されるコマンドラインユーティリティです。このコマンドラインツールを使用すると、ストレージプールを作成、削除、変更、管理できます。また、ディレクトリの作成、ストレージデバイスの追加、コンテンツタイプの管理など、さまざまなストレージ関連のタスクを実行できます。

構文:

pvesm <command> [options]

ストレージをリストする

pvesm list <storage>

ここで、<storage>はリストするストレージプール(データストア)の名前です。

すべてまたは特定のストレージプールの状態を確認する

pvesm status

出力はストレージプールの状態を表示し、アクティブか非アクティブか、ストレージタイプ、現在の使用状況に関する情報を含みます。

新しいストレージプールの作成

pvesm create <type> <storage-id> --options

ここで:

<type>は作成するストレージバックエンドのタイプ(例えば、dir、lvm、nfs、zfs)です。

<storage-id>はストレージプールの一意の名前またはIDです。

optionsはストレージタイプに特有の追加オプションを定義します。

例:

VMイメージやISOファイルを保存できる、new-datastore1という名前のディレクトリベースのストレージプールを、/mnt/storage-nameに作成する:

pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso

既存のストレージバックエンドをProxmox VEに追加する

このコマンドの原則はpvesm createコマンドと似ていますが、新しいストレージを作成するのではなく、既に存在するストレージをProxmoxの設定に追加して利用できるようにします。

例:

192.168.101.100の/export/dataにある既存のNFS共有を、test-nfs-storageという名前でProxmox VEに追加する:

pvesm add nfs test-nfs-storage --server 192.168.101.100 --export /export/data --path /mnt/pve/test-nfs-storage --content images,iso

既存のストレージプールの設定を変更する

pvesm set <storage-id> --options

例:

local-storage01プールを変更して、VMイメージ、ISOファイル、バックアップファイルを保存できるようにする:

pvesm set local-storage01 --content images,iso,backup

指定されたストレージプールにVMまたはコンテナ用の新しいボリュームを割り当てる

pvesm alloc <storage-id> <vmid> <size>

例:

VM 100のためにlocal-storage-nameプールに10 GBのボリュームを割り当てるコマンド:

pvesm alloc local-storage-name 100 10G

4. pveum

Proxmox Virtual Environmentでは、Proxmox VEを管理するために複数のユーザーを作成できます。これは、pveum(ユーザー管理)コマンドを使用してProxmox CLIコマンドで行うことができます。Proxmox管理者は、ユーザーやグループを管理し、アクセス制御や権限を設定できます。これにより、誰がアクセスでき、Proxmoxインフラのさまざまな部分でアクションを実行することが許可されているかが定義されます。管理者は、仮想マシン、ストレージ、クラスターノードなどのオブジェクトにアクセスするための権限を割り当てることができます。

構文:

pveum <command> [options]

Proxmox VEに新しいユーザーを追加する

pveum useradd <userid> --password <password> --comment <comment> --groups <group>

ここで:

パスワード <password>は新しいユーザーのパスワードです。

コメント <comment>はユーザーに対するオプションのコメントまたは説明です。

グループ <group>はユーザーが所属するべきグループ(またはグループ)です。

例:

pveum useradd user2@pve --password UserSecretPassword111 --comment "user2 – admin group" --groups admin

このコマンドは、user2という名前のユーザーを説明付きでadminグループに追加し、このユーザーのパスワードを設定するために使用されます。

ユーザーの削除

ユーザーを削除するには、ユーザーを追加するのと同じ論理でpveumコマンドを使用します。例えば:

pveum userdel user3@pve

このコマンドは、Proxmoxホスト上のuser3を削除するために使用されます。

グループの作成

Proxmox CLIで新しいグループを作成するには、groupaddコマンドを使用します。

構文:

pveum groupadd <groupname> --comment <comment>

例:

pveum groupadd support --comment "Support Team Group"

このコマンドは、説明“Support Team Group”を持つ新しいグループsupportを作成します。

グループの削除

ユーザーを削除するのと同様に、グループを削除することができます。例えば、guestsグループを削除するには、次のコマンドを使用できます:

pveum groupdel guests

ロールの追加

ロールは、このロールが割り当てられたユーザーやグループに対する一連の権限を定義するために使用されます。

構文:

pveum roleadd <rolename> --privs <privileges>

ここで:

<rolename> は作成するロールの名前です。

privs <privileges> は、ロールに割り当てる権限のカンマ区切りリストです(例:VM.PowerMgmt,VM.Config.Disk)。

例:

pveum roleadd vmmanager --privs VM.PowerMgmt,VM.Config.CDROM

このコマンドは、VMの電源設定を管理し、CD-ROMを構成する権限を持つ「vmmanager」というロールを作成します。

既存のロールの変更

管理者は、rolemod コマンドを使用して、既存のロールと権限を変更できます(権限の追加または削除)。

構文:

pveum rolemod <rolename> --privs <privileges>

例:

pveum rolemod vmmanager --privs +VM.Config.Network

このコマンドは、「VM.Config.Network」の権限を「vmmanager」ロールに追加します。

ACLの変更

Proxmoxの管理者は、特定のProxmoxオブジェクトに対してユーザーやグループにロールを割り当てることでアクセス制御リスト(ACL)を変更できます。

構文:

pveum aclmod <path> --roles <rolename> --users <userid> --groups <groupname>

ここで:

<path>はACLを設定するオブジェクトのパスです(例えば、特定のVMのための/vms/100や、クラスタ全体のための/)。

roles <rolename>は割り当てる役割です。

users <userid>はその役割が割り当てられるユーザーです。

groups <groupname>はその役割が割り当てられるグループです。

例:

pveum aclmod /vms/104 --roles vmmanager --users user4@pve

このコマンドは、VM 104に対してvmmanager役割をuser4@pveに割り当て、ユーザー(user4)がその特定のVMをvmmanager役割の特権に従って管理できるようにします。aclremoveコマンドは、オブジェクトからACLを削除するために使用されます。

認証領域管理

認証領域は、ユーザーがシステムに認証する方法を定義します(例:PAM、LDAP、またはActive Directoryを使用)。Proxmox VEでは、realmコマンドで認証領域を管理できます。

構文:

pveum realm <command> [options]

コマンドは次のようになります:

listは利用可能なすべての領域をリスト表示します

addは新しい領域を追加します

modifyは既存の領域を修正します

削除して既存のレルムを削除する

たとえば、Proxmox VE に設定されているすべての認証レルムを一覧表示するには、次のコマンドを使用します:

pveum realm list

既存のユーザーの管理

このユーザーコマンドを使用して、既存のユーザーを一覧表示、編集、削除できます。

構文:

pveum user <command> <userid> [options]

コマンドは次のようになります:

listですべてのユーザーを一覧表示

modifyしてユーザーの詳細を変更(パスワードの変更やコメントの更新など)

deleteしてユーザーを削除

たとえば、Proxmox ホスト上のすべてのユーザーを一覧表示するには、次のコマンドを使用します:

pveum user list

より多くの利用可能なコマンドとオプションを確認するには、Proxmox CLI でpveum helpコマンドを実行します。

5. pvesh

管理者はpveshコマンドを使用して、Proxmox REST API と対話できます。このコマンドラインツールを使用すると、Proxmox CLI から直接 Proxmox ウェブインターフェースを介して行うことができるほぼすべてのアクションを実行できます。pveshコマンドは、Proxmox VE REST API のシェルとして機能し、コマンドラインから直接コマンドを使用して API 呼び出しを行うことができます。このコマンドを使用すると、仮想マシン、ストレージ、ネットワーク、および Proxmox 仮想インフラストラクチャの他の要素を管理できます。

構文:

pvesh <command> [options]

リソースまたは API エンドポイントの一覧表示

このコマンドはLinuxのlsコマンドに似ていますが、Proxmox VE環境内の利用可能なAPIパスやリソースをリストします。

pvesh ls /path

例:

pvesh ls /cluster/resources

このコマンドは、VM、コンテナ、ストレージを含むProxmoxクラスタ内のすべてのリソースをリストします。

情報の取得

このgetコマンドは、特定のAPIエンドポイントから情報を取得します。このコマンドは、リソースの詳細を照会するために使用されます。

pvesh get /path

ここで、pathは情報を取得したいAPIパスです。

例えば、ノードpve-node1のCPU負荷、メモリ使用量、稼働時間などのステータス情報を取得するには、次のコマンドを使用できます:

pvesh get /nodes/pve-node1/status

設定の変更

このset コマンドは、リソースの設定を変更または更新するために使用されます。これはREST APIでのPOSTまたはPUTリクエストに相当します。

構文:

pvesh set /path --key value [--key value ...]

key valueは、変更したい設定のキーと値のペアです。

例:

pvesh set /nodes/pve-node1/qemu/100/config --name new-vm-name

このコマンドは、ノードpve-node1上のVM100の名前をnew-vm-nameに変更します。

リソースの作成

createコマンドは、新しいリソース、例えば新しいVMやストレージボリュームを作成することを可能にします。

構文:

pvesh create /path --key value [--key value ...]

例えば、特定のパラメータを使用して新しいVMを作成するコマンドは次の通りです:

pvesh create /nodes/pve-node1/qemu --vmid 106 --name new-vm-name --memory 2048 --cores 2

このコマンドは、ノード pve-node1 にID 106 の新しいVMを作成し、名前は new-vm-name、RAMは2GB、CPUコアは2です。

VMの起動

VMまたはコンテナを起動するためのコマンドは pvesh です:

pvesh start /path

例えば、ノード pve-node1 にあるID 101 のVMを起動するには、次のコマンドを実行します:

pvesh start /nodes/pve-node1/qemu/101

VMのシャットダウン

stopコマンドとは異なり、shutdownコマンドはVMまたはコンテナを優雅にシャットダウンします:

pvesh shutdown /path

例えば、ProxmoxホストでID 101のVMをシャットダウンするには、その名前が pve-node1 であるコマンドを使用します:

pvesh shutdown /nodes/pve-node1/qemu/101

すべてのVMの起動

ノードまたはクラスタ全体のすべてのVMを起動または停止するには、対応するコマンドを使用できます:

pvesh startall /nodes/<nodename>

pvesh stopall /nodes/<nodename>

6. pvecm

pvecmコマンドは、Proxmoxクラスタ管理のためのツールであり、Proxmoxクラスタの管理と構成に使用されます。このツールを使用して、クラスタを作成したり、Proxmoxクラスタ内のノードを追加・管理したりできます。クラスタは、高可用性、ライブVMマイグレーション、共有ストレージなどの機能を構成する単一のエンティティとして管理されます。

構文:

pvecm <command> [options]

サポートされているすべてのpvecmコマンドを表示するには、次のコマンドを実行します:

man pvecm

クラスタの作成

新しいProxmox VEクラスタを作成するには、createコマンドを使用します。このコマンドは、クラスタを形成する最初のノード(マスターノード)で実行する必要があります。

pvecm create <clustername>

例:

以下のコマンドは、cluster01という名前のクラスタを作成します。このノード(コマンドを実行するノード)は、クラスタのマスターノードになります。

pvecm create cluster01

クラスタへのノードの追加

既存のProxmoxクラスタに新しいノードを追加するには、addnodeコマンドを使用します。このコマンドは、クラスタに追加したいノードで実行します。

pvecm add <master-node-ip>

例:

IPアドレス192.168.101.121を持つマスターノードが管理するクラスタに現在のProxmoxホストを追加する:

pvecm add 192.168.101.121

クラスタからのノードの削除

delnodeコマンドは、Proxmox CLIでクラスターからノードを削除するために使用されます。

構文:

pvecm delnode <ノード名>

例:

クラスターからノード名pve-node2を削除するコマンドは:

pvecm delnode pve-node2

クラスターのすべてのノードを一覧表示する

クラスターのすべてのノードを一覧表示し、ノード名やIPアドレスを含むステータスを表示するコマンドは:

pvecm nodes

新しいマスターノードの設定

Proxmoxクラスターで別のクラスターのノードをマスターとして設定できます:

pvecm setmaster <ノード名>

ここで、<ノード名>はマスターとして指定したいノードの名前です。

クラスターのステータスを表示

Proxmoxクラスターのステータスを表示し、クォーラム、ノードの数、およびそれらの役割に関する情報を含めることができます。

pvecm status

期待されるノード数の設定

クラスター内でクォーラムを達成するために期待されるノード数を確認するには、expectedコマンドを使用できます。一部のクラスターのノードが一時的にオフラインの場合、混乱を避けるためにこのコマンドを使用する必要があります。クォーラムは、異なるクラスターのノードがクラスターの状態に関して対立する情報を持っている場合のスプリットブレイン状況を避けるために使用されます。

pvecm expected <数>

7. hamanager

hamanager コマンドは、Proxmox クラスターを作成した後に仮想マシンの高可用性 (HA) 機能を管理するために使用されます。このコマンドラインユーティリティを使用すると、重要な VM の高可用性を構成し、それらが実行されているノードが失敗した場合にクラスタ内で再起動する方法を設定できます。Proxmox CLI の hamanager ツールは、Proxmox 高可用性マネージャーと対話します。

構文:

ha-manager <command> [options]

ステータスの表示

HA リソースの現在のステータスを表示するには、次のコマンドを使用できます:

ha-manager status

出力は、HA に構成されている VM または CT、現在の状態 (開始、停止)、HA ステータスおよびフェイルオーバーステータス、実行されているノードについての情報を表示します。

VM の HA を有効にする

構文:

ha-manager add <vmid> --group <groupname> --max-restarts <n> --max-migrate-tries <n>

ここで:

<vmid> は、HA に追加したい VM または CT の ID です。

group <groupname> は、リソースを追加する HA グループ (オプション) です。

max-restarts <n> は、リソースが失敗した場合の最大再起動試行回数です。

max-migrate-tries <n> は、リソースが再起動できない場合の別のノードへの最大移行試行回数です。

例:

VM ID 105 を HA マネージャーに追加し、最大 3 回の再起動試行と 1 回の移行試行を設定します:

ha-manager add 105 --max-restarts 3 --max-migrate-tries 1

VM の HA ステータスを無効にする

高可用性のステータスを無効にするには、remove コマンドを使用して、仮想マシンを HA マネージャーから削除します。

ha-manager remove <vmid>

たとえば、ID 105 の VM の HA ステータスを無効にするには、次のコマンドを実行します:

ha-manager remove 105

コマンドを実行した後、その VM は高可用性リソースとして管理されなくなります。

VM マイグレーション

高可用性の VM をクラスター内の別のノードに手動で移行するには、migrate コマンドを使用します:

ha-manager migrate <vmid> <targetnode>

たとえば、ID 106 の VM を pve-node2 というノードに移行するには、次のコマンドを実行します:

ha-manager migrate 106 pve-node2

8. vzdump

コマンド vzdump は、Proxmox VE でネイティブの Proxmox ツールを使用してバックアップを作成するために使用されます。このコマンドは、VM とコンテナのバックアップをサポートしています。バックアップは .vma、.tgz または .lzo 形式で保存できます。

構文:

vzdump [options] <vmid> [<vmid2> ...]

ここで:

vmid は、バックアップしたい VM またはコンテナの ID です。

mode <mode> はバックアップモードを定義します。サポートされているバックアップモードは3つあります:

  • スナップショット – Proxmoxの仮想マシンまたはコンテナのライブスナップショットを取得します。このモードはデフォルトで使用されており、VMやコンテナが実行中の場合にバックアップを実行することができます。
  • サスペンド – このモードはバックアップ前にVMまたはコンテナを一時停止するために使用され、データの整合性を確保します。このモードによる短時間のダウンタイムは欠点です。
  • 停止 – バックアップを実行する前に仮想マシンまたはコンテナを停止します。このアプローチはバックアップデータの整合性を保つことができますが、より長いダウンタイムが必要です。

compress <type> は圧縮方法を指定するために使用されます。サポートされている圧縮オプションは3つあります:

  • lzo – Proxmoxバックアップ用の軽量で高速な圧縮(デフォルトで使用)。
  • gzip – これはより効率的な圧縮方法ですが、データの圧縮により多くの時間を要します(圧縮が遅い)。
  • zstd – この圧縮タイプは、最適なパフォーマンスを提供する高圧縮率の現代的な圧縮アルゴリズムを使用します。

storage <storage> はバックアップファイルの保存先を指定します。これにはローカルディレクトリ、NFS共有、またはProxmoxストレージプールが含まれます。

maxfiles <n> は保持するバックアップファイルの数を制限します。制限に達した場合、古いバックアップは自動的に削除されます。

remove <mode> は、指定されたモードに従ってバックアップファイルを自動的に削除します。モードには次のものが含まれます:

  • old – 新しいバックアップが作成されると、古いバックアップを削除します。
  • fail – 失敗したバックアップのみを削除します。

複数のVMをバックアップする

VMのID 101、102、103を順にバックアップします:

vzdump 101 102 103

圧縮を用いてバックアップを保存する

vzdump 101 --storage local --compress gzip --maxfiles 3

このオプションを使用したvzdumpコマンドは、次の操作を行います:

  • VM 101のバックアップを「local」という名前のストレージに保存します。ローカルストレージは、Proxmoxホスト上のローカルディレクトリまたはストレージプールである可能性があります。
  • 圧縮にはgzipが使用されます。gzip圧縮で暗号化されたバックアップを作成するには時間がかかる場合がありますが、結果としてバックアップファイルのサイズが小さくなります。
  • 最新の3つのバックアップのみが保持され、古いものは自動的に削除されます。

ログファイルを省略する

vzdump 102 --exclude-path /var/log

VM 102をバックアップしますが、/var/log ディレクトリは除外し、ログファイルを省略することでバックアップのサイズを削減します。

古いバックアップを削除する

vzdump 101 --storage nfs-backup --maxfiles 5 --remove old

これは古いバックアップを削除する自動バックアップです。VM 101 をバックアップし、バックアップを nfs-backup ストレージに保存し、最新の5つのバックアップのみを保持し、それより古いバックアップは自動的に削除します。

スナップショットモードでバックアップ

vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7

すべてのVMおよびコンテナのバックアップ(夜間バックアップなど)をスナップショットバックアップモードを使用して作成します。バックアップは nfs-backup というNFS共有に保存されます。帯域幅は20480 Kbytes毎秒(20 MBps)に制限され、ネットワークの過負荷を防ぎます。最後の7つのバックアップのみが保持され、それより古いバックアップは自動的に削除されます。

9. qmrestore

qmrestore コマンドは、Proxmox仮想環境で vzdump コマンドを使用して作成されたバックアップから仮想マシンを復元するために使用されます。これらの vzdumpqmrestore コマンドは、VMのバックアップと復元のためのネイティブなProxmoxツールです。バックアップは新しいVMまたは既存のVMに復元できます。

構文:

qmrestore [options] <backupfile> <vmid>

ここで:

<backupfile> は、復元したいバックアップファイルのパスです。このファイルは通常、vzdump コマンドによって生成され、ディレクトリまたはネットワークストレージデバイスに保存されます。

<vmid> は、復元したいVMのIDです。VM IDが既に存在する場合、特定のオプションを使用してこれを防がない限り、既存のVMが上書きされます。

コマンドオプション:

forceは、同じIDを持つ既存のVMを上書きするために使用され、確認の質問はありません。このオプションを使用すると、同じIDの仮想マシンの現在の状態を失うことを気にせずにVMを復元できます。

uniqueは、復元されたVMのために新しい一意のVM IDを生成するために使用されます。このオプションを使用して、既存のVMを上書きせずに新しいVMを作成してバックアップを復元することを検討してください。

storage <storage>は、復元されたVMの仮想ディスクイメージのターゲットストレージ位置を指定します。このオプションが指定されていない場合、VMは元のストレージまたはデフォルトのストレージに復元されます。

pool <pool>は、復元されたVMをProxmox仮想環境の特定のリソースプールに割り当てることを許可します。リソースプールは、仮想マシンを管理しやすくするためにグループ化するために使用されます。

hostname <name>は、復元されたVMのホスト名を設定します。このオプションは、復元されたVMのホスト名を元のホスト名とは異なるものに設定したい場合に便利です。

name <name>は、復元されたVMのカスタム名(Proxmoxユーザーインターフェースに表示される名前)を設定します。これは、バックアップされた元のVM名とは異なります。

元のIDにVMを復元する

VMを元のIDに復元する:

qmrestore /var/lib/vz/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 101

このコマンドはバックアップファイル vzdump-qemu-101-2023_08_27-00_00_00.vma を ID 101 の VM に復元します。もし ID 101 の VM が既に存在する場合は、上書きされます。

新しい VM にバックアップを復元する

新しい VM にバックアップを復元する:

qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 102 --storage local-lvm

このコマンドは ID 102 の新しい VM にバックアップを復元し、そのディスクイメージを local-lvm ストレージに保存します。

ホスト名と VM 名を変更して復元する

バックアップを復元し、ホスト名と名前を変更する:

qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 103 --hostname restored-vm --name "MyRestoredVM"

バックアップを ID 103 の新しい VM に復元し、VM の名前を MyRestoredVM に変更し、ホスト名を restored-vm に設定します。

10. proxmox-backup-client

proxmox-backup-client コマンドは、バックアップと復元操作に使用されるネイティブな Proxmox バックアップソリューションである Proxmox Backup Server と連携して使用されるコマンドラインユーティリティです。このツールは、管理者が仮想マシン、コンテナ、その他のデータタイプを保護することを可能にします。proxmox-backup-client ツールは、バックアップを管理するために Proxmox Backup Server (PBS) と対話します。

構文:

proxmox-backup-client <command> [options]

バックアップコマンドの基本構文

proxmox-backup-client backup <アーカイブ名> <パス> --repository <リポジトリ> [オプション]

ここで:

<アーカイブ名>はバックアップアーカイブに付けたい名前です。

<パス>はバックアップしたいディレクトリまたはファイルへのパスを定義します。

repository <リポジトリ>はProxmox Backup Server上のターゲットリポジトリで、通常はuser@pbs:datastoreの形式です。

例:

proxmox-backup-client backup etc.pxar /etc --repository root@[email protected]:datastore1

このコマンドは、/etcディレクトリを10.10.10.101にあるProxmox Backup Serverのdatastore1にバックアップします。バックアップはetc.pxarという名前のアーカイブとして保存されます。

復元コマンドの基本構文

プロクスモックスバックアップクライアントコマンドラインツールの復元コマンドは、Proxmox Backup Serverからローカルシステムにデータを復元するために使用されます。

proxmox-backup-client restore <アーカイブ名> <パス> --repository <リポジトリ> [オプション]

ここで:

<アーカイブ名>は復元したいアーカイブの名前です。

<パス>はデータを復元する場所のパスです。

repository <リポジトリ>はバックアップが保存されているリポジトリです。

例:

proxmox-backup-client restore etc.pxar /restore/etc --repository root@[email protected]:datastore1

このコマンドは、Proxmox Backup Server(10.10.10.101)上のdatastore1からetc.pxarアーカイブをローカルディレクトリ/restore/etcに復元します。

結論

Proxmox CLIコマンドは、ストレージ、仮想マシン、クラスター、VMバックアップなどを含むProxmox仮想環境を管理するための強力なツールセットです。包括的なVMバックアップ戦略を実装したい場合は、NAKIVO Backup & Replicationをインストールし、Proxmox VE VM用のエージェントレスバックアップ機能を利用してください。

Source:
https://www.nakivo.com/blog/top-10-proxmox-cli-commands-every-admin-should-know/