Si, ya se que FTP no es lo ideal para la transferencia de archivos en un ambiente hostil, pero estos scripts pueden ayudarte si estas dentro de una red de area local.
En ocasiones necesitamos copiar archivos de un servidor a otro para esto tenemos un pequeño script que puede ayudarnos con esa tarea
** Nota: Hay varias maneras de automatizar las transferencias del ftp, esta es solo una manera de hacerlo, si prefieres utilizar otra o comentar sobre ella, hazlo
1. Crear un archivo llamado .netrc en tu $HOME
con esta estructura:machine ip_addres_or_remote_host login user password passwd
por ejemplo:
machine localhost login sismo password mypassword
** puedes agregar múltiples entradas, una por host
** los permisos en el archivo deben ser ilegibles para todos excepto el dueño, puedes hacerlo con chmod 600 .netrc
2. Crear un archivo que contenga las instrucciones del ftp que deseas realizar
por ejemplo:
ASCII
cd /cualquier_path/
mput *.txt
mput *.dbf
bye
** en este caso guardé mi archivo como instructions.txt
3. Crear un archivo que invoque el ftp y pasar el archivo con las instrucciones del ftp como parámetro
por ejemplo:
echo “comienza transferencia del archivo…”
ftp - i localhost < instructions.txt
echo “listo...”
** en este caso guardé este archivo como automate.sh
se cambian los permisos del .sh para poder ejecutarlo
chmod u+x automate.sh
y finalmente lo corro con
./automate.sh
si tienes archivos pesados puedes enviarlos a background con el nohup
Por ejemplo:
nohup /export/home/sismo/automate.sh &
si te gusta o disgusta deja comentario
August 29th, 2007 at 3:24 pm
Ya postea algo nuevo!!!! jajajaja :p saludos!!!
August 29th, 2007 at 3:50 pm
jajaja, haber si en esta sema, me aviento algo de oracle
April 2nd, 2008 at 9:27 am
muy bien me ha venido tu manual, sí señor
June 23rd, 2008 at 3:16 pm
Y en que momentos llamas al archivo .netrc?
July 2nd, 2008 at 9:11 am
Arlette:
Cuando invocas el comando FTP, lo primero que hace es buscar ese archivo (.netrc) si no lo tienes te pide usuario y password.
Saludos
September 24th, 2008 at 8:36 am
Excelente, una forma de automatizar la transferencia de archivos entre servidores UNIX.
September 25th, 2008 at 12:18 pm
Saludos Sismo,
Segui tus consejos en lo referente a la automatización de esta forma de transferencia, se ejecuta bien al llamarlo desde la linea de comandos $
$sh ftpautomata.sh
La salida que muestra es:
Negociando con el anfitrion…..
AUTH not understood
AUTH not understood
KERBEROS_V4 rejected as an authentication type
Negociacion finalizada..
y es correcto transfiere el archivo.
Ahora bien, el ejercicio consiste en transferir cada 1 hora este mismo archivo.
Coloque el siguiente shell en el crontab del Linux:
1er intento –> Con nombre del usuario que ejecuta y sh
—————-
00 * * * * scati sh /home/scati/ftpautomata.sh infalsei >> /home/scati/e4
2do intento —> Solo con el usuario
—————–
00 * * * * scati ../home/scati/ftpautomata.sh infalsei >> /home/scati/e4
3er intento Solititooo.
—————–
00 * * * * ../home/scati/ftpautomata.sh infalsei >> /home/scati/e4
Todos generan salida siguiente:
Negociando con el anfitrion…..
Name (141.146.168.51:scati): Login incorrect.
Negociacion finalizada..
Pregunta:
¿A que se debe el Login incorrect, si por la linea de comando no existe el problema y solo se presenta usando el crontab ?.
September 29th, 2008 at 2:58 pm
Que tal Frank:
Si el archivo ftpautomata.sh ya tiene permisos de ejecucion asi debería funcionar
00 * * * * /home/scati/ftpautomata.sh infalsei >> /home/scati/e4
ahora el dato infalsei es un texto que pasas como parametró?
saludos,