Para este tipo de automatizaciones, se utiliza una llave RSA/DSA, y así evitar el tener que ingresar una contraseña por medio del teclado.
Script de ejemplo:
###############################################
#!/bin/bash
echo "Comienzo del Script..."
sftp -i id_server_dsa root@server.domain.com <
bye
EOF
###############################################
-i: Para indicar que la conexión es mediante una clave RSA/DSA para que no pida contraseña.
id_server_dsa: La clave encriptada generada en el servidor.
root@server.domain.com: Usuario y Servidor. <
Obviamente existen muchas cosas mas para hacer, y de varias maneras, este es un ejemplo mínimo para si estas buscando darte una idea de como hacerlo.
Adicionalmente aquí les dejo un Script real que hice para trabajar con un servidor SFTP del cual tenia que bajar los archivos de una carpeta (OUT), y luego borrarlos una vez descargados.
##########################################################
#Descarga de los archivos en la carpeta OUT.
date >> log/SFTP.log
echo "Comienza SFTP, se procede con la descarga" >> log/SFTP.log
sftp -oIdentityFile=id_server_dsa -oPort=21 root@server.domain.com <
cd OUT
get ./*
bye
EOF
RETVAL=$?
if [ $RETVAL -ne 0 ]
then
echo "Error en Download de los files" >> log/SFTP.log
exit 10
fi
date >> log/SFTP.log
echo "Finalizo SFTP, se procede con la descarga" >> log/SFTP.log
#Borrado de los archivos en el Servidor.
date >> log/SFTP.log
echo "Se eliminan los archivos en OUT" >> log/SFTP.log
sftp -oIdentityFile=id_server_dsa -oPort=21 root@server.domain.com <
cd OUT
rm ./*
bye
EOF
RETVAL=$?
if [ $RETVAL -ne 0 ]
then
echo "Error en borrado de los files descargados" >> log/SFTP.log
exit 20
fi
date >> log/SFTP.logecho "Se eliminaron los archivos en OUT" >> log/SFTP.log
##########################################################
Fuente original de la Imagen Aqui .
Saludos.
Tomado descaradamente de aca: http://desarrolloylinux.blogspot.com.ar/2014/08/linux-bash-automatizar-una-conexion.html
No hay comentarios:
Publicar un comentario