Posts Tagged ‘script’

Scripts con SSH

SSH significa Secure Shell, es decir, un intérprete de comandos seguro, y es a su vez un protocolo y un programa. Utiliza el puerto 22, y sirve para acceder a máquinas remotas a través de la red.

Leyendo información por la red me he enterado de que SSH también puede utilizarse para realizar scripts utilizando Bash (el intérprete de comandos de Unix). Nunca imaginé que podría servir para crear de forma sencilla algunos scripts utilizables en el día a día, o para ocasiones determinadas. Por ejemplo, puede resultar muy útil para un administrador de red a la hora de manejar y controlar un dominio. Incluso podemos usarlo en conjunto con Cron y ejecutar los scripts a una hora determinada.

Lo primero es instalar ssh; y  expect para facilitarnos las cosas.

# apt-get install ssh expect

Expect es una librería que contiene funciones que permite ejecutar lo que definamos al leer algo determinado por pantalla. Un ejemplo clarificador: Si el terminal nos muestra: “Ingrese contraseña:”, entonces podemos decirle que cuando se nos muestre ‘contraseña:’ escriba el valor que hemos definido en el script.

Vamos a crear dos casos de ejemplo, que creo que asi se entenderá mejor-

Creamos un archivo con el nombre que queramos, dónde queramos, y con el editor que más nos guste (nano, vi, emacs, …). Recordad crearlo como usuario normal.
Este script servirá para: Desactivar eth0 y activar ath0 (podría ser cualquier otra cosa, como una wifi0 otra eth, una subinterfaz, …).

#!/bin/bash
/usr/bin/expect <<EOD
spawn ssh root@localhost
expect “password:”
send “nuestrapassr”
expect “$”
send “ifdown eth0r”
expect “#”
send “ifup ath0r”
expect “#”
expect eof
EOD

El segundo script servirá para apagar remotamente un ordenador (necesitamos ser administradores de ese equipo):

#!/bin/bash
/usr/bin/expect <<EOD
spawn ssh root@192.168.X.X
expect “password:”
send “nuestrapassr”
expect “$”
send “haltr”
expect “#”
expect eof
EOD

Para ejecutar los scripts basta con hacer: sh scriptX.sh, o si tienen permisos de ejecución: ./scriptX.sh. Y para hacer la labor más sencilla, podemos crear un lanzador para que se ejecute con un simple click de ratón.
Estos scripts pueden ser utilizados remotamente, lo cual es una suerte porque facilita mucho la labor de administración :)

Gracias a la labor de investigación de Khirr

2 Comentarios »

Creando comandos en Linux

Puede ser que alguna vez deseéis crear un comando que esté accesible desde cualquier lugar de vuestra máquina. Estos comandos no serán otra cosa que scripts en bash.

Lo primero y más importante es crear el script. Una vez lo tengamos creado, lo que resta es bastante sencillo:

En este caso, vamos a imaginar que hemos llamado a nuestro script: ’script.txt; y el nombre que queremos que tenga que será: ‘piedra’. Lo más recomendable es dar un nombre que tenga relación con la función del script, obviamente.
Ahora tan sólo hay que mover el script a /usr/local/bin/:

# mv script.txt /usr/local/bin/piedra

A continuación habrá que darle permisos de ejecución al script:

# chmod -x nuestro_script /usr/local/bin/piedra

¡Y ya está! Ahora podremos utilizar nuestro script en cualquier momento =D

Sin comentarios »