Skip to content

Ceci est une liste de commandes utiles pour KVM et QEMU.

Commandes génériques

Lister les VMs

virsh list --all

Démarrer une VM

virsh start <vm_name>

Redémarrer une VM

virsh reboot <vm_name>

Arrêter une VM

virsh shutdown <vm_name>

Détruire une VM

virsh undefine <vm_name> --remove-all-storage

Détruire proprement une VM

#Arrêt de la VM
virsh shutdown <vm_name>
#Attente de l'arrêt complet
virsh wait-for-shutdown <vm_name>
#Suppression de la configuration de la VM
virsh undefine <vm_name>

Commandes réseaux

Lister les réseaux

virsh net-list --all

Démarrer un réseau

virsh net-start <network_name>

Redémarrer un réseau

virsh net-reboot <network_name>

Arrêter un réseau

virsh net-shutdown <network_name>

Commandes storages

Lister les storages

virsh vol-list <storage_pool_name>

Créer un storage

virsh vol-create <storage_pool_name> <volume_name>

Supprimer un storage

virsh vol-delete <storage_pool_name> <volume_name>

Lister les pools de stockage

virsh pool-list --all

Créer un pool de stockage

virsh pool-create <storage_pool_name> <storage_pool_path>

Supprimer un pool de stockage

virsh pool-delete <storage_pool_name>

Trucs et astuces

Quelle machine utilise le plus de CPU ?

$ virsh list --state-running --name | while read vm; do
    cpu=$(virsh dominfo "$vm" | awk '/CPU time/{print $3}')
    echo "$cpu $vm"
  done | sort -rn | head -10  

Récupérer les IPs des VM lancés

for vm in $(virsh list --state-running --name); do
    echo "$vm: $(virsh domifaddr "$vm" | awk 'NR>2 && NF{print $4}')"
  done

Récuperer l'IP d'une VM

virsh domifaddr <vm_name> 2>/dev/null | awk 'NR>2 && NF{print $4}'

Pour ce connecter à distance sur un KVM

qemu+ssh://user@remote-server/system