22 sept 2011

Linux - Ejecutar comandos remotos con ssh


El comando ssh es un programa increíble. Se puede usar para abrir sesiones entre servidores o bien se puede usar para ejecutar comandos en un sistema remoto.

Un ejemplo sencillo sería para conocer el uso del disco duro de un servidor:

[angel@angelcm ~]$ ssh user@server ' /bin/df -h'
user@server's password: 
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root
                      2.0G  410M  1.5G  22% /
/dev/mapper/vg_root-lv_tmp
                      2.0G   70M  1.8G   4% /tmp
/dev/mapper/vg_root-lv_var
                      2.0G  378M  1.5G  21% /var
/dev/mapper/vg_root-lv_data01
                      6.7G  982M  5.4G  16% /data01
/dev/mapper/vg_data-lv_data02
                      247G   15G  219G   7% /data02
/dev/mapper/vg_root-lv_usr
                      3.0G  1.5G  1.3G  55% /usr
/dev/sda1             122M   13M  103M  11% /boot
tmpfs                 3.9G     0  3.9G   0% /dev/shm
[angel@angelcm ~]$ 

Esto es muy bueno, pero se vuelve más útil cuando "automatizamos" mediante el intercambio de llaves SSH, esto lo pueden aprender en otro post:

Mientras tanto, podemos ejecutar algunos otros comandos. Por ejemplo, para contar el número de procesos de apache que están corriendo en el servidor web. Todo lo que necesitamos hacer es escribir el comando entre comillas. El siguiente comando se conecta a un servidor web, luego lista todos los procesos ps -ef, después busca y cuenta las coincidencias con apache grep -c apach[e] :

[angel@angelcm ~]$ ssh user@server 'ps -ef | grep -c apach[e]'
34
[angel@angelcm ~]$

El resultado es 34 procesos de apache corriendo en el servidor.

También podemos mostrar algunas estádisticas sobre el uso de CPU del servidor:

[angel@angelcm ~]$ ssh user@server ' top -b -n 1 | head -n 8'
top - 10:15:40 up 117 days,  6:24,  2 users,  load average: 1.43, 1.52, 1.64
Tasks: 165 total,   1 running, 164 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.2%us,  1.5%sy,  0.2%ni, 87.1%id,  0.1%wa,  0.3%hi,  0.7%si,  0.0%st
Mem:  16436872k total, 13376292k used,  3060580k free,   943720k buffers
Swap:  4194296k total,        0k used,  4194296k free,  5637000k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
16619 apache    15   0  350m  16m 5308 S 30.8  0.1   0:33.63 httpd              
[angel@angelcm ~]$

Para ver quien está loggeado en el servidor:

[angel@angelcm ~]$ ssh user@server 'who'
juanito   pts/0        2011-09-20 16:50 (10.177.65.41)
pepito    pts/1        2011-09-21 10:13 (10.177.65.209)
[angel@angelcm ~]$

Nuevamente, les recomiendo la lectura de los posts:

Listo, nos vemos en la siguiente entrada.

No hay comentarios:

Publicar un comentario