ssh: Execução de comandos em servidores remotos
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 10 de julho de 2014
O uso mais frequente do comando ssh é o estabelecimento de conexões em servidores remotos. Entretanto, em determinadas ocasiões, precisamos apenas obter uma informação do servidor remoto, como por exemplo, a taxa de uso das partições, carga do sistemas, etc. Não é preciso fazer o login no servidor remoto, emitir o comando e em seguida sair. Basta invocar o comando ssh, seguido do endereço do servidor, e no final coloque o comando que deseja executar no servidor remoto.
Por exemplo, para obter a taxa de uso das partições de um sistema:
# ssh www.acme.com df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 198161652 155341196 32754076 83% /
udev 10240 0 10240 0% /dev
tmpfs 406284 180 406104 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 2489460 0 2489460 0% /run/shm
Desta forma, podemos obter as informações de múltiplos servidores e, por exemplo, emitir alertas para os administradores quando a taxa de uso de determinada partição exceder a 90%.
Se quisermos usar o pipe no servidor remoto, precisamos delimitar todo o comando por aspas.
Por exemplo, o comando:
$ ssh www.acme.com 'ps aux | grep firefox'
Ao fazer desta forma, o comando ps aux | grep firefox
é inteiramente
executado no servidor remoto.
Podemos assim fazer o monitoramento do estado do servidor (carga de cpu, taxa de uso de partições, processos em execução, etc) bem como iniciar a execução de scripts quando determinadas condições se verificarem.