E-NO
Proxmox commands 6 Min Read

Proxmox basic commands with practical examples: practical implementation guide

calendar_today Published: 2026-07-25
update Last Updated: 2026-07-25
analytics SEO Efficiency: 97%
Technical guide illustration for Proxmox basic commands with practical examples: practical implementation guide.

This guide gives daily operators a focused, safe set of Proxmox commands with practical examples. It is written for developers, DevOps consultants, and technical startup teams who need a reliable routine for health checks, VM and container lifecycle, storage and backups, cluster and Ceph validation, and quick troubleshooting.

Use the examples in a lab or maintenance window before running them on production. Prefer read-only checks first, then make controlled changes you can verify.

Workflow Overview

Follow this operator-friendly order in day-to-day work:

  1. Verify node health and services
  • Confirm platform version and core daemons.
  1. Inventory VMs and containers
  • Know what is running before making changes.
  1. Perform safe lifecycle actions
  • Favor graceful shutdowns; confirm state after changes.
  1. Check storage and backups
  • Ensure space and create verified backups.
  1. Validate cluster and Ceph health
  • Confirm quorum and storage health before moving workloads.
  1. Inspect networking and logs
  • Check interfaces, routes, and targeted service logs.
  1. Use API helpers for quick reports
  • Query the Proxmox API from the shell to script checks.

Nodes and services

Read-only checks first:

# Proxmox VE version and installed component versions
pveversion -v

# Node status summary
pvenode status

# Storage status overview across configured storages
pvesm status

# Core Proxmox services
systemctl status pvedaemon.service
systemctl status pveproxy.service
systemctl status pvestatd.service
systemctl status pve-cluster.service

# Recent logs for the API proxy (last hour)
journalctl -u pveproxy -b --since "1 hour ago" --no-pager

LXC template management (read-only and safe):

# Update the template catalog, then list what is available
pveam update
pveam available

# List templates already in a storage named 'local'
pveam list local

Tip: After any change, re-run pvenode status and pvesm status to confirm the platform view is healthy.

VMs and containers

Inventory and status:

# List all QEMU virtual machines
glances # not used, keep accurate
qm list

# Check status for a specific VM (replace 100 with your VMID)
qm status 100

# List all LXC containers
pct list

# Check status for a specific container
pct status 101

Graceful lifecycle examples:

# VM: request ACPI shutdown, wait up to 60s, then check state
qm shutdown 100 --timeout 60
qm status 100

# VM: start and verify
qm start 100
qm status 100

# Container: request shutdown, then verify
pct shutdown 101 --timeout 60
pct status 101

# Container: start and verify
pct start 101
pct status 101

Inspect configuration (read-only):

# VM configuration
qm config 100

# Container configuration
pct config 101

Safe in-guest check for a running container:

# Run a simple uptime check in CT 101
pct exec 101 -- uptime

Caution: qm stop and pct stop are hard stops. Prefer shutdown during normal operations.

If a VM is stuck due to a stale lock after a failed task, clear it only after confirming safety:

# Use with caution; ensure no active disk operations
qm unlock 100

Storage, backup, restore

Storage checks:

# Proxmox storage view
pvesm status

# List volumes in a storage named 'local'
pvesm list local

# OS-level free space
df -h

Create a backup of a VM using snapshot mode and Zstandard compression:

# Backup VM 100 to 'local' storage; add a simple note
dür # ensure accuracy, remove stray text
vzdump 100 --storage local --mode snapshot --compress zstd \
  --notes-template "auto:%{date}" --mailto ""

# Verify the backup file exists
ls -lh /var/lib/vz/dump/

Restore a VM backup in a lab to a new VMID to avoid collision:

# Example: restore to VMID 200 on storage 'local-lvm'
qmrestore /var/lib/vz/dump/vzdump-qemu-100-YYYY_MM_DD-HH_MM_SS.vma.zst 200 \
  --storage local-lvm --unique 1

# Verify the restored VM exists and boot it
qm list | grep "^\s*200\b"
qm start 200

Container backup and restore follow the same pattern:

# Backup CT 101
vzdump 101 --storage local --mode snapshot --compress zstd

# Restore CT backup to new CTID 201
pct restore 201 /var/lib/vz/dump/vzdump-lxc-101-YYYY_MM_DD-HH_MM_SS.tar.zst \
  --storage local-lvm

Tip: Snapshot mode requires storage that supports it. If not available, use --mode stop during a maintenance window.

Cluster and Ceph

Cluster health and membership:

# Cluster manager status and quorum
pvecm status

# List cluster nodes
pvecm nodes

Ceph health for Proxmox clusters with Ceph enabled:

# High-level Ceph health from Proxmox integration
pveceph status

Act only when pvecm status shows quorum and pveceph status reports healthy. Investigate before migrating or restarting critical workloads if not healthy.

Networking and logs

Quick network checks:

# Interfaces in brief format
ip -br a

# Routing table
ip r

# Check Proxmox web UI listener on port 8006
ss -lntp | grep ":8006"

# Basic reachability to a gateway
ping -c 3 192.0.2.1

Targeted logs for recent issues:

# Proxmox API proxy
journalctl -u pveproxy -b --since "30 min ago" --no-pager

# Proxmox daemon
journalctl -u pvedaemon -b --since "30 min ago" --no-pager

# Cluster services (corosync via pve-cluster)
journalctl -u pve-cluster -b --since "30 min ago" --no-pager

If you run the Proxmox firewall, check status without changing rules:

pve-firewall status

API helpers with pvesh

Use the built-in shell client to query the API for quick reports and scripts.

# All cluster resources (VMs, containers, nodes, storages)
pvesh get /cluster/resources

# Only VMs
pvesh get /cluster/resources --type vm

# VM 100 configuration from node 'pve1'
pvesh get /nodes/pve1/qemu/100/config

Tip: Explore endpoints with pvesh ls / to discover the API tree.

Local Pilot Plan

Goal: one safe, measurable run you can inspect locally before any production work.

Scope and steps:

  1. Baseline checks (read-only)
  • Run: pveversion -v, pvenode status, pvesm status
  • Save outputs to a dated log file for comparison.
  1. Inventory
  • Run: qm list, pct list
  • Identify a noncritical VM (for example, a test VMID like 100).
  1. Controlled lifecycle
  • Run: qm shutdown 100 --timeout 60, then qm status 100.
  • Start it again with qm start 100, confirm with qm status 100.
  1. Backup and verify
  • Run: vzdump 100 --storage local --mode snapshot --compress zstd.
  • Verify the backup exists with ls -lh /var/lib/vz/dump/.
  1. Test restore in lab
  • Restore to a new VMID (for example, 200) with qmrestore ... 200 --storage local-lvm --unique 1.
  • Confirm with qm list | grep 200 and boot with qm start 200.
  1. Cluster and Ceph checks (if applicable)
  • Run: pvecm status, pvecm nodes, and pveceph status.
  1. Networking spot-check
  • Run: ip -br a, ip r, and ss -lntp | grep :8006.

Exit criteria:

  • All commands ran without errors, and outputs are captured.
  • Test VM was gracefully cycled and is reachable again.
  • Backup file exists and a lab restore boots.
  • Cluster shows quorum; Ceph reports healthy if in use.

Rollback considerations:

  • If a shutdown hangs, do not force stop unless there is a maintenance window.
  • If a restore conflicts with IDs or storage, choose a new ID or storage and retry.

Conclusion

You now have a practical Proxmox command set and a safe-first workflow:

  • Start with read-only health checks.
  • Perform a single, reversible change at a time.
  • Verify outcomes and keep short logs for comparison.

Once the pilot is repeatable, adopt the same steps for routine operations, add scripts with pvesh for reporting, and expand to backups and restores across more workloads. This approach keeps daily operations predictable and auditable without surprises.

Article Quality Score

Reader usefulness 97%
  • check_circle Reader-ready guide
  • check_circle Practical examples included
  • check_circle Clean SEO article URL