Hello! 🚀 Proxmox VE is a powerful and flexible open source solution for building and managing virtualization environments. Although most tasks can be accomplished with the web interface alone, being proficient at using terminal commands is essential for deeper understanding, automation, and quick response to problems in your Proxmox environment. In this article, we will carefully select and explain in detail **30 Key Commands** that Proxmox VE users must know. We will look at the function, usage, and real-world examples of each command to help you become a Proxmox master! — ### 📚 Table of Contents 1. **Proxmox system management commands** 2. **VM/CT list and status check commands** 3. **VM/CT control commands** 4. **VM/CT configuration and information check commands** 5. **VM/CT advanced operation commands (clone, snapshot, migration)** 6. **Storage and template management commands** 7. **Cluster management commands** 8. **Backup and restore related commands** — ### 1. Proxmox system management commands 🛠️ These are basic commands used to check and maintain the status of the Proxmox node itself. 1. **`pveversion`** * **Function:** Check the current Proxmox VE version and kernel information. Useful for quickly checking system information. * **Usage:** “`bash pveversion “` * **Example:** “` pveversion # Example result: # proxmox-ve: 7.4-1 (running kernel: 5.15. 102-1-pve) # pve-manager: 7.4-3 # … (and so on) “` * 💡 **Tip:** Providing this information will make it easier to get support and find a solution if you encounter a problem. 2. **`apt update && apt upgrade`** * **Function:** Updates the package list of the Proxmox system and upgrades installed packages. It is recommended to run it regularly to maintain system stability and security. * **Usage:** “`bash apt update && apt upgrade -y “` * **Example:** “`bash apt update && apt upgrade -y # Updates the package list and automatically upgrades all packages “` * ⚠️ **Caution:** A reboot may be required after updating the kernel. It is recommended to run it when there are no running VMs/CTs. 3. **`systemctl status `** * **Function:** Check the status of the main services of Proxmox (e.g. `pveproxy`, `pve-cluster`, `pvedaemon`). You can determine whether the service is running normally or if a problem has occurred. * **Usage:** “`bash systemctl status pveproxy systemctl status pve-cluster “` * **Example:** “`bash systemctl status pveproxy # pveproxy.service – PVE API Proxy Server # Loaded: loaded (/lib/systemd/system/pveproxy.service; enabled; vendor preset: enabled) # Active: active (running) since Tue 2023-10-24 10:00:00 KST; 1h ago # … (omitted) “` 4. **`df -h`** * **Function:** Displays disk space usage in a human-readable format. Essential for checking the free space of each storage volume on a Proxmox node. * **Usage:** “`bash df -h “` * **Example:** “` df -h # Example results: # Filesystem Size Used Avail Use% Mounted on # /dev/mapper/pve-root 98G 10G 83G 11% / # udev 7.8G 0 7.8G 0% /dev # … (omitted) “` 5. **`htop`** * **Function:** An interactive tool that shows the real-time processes, CPU, memory usage, etc. of the system. It is useful for diagnosing resource bottlenecks and finding out which processes are consuming a lot of resources. * **Usage:** “`bash htop “` * 💡 **Tip:** If `htop` is not installed, you can install it with `apt install htop`. 6. **`journalctl -f`** * **Function:** Tracks and shows the real-time log of the system. When various issues occur, such as Proxmox web interface access problems, VM/CT start failures, etc., logs are very important to identify the cause. * **Usage:** “`bash journalctl -f “` * **Example:** “`bash journalctl -f # Real-time system logs are printed. (Exit with Ctrl+C) “` — ### 2. Command to check VM/CT list and status 📋 You can quickly check the list and status of virtual machines (VMs) and containers (CTs) currently running or created on the Proxmox node. 7. **`qm list`** * **Function:** Shows the list and current status of all KVM virtual machines (VMs). * **Usage:** “`bash qm list “` * **Example:** “` qm list # Example results: # VMID NAME STATUS MEM(MB) SWAP(MB) BOOTDISK(GB) PID # 100 Ubuntu-Server running 2048 0 32.0 12345 # 101 Windows-VM stopped 4096 0 64.0 0 “` 8. **`pct list`** * **Function:** List all LXC containers (CTs) and their current status. * **Usage:** “`bash pct list “` * **Examples:** “` pct list # Example results: # VMID NAME STATUS MEM(MB) SWAP(MB) ROOTFS(GB) PID # 200 Debian-CT running 512 0 8.0 67890 # 201 Alpine-CT stopped 256 0 4.0 0 “` 9. **`qm status `** * **Function:** Check the detailed status of a specific VM. * **Usage:** “`bash qm status 100 “` * **Example:** “` qm status 100 # status: running # qmpstatus: running # ha: no # cpus: 2 # pid: 12345 “` 10. **`pct status `** * **Function:** Check the detailed status of a specific CT. * **Usage:** “`bash pct status 200 “` * **Example:** “` pct status 200 # status: running # ha: no # cpus: 1 # pid: 67890 “` — ### 3. VM/CT control commands ⏯️ Basic control commands to start, stop, force terminate, and delete virtual machines and containers. 11. **`qm start `** * **Function:** Starts the specified VM. * **Usage:** “`bash qm start 100 “` 12. **`qm stop `** * **Function:** Forces the specified VM to stop. (Same as if the operating system suddenly lost power. Risk of data loss.) * **Usage:** “`bash qm stop 100 “` 13. **`qm shutdown `** * **Function:** Sends a shutdown signal to the specified VM, causing the operating system to shut down gracefully. (Recommended) * **Usage:** “`bash qm shutdown 100 “` * 💡 **Tip:** If `qm shutdown` does not respond, you should use `qm stop`. 14. **`qm destroy `** * **What it does:** Permanently deletes all disks and configuration files associated with the specified VM. **Use with extreme caution.** * **Usage:** “`bash qm destroy 100 “` * ⚠️ **Warning:** This operation is irreversible, so use with caution. 15. **`pct start `** * **Function:** Starts the specified CT. * **Usage:** “`bash pct start 200 “` 16. **`pct stop `** * **Function:** Forces a specified CT to stop. * **Usage:** “`bash pct stop 200 “` 17. **`pct shutdown `** * **Function:** Sends a shutdown signal to the specified CT to ensure a graceful shutdown. (Recommended) * **Usage:** “`bash pct shutdown 200 “` 18. **`pct destroy `** * **Function:** Permanently delete all disks and configuration files associated with the specified CT. **Use with extreme caution.** * **Usage:** “`bash pct destroy 200 “` * ⚠️ **Warning:** This operation cannot be undone, so use with caution. — ### 4. Commands to check VM/CT configuration and information ⚙️ Use to check the current configuration of virtual machines and containers and modify them as needed. 19. **`qm config `** * **Function:** Displays all configuration information of the specified VM. You can check detailed settings such as CPU, memory, disk, and network. * **Usage:** “`bash qm config 100 “` * **Example:** “` qm config 100 # arch: x86_64 # cores: 2 # memory: 2048 # net0: virtio=00:1A:2B:3C:4D:5E,bridge=vmbr0 # ostype: l26 # … (omitted) “` * 💡 **Tip:** `qm set You can change the settings with the command —