Script para conexión FTP

Hola a todos, necesitaría que me echárais un cable para algo que quiero hacer.

Tengo varias máquinas con un script hecho, que solicitan unos datos a la máquina y envían un correo a mi usuario con la información solicitada, pero claro, son 3 máquinas y es una monitorización cada poco tiempo para controlar el espacio en disco y alguna cosa más por lo que se me acumulan un montón de correos.

Lo que había pensado, es hacer otro script que me centralizase todo desde una sóla máquina, y he pensado en dos formas.

1.- Que cada máquina independientemente me envíe su archivo, ya generado con la información deseada, a la máquina que centralizará todo y esta lea cada archivo lo almacene en uno sólo, y lo envíe por mail. Sería quizá la más sencilla.

2.- Que la máquina que centraliza todo, se conecte a cada una de las máquinas, solicite la información y la vaya almacenando en un archivo que después enviará por mail.

Ej: Tengo 3 máquinas y la central: master, slave1, slave2, slave3
master -> conexión con slave1
solicitud de datos y almacenar en archivo y descargarlo a master
master -> conexión con slave2
solicitud de datos y almacenar en archivo y descargarlo a master
master -> conexión con slave3
solicitud de datos y almacenar en archivo y descargarlo a master

master -> enviar archivo generado al usuario indicado por mail

El único problema que tengo es que la conexión por ftp se tiene que hacer automáticamente y una vez conectado a la máquina deseada, ejecutar ciertos comandos, como el "who", el "df -k", etc, para solicitar la información que quiero, e ir guardando cada resultado del comando en un archivo, como explico en el ejemplo.
La historia es que no se como automatizar la conexión por ftp, es decir crear algún tipo de archivo donde estén los datos de conexión para cada máquina y que el script lo lea de tal forma que realice la conexión, solicite los datos (o descargue el archivo con los datos ya) y cierre la conexión.

He buscado por google y me salen conexiones por ftp entre windows y linux, mediante programas y un largo etc que no se ajusta a lo que quiero. Quiero que sea un script que automatice la conexión por ftp cuando se ejecuta.

No se si me he explicado correctamente, está todo controlado excepto la parte de automatizar la conexión.

Me podéis hechar una mano para hacer el scritp?

Un saludo.

Zokko
Hum... has mirado scp/ssh¿?
Hum... has mirado scp/ssh¿?


Supongo que te refieres para la conexión remota??

Si, lo he pensado, es lo que normalmente utilizo para conectarme remotamente a otras máquinas, pero he seguido investigando y por lo que he conseguido averiguar, necesito crear un archivo con la configuración que necesitaría el ftp, es decir, como un mini script que ejecute la línea de script principal al llamar al ftp y cargue los datos que hay en el miniscript (donde estarían el user, la pass, y los distintos comandos que se vayan a utilizar), pero aun no he conseguido que lo lea correctamente.

Seguiré probando, si alguien sabe como, sería de gran ayuda.

Un saludo.

Zokko


Edito:

He seguido trasteando y lo he conseguido. Por si sirve a alguien.

###############################################################
## Transfer Configuration
###############################################################

dest="servidorencuestion" # Destination FTP Server
username="usuarioconelqueteconectas" # Login Username
password="lodicholapass"

###############################################################
## Checks the configuration control Directories
###############################################################

cd /directorio/dondeesteelarchivoaenviar/

###############################################################
## Generate Commands to FTP
###############################################################
echo "user ${username} ${password}" > archivodeconf.cmd
echo "bin" >> archivodeconf.cmd #envio de datos en binario
echo "del ${file}" >> archivodeconf.cmd
echo "cd /local/backup/" >> archivodeconf.cmd
echo "put ${file} ${file}" >> archivodeconf.cmd
echo "quit" >> archivodeconf.cmd

###############################################################
## Perform FTP transfers
###############################################################

/usr/bin/ftp -i -n ${dest} < archivodeconf.cmd >/dev/null #carga la configuración del archivo y realiza los comandos pertinentes.

Tened una cosa en cuenta, que a mi me volvió loco. Di por hecho que el ftp de la máquina donde me quería conectar para enviar el archivo estaba abierto y operativo, pero no, podía conectarme desde esa máquina, pero no conectarme a la máquina.

Disfrutadlo.

Un saludo.
2 respuestas