Mastering Proxmox Commands

Mastering Proxmox Commands

It seems you’re looking for commands that are more specific to certain aspects of Proxmox, particularly in managing containers, storage, and other system-level configurations. The commands you mentioned, like pct, pvefstab, and others, are indeed integral to Proxmox’s functionality, especially when working with LXC containers and the Proxmox Virtual Environment (PVE).

Let’s dive into these commands, explaining their usage with examples to give you a comprehensive understanding of how to use them effectively.

1. pct: Proxmox Container Management

The pct command is specifically designed to manage Linux Containers (LXC) within Proxmox. It’s a powerful tool for creating, modifying, starting, and stopping containers.

a. Listing Containers

To list all containers on the system:

pct list 

This command shows all containers with their CTID, status, uptime, and resource usage.

b. Starting a Container

To start a specific container:

pct start <CTID> 

Replace <CTID> with the container ID. This command will boot the container.

c. Stopping a Container

To stop a running container:

pct stop <CTID> 

This command will safely shut down the specified container.

d. Creating a New Container

To create a new container:

pct create <CTID> <TEMPLATE> --storage <STORAGE> 

Replace <TEMPLATE> with the template you wish to use (e.g., an Ubuntu template), and <STORAGE> with the storage location.

e. Destroying a Container

To delete a container:

pct destroy <CTID> 

This command permanently removes the container and all its data.

f. Accessing Container Console

To access the console of a running container:

pct enter <CTID> 

This gives you a shell within the container, allowing direct interaction with the container’s environment.

2. pve: Proxmox VE (Virtual Environment) Management

The pve command is a general tool that provides various subcommands to interact with different components of the Proxmox VE.

a. Checking Proxmox Version

To check the current version of Proxmox VE:

pveversion 

This command displays the installed Proxmox version along with the running kernel.

b. Accessing Node Information

To display information about the node:

pvenode status 

This command shows the status of the Proxmox node, including uptime, load average, and memory usage.

c. Listing Services

To list all services running on the Proxmox node:

pvesh get /nodes/<nodename>/services 

Replace <nodename> with your node’s name. This provides a list of all system services and their status.

d. Rebooting the Node

To reboot the Proxmox node:

pvenode reboot 

This is useful after performing updates that require a restart.

e. Shutdown the Node

To shut down the node:

pvenode shutdown 

This command safely shuts down the Proxmox server.

3. pmx: Proxmox CLI Utility

The pmx command is a lesser-known, but useful utility in Proxmox for interacting with various aspects of the system, often more script-oriented.

a. Sending Notifications

To send a test email notification:

pmx send testmessage 

This command is useful to ensure that the email notification system is working correctly.

b. Executing System Commands

To run system-level commands through pmx:

pmx exec -- <command> 

This allows you to execute system commands within the Proxmox environment.

c. Listing Available Commands

To list all available commands in pmx:

pmx help 

This provides a detailed list of all commands and their functions within the pmx utility.

4. pveconfig: Configuration Management

The pveconfig command allows you to manage and edit configuration files directly through the command line.

a. Editing Configuration Files

To edit a Proxmox configuration file:

pveconfig edit <file> 

Replace <file> with the path to the configuration file you want to edit.

b. Listing Configuration Files

To list all available configuration files:

pveconfig list 

This command provides a list of configuration files managed by Proxmox.

c. Validating Configuration

To validate the syntax of a configuration file:

pveconfig validate <file> 

This command checks the configuration file for syntax errors before applying changes.

5. pveam: Appliance Management

The pveam command is used to manage virtual appliance templates in Proxmox.

a. Listing Available Templates

To list all available appliance templates:

pveam available 

This command shows a list of templates that you can download and deploy.

b. Downloading a Template

To download a specific template:

pveam download <storage> <template> 

Replace <storage> with your storage ID and <template> with the template name.

c. Removing a Template

To remove a downloaded template:

pveam remove <storage> <template> 

This command deletes the specified template from your storage.

6. pve-firewall: Firewall Management

Proxmox has an integrated firewall system that can be managed via the pve-firewall command.

a. Listing Firewall Rules

To list all firewall rules for a specific node or VM:

pve-firewall status 

This command provides a status overview of the firewall rules applied.

b. Enabling/Disabling Firewall

To enable or disable the firewall for a node:

pve-firewall enable pve-firewall disable 

This toggles the firewall status for the node, offering an additional layer of security.

c. Adding a Firewall Rule

To add a firewall rule:

pve-firewall add <rule> 

You can specify rules like allowing or blocking certain ports or IP addresses.

d. Removing a Firewall Rule

To remove a specific firewall rule:

pve-firewall remove <rule> 

This command removes the specified rule from the firewall.

7. pveum: User Management

The pveum command manages users and their permissions within the Proxmox environment.

a. Adding a User

To add a new user:

pveum useradd <username>@<realm> --password <password> 

Replace <realm> with the authentication domain (pam, pve) and <password> with the user’s password.

b. Deleting a User

To remove a user:

pveum userdel <username>@<realm> 

This command permanently deletes the user from Proxmox.

c. Assigning Roles

To assign a role to a user:

pveum aclmod / -user <username>@<realm> -role <rolename> 

This command grants the user specific permissions, such as Admin, PVEAdmin, or ReadOnly.

d. Listing User Roles

To list all roles assigned to a user:

pveum rolelist 

This command shows all roles and their associated permissions.

8. pvebackup: Backup Management

While not a direct command, backup management in Proxmox involves several utilities, often tied with the pvebackup process.

a. Creating a Backup

To create a backup of a VM or container:

vzdump <CTID|VMID> --storage <storage> --mode <mode> 

This command creates a backup in snapshot, suspend, or stop mode.

b. Listing Backups

To list all available backups in a storage location:

vzdump --list <storage> 

This command provides an overview of all stored backups.

c. Restoring a Backup

To restore a backup:

vzdump --restore <backupfile> <newid> 

This command restores the backup to a new VM or container ID.

9. pve-zsync: ZFS Synchronization

The pve-zsync command is used for synchronizing ZFS snapshots between different nodes.

a. Synchronizing a ZFS Dataset

To sync a dataset between nodes:

pve-zsync sync --source <source> --dest <destination> 

Replace <source> and <destination> with the respective dataset locations.

b. Listing ZFS Synchronizations

To list all active ZFS sync tasks:

pve-zsync list 

This command shows all scheduled ZFS synchronizations.

c. Removing a ZFS Sync Task

To remove a specific ZFS sync task:

pve-zsync remove --source <source> 

This command deletes the synchronization task for the specified dataset.

10. pve-ha-manager: High Availability Management

The pve-ha-manager command is crucial for managing Proxmox’s high availability (HA) cluster services.

a. Listing HA Resources

To list all high availability resources:

pve-ha-manager status 

This command shows the status of HA resources, their assigned nodes, and current roles.

b. Adding an HA Resource

To add a new HA resource:

pve-ha-manager add <service> --group <groupname> 

This command creates a new HA-managed service, associating it with a specific group.

c. Removing an HA Resource

To remove an HA resource:

pve-ha-manager remove <service> 

This command stops HA management for the specified service.

d. Enabling/Disabling HA

To enable or disable HA for a service:

pve-ha-manager enable <service> pve-ha-manager disable <service> 

These commands toggle the HA status for the specified service.

11. pvefstab: Storage Mount Management

The pvefstab file is critical for managing storage mounts, particularly for LXC containers.

a. Editing pvefstab

To edit the pvefstab file manually:

nano /etc/pve/lxc/<CTID>.conf 

This file includes all mount points for a container, defining how and where storage is mounted.

b. Adding a Mount Point

To add a mount point:

echo "mp0: /source,mp=/destination" >> /etc/pve/lxc/<CTID>.conf 

This command appends a new mount point to the container’s configuration file.

c. Removing a Mount Point

To remove a mount point:

sed -i '/mp0/d' /etc/pve/lxc/<CTID>.conf 

This command removes the specified mount point from the configuration.

12. Managing Nodes

a. Checking Node Status

To check the status of a node, use the following command:

pvecm status 

This command provides information about the Proxmox cluster status, including quorum, node members, and their roles.

b. Viewing Node Information

To view detailed information about a node, use:

pveperf 

This command gives you performance statistics of the node, including CPU, memory, and I/O operations.

13. Managing Virtual Machines

a. Listing VMs

To list all virtual machines on a node:

qm list 

This command provides an overview of all VMs, showing their VMID, name, status, and memory usage.

b. Starting and Stopping VMs

To start a virtual machine:

qm start <VMID> 

Replace <VMID> with the ID of your VM. Similarly, to stop a VM:

qm stop <VMID> 

This command sends an ACPI shutdown request to the VM.

c. Rebooting VMs

To reboot a virtual machine:

qm reboot <VMID> 

This command restarts the VM, similar to pressing the restart button on a physical machine.

d. Destroying VMs

To permanently remove a virtual machine:

qm destroy <VMID> 

This command deletes the VM, along with its associated storage and configurations. Use this with caution.

e. Cloning VMs

To create a clone of an existing VM:

qm clone <VMID> <NEWVMID> --name <NEWNAME> 

Replace <VMID> with the original VM’s ID, <NEWVMID> with the new VM’s ID, and <NEWNAME> with the name for the new VM. Cloning is useful for creating identical environments for testing or deployment.

f. Migrating VMs

To migrate a VM to another node in the cluster:

qm migrate <VMID> <TARGETNODE> 

Replace <TARGETNODE> with the name of the target node. This command is used for load balancing or for maintenance purposes.

Conclusion

Understanding these advanced Proxmox commands allows you to fully leverage the power of Proxmox VE, particularly for managing containers, storage, and complex configurations. Whether you’re automating tasks, troubleshooting issues, or managing resources, these commands provide the tools necessary to maintain a robust and efficient virtualization environment.

Keep this guide as a reference to help you navigate the Proxmox command line, ensuring that you can confidently manage your Proxmox infrastructure.

Fedya Serafiev

Fedya Serafiev

Fedya Serafiev owns the website linuxcodelab.eu. He finds satisfaction in helping people solve even the most complex technical problems. His current goal is to write easy-to-follow articles so that such problems do not arise at all.

Thank you for reading the article! If you found the information useful, you can donate using the buttons below: