# Proxmox CLI Tools Reference ## qm - VM Management ```bash # List and status qm list # List all VMs qm status # VM status qm config # Show VM config # Power operations qm start # Start VM qm stop # Force stop qm shutdown # ACPI shutdown qm reboot # ACPI reboot qm reset # Hard reset qm suspend # Suspend to RAM qm resume # Resume from suspend # Configuration qm set --memory 4096 # Set memory qm set --cores 4 # Set CPU cores qm set --name newname # Rename VM # Disk operations qm resize scsi0 +10G # Extend disk qm move-disk scsi0 # Move disk # Snapshots qm snapshot # Create snapshot qm listsnapshot # List snapshots qm rollback # Rollback qm delsnapshot # Delete snapshot # Templates and clones qm template # Convert to template qm clone # Clone VM # Migration qm migrate # Live migrate # Troubleshooting qm unlock # Remove lock qm showcmd # Show QEMU command qm monitor # QEMU monitor qm guest cmd # Guest agent command ``` ## pct - Container Management ```bash # List and status pct list # List all containers pct status # Container status pct config # Show config # Power operations pct start # Start container pct stop # Stop container pct shutdown # Graceful shutdown pct reboot # Reboot # Access pct enter # Enter shell pct exec -- # Run command pct console # Attach console # Configuration pct set --memory 2048 # Set memory pct set --cores 2 # Set CPU cores pct set --hostname name # Set hostname # Disk operations pct resize rootfs +5G # Extend rootfs pct move-volume # Move volume # Snapshots pct snapshot # Create snapshot pct listsnapshot # List snapshots pct rollback # Rollback # Templates pct template # Convert to template pct clone # Clone container # Migration pct migrate # Migrate container # Troubleshooting pct unlock # Remove lock pct push # Copy file to container pct pull # Copy file from container ``` ## pvecm - Cluster Management ```bash # Status pvecm status # Cluster status pvecm nodes # List nodes pvecm qdevice # QDevice status # Node operations pvecm add # Join cluster pvecm delnode # Remove node pvecm updatecerts # Update SSL certs # Recovery pvecm expected # Set expected votes ``` ## pvesh - API Shell ```bash # GET requests pvesh get /nodes # List nodes pvesh get /nodes//status # Node status pvesh get /nodes//qemu # List VMs on node pvesh get /nodes//qemu//status/current # VM status pvesh get /storage # List storage pvesh get /cluster/resources # All cluster resources # POST/PUT requests pvesh create /nodes//qemu -vmid ... # Create VM pvesh set /nodes//qemu//config ... # Modify VM # DELETE requests pvesh delete /nodes//qemu/ # Delete VM ``` ## vzdump - Backup ```bash # Basic backup vzdump # Backup VM vzdump # Backup container # Options vzdump --mode snapshot # Snapshot mode vzdump --compress zstd # With compression vzdump --storage backup # To specific storage vzdump --mailto admin@example.com # Email notification # Backup all vzdump --all # All VMs and containers vzdump --pool # All in pool ``` ## qmrestore / pct restore ```bash # Restore VM qmrestore qmrestore --storage local-lvm # Restore container pct restore pct restore --storage local-lvm ``` ## Useful Combinations ```bash # Check resources on all nodes for node in joseph maxwell everette; do echo "=== $node ===" pvesh get /nodes/$node/status | jq '{cpu:.cpu, memory:.memory}' done # Stop all VMs on a node qm list | awk 'NR>1 {print $1}' | xargs -I {} qm stop {} # List VMs with their IPs (requires guest agent) for vmid in $(qm list | awk 'NR>1 {print $1}'); do echo -n "$vmid: " qm guest cmd $vmid network-get-interfaces 2>/dev/null | jq -r '.[].["ip-addresses"][]?.["ip-address"]' | head -1 done ```