# Proxmox VE Command-Line Cheatsheet This is a plain-text copy of a cheatsheet published by Ellington Technologies, made for pasting into an AI assistant. It's generated from the same source file as the web page. If the two ever differ, the web page is correct: https://jeremiahellington.com/resources/cheatsheets/proxmox-ve-cli - Source (authoritative web version): https://jeremiahellington.com/resources/cheatsheets/proxmox-ve-cli - Author: Jeremiah Ellington - Published: 2026-10-27 - Last updated: 2026-10-27 - Last reviewed: 2026-10-27 - Next scheduled review: 2027-04-30 - Applies to: Proxmox VE 9.x (9.2 current on 2026-10-27); run as root on the host. Commands checked against Proxmox VE 9.x docs, not lab-tested on a 9.2 host. Most also work on 8.x, which reached end of support in August 2026 The Proxmox VE shell commands you'll use most: VMs (qm), containers (pct), storage, backups and restores, templates, networking, updates, and troubleshooting. --- Every command here is **checked against Proxmox VE 9.x docs, not lab-tested on a 9.2 host** (re-checked October 27, 2026). Replace `100` (VM), `200` (container), and storage names such as `local-lvm` and `backups` with your own. Run `qm help ` or `pct help ` for every option. > **Caution:** > Commands marked **destructive** delete data or stop guests without a clean shutdown. Make sure you have a tested backup before using them. ## Host and version ```bash pveversion -v # Proxmox VE and package versions apt update && apt full-upgrade # update the host (never plain "apt upgrade") pvesm status # storage, type, and free space ip -br addr # network interfaces and addresses systemctl status pveproxy # web interface service ``` ## Virtual machines (qm) ```bash qm list # all VMs with status qm config 100 # a VM's configuration qm start 100 qm shutdown 100 # clean shutdown (needs ACPI or the guest agent) qm reboot 100 qm set 100 --memory 4096 --cores 2 qm set 100 --onboot 1 # start at host boot qm set 100 --agent enabled=1 # use the QEMU guest agent qm disk resize 100 scsi0 +10G # grow a disk ("qm resize" is an alias); then grow the filesystem inside the guest qm guest cmd 100 network-get-interfaces # guest IPs via the agent ``` *Destructive: use with care* ```bash qm stop 100 # hard power-off, like pulling the plug qm destroy 100 --purge # deletes the VM and its disks; --purge also removes it from backup, replication and HA jobs qm unlock 100 # clears a stuck lock: only if no task is running ``` ## Containers (pct) ```bash pct list pct config 200 pct start 200 pct shutdown 200 pct enter 200 # root shell inside the container pct exec 200 -- df -h # run one command inside pct set 200 --memory 1024 --cores 1 pct resize 200 rootfs +4G # grow the root disk pct push 200 ./file.conf /etc/app/file.conf # copy a file in pct pull 200 /var/log/app.log ./app.log # copy a file out ``` *Destructive* ```bash pct stop 200 # immediate stop pct destroy 200 --purge # deletes the container and its volumes; --purge also removes it from backup, replication and HA jobs ``` ## Snapshots ```bash qm snapshot 100 before-update --description "Before updates" qm listsnapshot 100 qm rollback 100 before-update # destructive: discards changes since the snapshot (a snapshot with RAM also starts the VM) qm delsnapshot 100 before-update pct snapshot 200 before-update # same idea for containers ``` > **Warning:** > Snapshots live on the same storage as the guest. They're not backups. ## Backups and restores ```bash vzdump 100 --storage backups --mode snapshot --compress zstd vzdump 100 200 --storage backups --mode snapshot --compress zstd --notes-template "{{guestname}}" ls /var/lib/vz/dump/ # backups on the "local" storage qmrestore /var/lib/vz/dump/vzdump-qemu-100-.vma.zst 150 --storage local-lvm # restore to new VM ID 150 pct restore 250 /var/lib/vz/dump/vzdump-lxc-200-.tar.zst --storage local-lvm # restore to new CT ID 250 ``` > **Tip:** > Restore to a **new** ID to test a backup without touching the original, and start the restored guest with its network disconnected so it doesn't conflict with the original's IP address. ## Templates and clones ```bash pveam update # refresh the container template list pveam available --section system # OS templates you can download pveam list local # templates already downloaded qm template 100 # convert a VM into a template qm clone 100 101 --name web01 --full # full clone of template 100 as VM 101 ``` ## Networking ```bash cat /etc/network/interfaces # host network configuration ifreload -a # apply changes to the interfaces file bridge vlan show # VLANs on VLAN-aware bridges ``` > **Caution:** > A mistake in `/etc/network/interfaces` can cut off remote access. Make network changes when you can reach the physical console. ## ZFS (if you installed on ZFS) ```bash zpool status # health of each pool and disk zpool list # size and free space zfs list # datasets and volumes zpool scrub rpool # start a data integrity check ``` ## Troubleshooting ```bash journalctl -b -p err # errors since the last boot journalctl -u pveproxy -b # web interface logs systemctl restart pveproxy pvedaemon # restart the web interface services qm showcmd 100 --pretty # the QEMU command line a VM starts with grep -Ec '(vmx|svm)' /proc/cpuinfo # 0 = virtualization not enabled in firmware ``` ## Related - Building your first host: [Building Your First Proxmox Homelab](https://jeremiahellington.com/resources/proxmox-homelab-guide) - For deduplicated, incremental backups, see [Proxmox Backup Server](https://pbs.proxmox.com/docs/). --- ## Sources and official documentation - [Proxmox VE Administration Guide (command-line tools)](https://pve.proxmox.com/pve-docs/pve-admin-guide.html) - [qm(1) manual page](https://pve.proxmox.com/pve-docs/qm.1.html) - [pct(1) manual page](https://pve.proxmox.com/pve-docs/pct.1.html) - [vzdump(1) manual page](https://pve.proxmox.com/pve-docs/vzdump.1.html) - [qmrestore(1) manual page](https://pve.proxmox.com/pve-docs/qmrestore.1.html) - [pveam(1) manual page](https://pve.proxmox.com/pve-docs/pveam.1.html) - [pvesm(1) manual page](https://pve.proxmox.com/pve-docs/pvesm.1.html) ## Review history - Technical review: Jeremiah Ellington, 2026-10-27 - Editorial review: Jeremiah Ellington, 2026-10-27