===== Exemplos do comando virsh =====
==== Domain Management ====
* **Listar todas as máquinas virtuais (domínios):**
- virsh list --all
- Lista todas as máquinas virtuais, incluindo as que estão ativas e inativas.
* **Iniciar uma máquina virtual:**
- virsh start nome_da_vm
- Inicia a máquina virtual `nome_da_vm`.
* **Desligar uma máquina virtual:**
- virsh shutdown nome_da_vm
- Envia um sinal de desligamento para a máquina virtual `nome_da_vm`.
* **Forçar o desligamento de uma VM:**
- virsh destroy nome_da_vm
- Força o desligamento imediato da máquina virtual `nome_da_vm`.
* **Reiniciar uma máquina virtual:**
- virsh reboot nome_da_vm
- Reinicia a máquina virtual `nome_da_vm`.
* **Suspender uma máquina virtual:**
- virsh suspend nome_da_vm
- Suspende a execução da máquina virtual `nome_da_vm` (congela o estado).
* **Retomar uma máquina virtual suspensa:**
- virsh resume nome_da_vm
- Retoma a execução de uma VM que estava suspensa.
* **Definir uma VM para iniciar automaticamente no boot do host:**
- virsh autostart nome_da_vm
- Configura a VM `nome_da_vm` para iniciar automaticamente quando o host é reiniciado.
* **Remover a configuração de autostart de uma VM:**
- virsh autostart --disable nome_da_vm
- Desativa o autostart da VM `nome_da_vm`.
* **Excluir uma máquina virtual:**
- virsh undefine nome_da_vm
- Remove a configuração da máquina virtual do hypervisor, mas não afeta os volumes de disco.
==== Domain Monitoring ====
* **Exibir informações detalhadas de uma máquina virtual:**
- virsh dominfo nome_da_vm
- Mostra detalhes sobre a máquina virtual, como UUID, memória, CPU e estado.
* **Exibir a utilização de recursos de CPU por uma VM:**
- virsh cpu-stats nome_da_vm
- Exibe estatísticas de uso de CPU para a máquina virtual `nome_da_vm`.
* **Monitorar o uso de memória de uma VM:**
- virsh dommemstat nome_da_vm
- Exibe estatísticas detalhadas sobre o uso de memória da VM `nome_da_vm`.
* **Exibir o log de console de uma VM:**
- virsh console nome_da_vm
- Conecta ao console da VM para visualizar logs e interagir diretamente com a máquina.
* **Monitorar o estado de execução de uma VM em tempo real:**
- virsh domstate nome_da_vm --monitor
- Monitora o estado de execução da máquina virtual em tempo real.
==== Host and Hypervisor ====
* **Verificar o estado do hypervisor:**
- virsh nodeinfo
- Exibe informações sobre o host/hypervisor, como número de CPUs, arquitetura, e memória disponível.
* **Listar os recursos disponíveis do hypervisor:**
- virsh capabilities
- Mostra as capacidades do hypervisor, incluindo suporte a várias arquiteturas de virtualização.
* **Exibir o tempo de atividade do host:**
- virsh uptime
- Exibe o tempo de atividade (uptime) do sistema host que executa o hypervisor.
* **Exibir o log global de eventos do hypervisor:**
- virsh event --all
- Monitora os eventos globais do hypervisor, incluindo inicializações e encerramentos de VMs.
* **Migrar uma VM para outro host:**
- virsh migrate nome_da_vm qemu+ssh://outro_host/system
- Migra a máquina virtual `nome_da_vm` para outro host de virtualização.
==== Checkpoint ====
* **Criar um checkpoint de uma máquina virtual:**
- virsh checkpoint-create-as nome_da_vm nome_do_checkpoint
- Cria um checkpoint da VM `nome_da_vm` chamado `nome_do_checkpoint`.
* **Listar todos os checkpoints de uma máquina virtual:**
- virsh checkpoint-list nome_da_vm
- Lista todos os checkpoints criados para a VM `nome_da_vm`.
* **Excluir um checkpoint de uma VM:**
- virsh checkpoint-delete nome_da_vm nome_do_checkpoint
- Remove o checkpoint `nome_do_checkpoint` da VM `nome_da_vm`.
* **Restaurar uma VM para um checkpoint específico:**
- virsh checkpoint-revert nome_da_vm nome_do_checkpoint
- Restaura a VM `nome_da_vm` ao estado do checkpoint `nome_do_checkpoint`.
* **Criar um checkpoint sem parar a VM (live checkpoint):**
- virsh checkpoint-create-as nome_da_vm nome_do_checkpoint --live
- Cria um checkpoint ao vivo, sem parar a execução da VM.
==== Interface ====
* **Listar todas as interfaces de rede disponíveis no host:**
- virsh iface-list
- Lista as interfaces de rede disponíveis e o status de cada uma.
* **Ativar uma interface de rede:**
- virsh iface-start nome_da_interface
- Ativa a interface de rede `nome_da_interface`.
* **Desativar uma interface de rede:**
- virsh iface-destroy nome_da_interface
- Desativa a interface de rede `nome_da_interface`.
* **Definir uma interface de rede para iniciar automaticamente no boot:**
- virsh iface-autostart nome_da_interface
- Configura a interface `nome_da_interface` para iniciar automaticamente no boot.
* **Remover uma interface de rede:**
- virsh iface-undefine nome_da_interface
- Remove a configuração da interface de rede `nome_da_interface`.
==== Network Filter ====
* **Listar todos os filtros de rede disponíveis:**
- virsh nwfilter-list
- Exibe uma lista de filtros de rede disponíveis no hypervisor.
* **Aplicar um filtro de rede a uma VM:**
- virsh attach-interface nome_da_vm --type network --source default --filterref nome_do_filtro
- Aplica o filtro `nome_do_filtro` à interface de rede da VM `nome_da_vm`.
* **Criar um novo filtro de rede a partir de um arquivo XML:**
- virsh nwfilter-define filtro.xml
- Cria um filtro de rede com base na definição no arquivo XML `filtro.xml`.
* **Remover um filtro de rede:**
- virsh nwfilter-undefine nome_do_filtro
- Remove o filtro de rede chamado `nome_do_filtro`.
==== Networking ====
* **Listar todas as redes virtuais:**
- virsh net-list --all
- Lista todas as redes virtuais, incluindo as que estão ativas e inativas.
* **Criar uma rede virtual a partir de um arquivo XML:**
- virsh net-define rede.xml
- Cria uma rede virtual baseada nas definições do arquivo XML `rede.xml`.
* **Iniciar uma rede virtual:**
- virsh net-start nome_da_rede
- Inicia a rede virtual `nome_da_rede`.
* **Desativar uma rede virtual:**
- virsh net-destroy nome_da_rede
- Desativa a rede virtual `nome_da_rede`.
* **Definir uma rede para iniciar automaticamente no boot:**
- virsh net-autostart nome_da_rede
- Configura a rede `nome_da_rede` para iniciar automaticamente no boot.
==== Node Device ====
* **Listar todos os dispositivos de hardware detectados no host:**
- virsh nodedev-list
- Exibe uma lista de dispositivos de hardware (PCI, USB, etc.) disponíveis no host.
* **Exibir informações detalhadas de um dispositivo de hardware:**
- virsh nodedev-dumpxml nome_do_dispositivo
- Exibe as informações detalhadas do dispositivo `nome_do_dispositivo` em formato XML.
* **Desativar um dispositivo de hardware:**
- virsh nodedev-detach nome_do_dispositivo
- Desativa o dispositivo de hardware `nome_do_dispositivo`.
* **Reativar um dispositivo de hardware:**
- virsh nodedev-reattach nome_do_dispositivo
- Reativa o dispositivo de hardware `nome_do_dispositivo`.
* **Remover a definição de um dispositivo de hardware:**
- virsh nodedev-undefine nome_do_dispositivo
- Remove a definição do dispositivo de hardware `nome_do_dispositivo`.
==== Secret ====
* **Listar todos os segredos gerenciados pelo hypervisor:**
- virsh secret-list
- Exibe uma lista de todos os segredos armazenados no hypervisor.
* **Criar um novo segredo a partir de um arquivo XML:**
- virsh secret-define secret.xml
- Cria um segredo (chave) usando a definição do arquivo XML `secret.xml`.
* **Remover um segredo:**
- virsh secret-undefine uuid_do_segredo
- Remove o segredo identificado pelo `uuid_do_segredo`.
* **Definir o valor de um segredo:**
- virsh secret-set-value uuid_do_segredo --base64 novo_valor
- Define o valor do segredo identificado pelo `uuid_do_segredo` em base64.
* **Exibir informações detalhadas de um segredo:**
- virsh secret-dumpxml uuid_do_segredo
- Exibe as informações de um segredo específico em formato XML.
==== Snapshot ====
* **Criar um snapshot de uma VM:**
- virsh snapshot-create-as nome_da_vm nome_do_snapshot
- Cria um snapshot da máquina virtual `nome_da_vm` com o nome `nome_do_snapshot`.
* **Listar todos os snapshots de uma VM:**
- virsh snapshot-list nome_da_vm
- Exibe uma lista de todos os snapshots criados para a VM `nome_da_vm`.
* **Excluir um snapshot de uma VM:**
- virsh snapshot-delete nome_da_vm nome_do_snapshot
- Exclui o snapshot `nome_do_snapshot` da máquina virtual `nome_da_vm`.
* **Restaurar uma VM a partir de um snapshot:**
- virsh snapshot-revert nome_da_vm nome_do_snapshot
- Restaura a VM `nome_da_vm` ao estado salvo no snapshot `nome_do_snapshot`.
* **Exibir detalhes de um snapshot em formato XML:**
- virsh snapshot-dumpxml nome_da_vm nome_do_snapshot
- Exibe os detalhes do snapshot `nome_do_snapshot` da VM `nome_da_vm` em formato XML.
==== Storage Pool ====
* **Listar todos os pools de armazenamento disponíveis:**
- virsh pool-list --all
- Exibe uma lista de pools de armazenamento, incluindo os ativos e inativos.
* **Criar um pool de armazenamento a partir de um arquivo XML:**
- virsh pool-define pool.xml
- Define um novo pool de armazenamento usando o arquivo `pool.xml`.
* **Iniciar um pool de armazenamento:**
- virsh pool-start nome_do_pool
- Inicia o pool de armazenamento `nome_do_pool`.
* **Desativar um pool de armazenamento:**
- virsh pool-destroy nome_do_pool
- Desativa o pool de armazenamento `nome_do_pool`.
* **Exibir informações detalhadas de um pool de armazenamento:**
- virsh pool-info nome_do_pool
- Mostra informações detalhadas do pool de armazenamento `nome_do_pool`.
==== Storage Volume ====
* **Listar todos os volumes de armazenamento de um pool:**
- virsh vol-list nome_do_pool
- Exibe uma lista de todos os volumes no pool de armazenamento `nome_do_pool`.
* **Criar um volume de armazenamento em um pool:**
- virsh vol-create-as nome_do_pool nome_do_volume 10G
- Cria um volume de armazenamento de `10G` no pool `nome_do_pool`.
* **Excluir um volume de armazenamento:**
- virsh vol-delete nome_do_volume --pool nome_do_pool
- Exclui o volume de armazenamento `nome_do_volume` do pool `nome_do_pool`.
* **Exibir informações detalhadas de um volume de armazenamento:**
- virsh vol-info nome_do_volume --pool nome_do_pool
- Mostra detalhes sobre o volume de armazenamento `nome_do_volume` no pool `nome_do_pool`.
* **Redimensionar um volume de armazenamento:**
- virsh vol-resize nome_do_volume 20G --pool nome_do_pool
- Redimensiona o volume de armazenamento `nome_do_volume` para `20G` no pool `nome_do_pool`.