quarta-feira, 19 de junho de 2019

exit(n)

NAME
exit - Finaliza a aplicação 
SINOPSE
exit ?returnCode?
DESCRIÇÃO
Encerra o processo, retornando returnCode para o sistema como o status de saída. Se returnCode não for especificado, o valor padrão será 0.
EXEMPLO
Como os códigos de saída diferentes de zero são interpretados como erros pelo processo de chamadas, o comando exit é uma parte importante da sinalização de que algo fatal deu errado. Esse fragmento de código é útil em scripts para atuar como uma interceptação geral de problemas:
proc main {} { 
# ... coloque o código real aqui ...
 if {[catch {main} msg options]} {
       puts stderr "unexpected script error: $msg"
       if {[info exists env(DEBUG)]} {
            puts stderr "---- BEGIN TRACE ----"
            puts stderr "[dict get $options -errorinfo]
                      puts stderr "---- END TRACE ---"
                  }
 
 
 



Esse fragmento de código é útil em scripts para atuar como uma interceptação geral de problemas:
 
 

quinta-feira, 13 de junho de 2019

Comandos uteis para kvm (virsh)

Conectar uma console serial virtual para um convidado

entrar na vm guest e habilitar uma porta serial

# systemctl enable serial-getty@ttyS0

iniciar a serial

# systemctl start serial-getty@ttyS0

listar as maquinas virtuais convidadas

# virsh list

acessar a console do convidado

# virsh console 1 
ou 
# virsh console logixtst

após acessar teclar enter para o acesso

para sair , digitar exit e após digitar ctrl+]

Minhas considerações sobre essa console.... na minha opinião não serve de nada, pois a console na verdade é somente uma emulação, ele ate tentar emular um VT110, porem no lado do GUEST ele depende de um serviço de serial habilitado, que no meu entender não server para nada, pois ao rebotar uma maquina ele não corre as informações na tela como uma console mesmo ou ao iniciar um servidor ele também não mostra as informações na  tela, resumindo se precisar interagir com o boot da maquina, não conseguiremos , teremos que ir la no HOST e chamar a console real para interagir.

ainda acho mais vantagem nesse caso utilizar o SSH.

Forçar o desligamento de uma VM

# virsh destroy logixtst

Prove informações básicas sobre uma VM

# virsh dominfo logixtst

Mostra o estado de uma VM

# virsh domstate logixtst

Listar as VMs

# virsh list {--inactive | --all}

Pausar uma VM

# virsh suspend logixtst

Retomar a VM

# virsh resume logixtst

Descobrir o caminho da imagem do disco da VM

# virsh dumpxml logixtst | grep "source dev"

Criar uma VM através do arquivo de xml

# virsh dumpxml LogixTeste >  /etc/libvirt/qemu/ajm.xml

Editar o arquivo /etc/libvirt/qemu/ajm.xml e alterar a tag para o novo novo
exemplo:

LogixTeste para ajm

em seguida alterar a tag deixando-a em branco como no exemplo abaixo:

b4732438-0255-4390-9523-dc39dfb8348e (antes)

(depois)

após alteração executar o comando abaixo para criar o novo UUID da VM:

# virsh define ajm.xml

e finalmente criar a nova VM com o comando abaixo:

# virsh create ajm.xml


Backup maquina virtual KVM (kvm guest)

Desligar a VM, se tiver rodando

# virsh list

zeus:/kvm/LS # virsh list 
 Id    Nome                           Estado
----------------------------------------------------
 1     totvsLS                        executando
 3     HDR                            executando
 7     openFire                       executando

# virsh shutdown openFire

Backup da imagem do disco ( default: /var/lib/libvirt/images )

# cp -p /kvm/openFire /caminho_destino

Backup dos arquivos de configurações

# cp -p /etc/libvirt/qemu/openfire.xml /caminho_destino

Volte a VM no ar

# virsh start openFire