Linux - Alimentar FTP mediante un fichero

 
Vista:

Alimentar FTP mediante un fichero

Publicado por Marisma (12 intervenciones) el 30/09/2005 17:13:20
Hola !
Necesito programar un tarea en Suse 9.0 para subir unos ficheros via ftp a un servidor. Para ello tengo los comandos FTP almacenados en un fichero de texto . Quería saber como cargo ese fichero al invocar a FTP

Mi fichero es ordenes.txt
----------------

open loquesea.com
user xxxx xxxx
put fichero
bye

He probado con lo unico que he encontrado en la red...pero no funciona :-(
Entonces ¿como se hacer esto ?
# ftp -n <ordenes.txt> ¡¡ No funciona !!

Saludos
Marisma
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Alimentar FTP mediante un fichero

Publicado por n0str0m0 (1503 intervenciones) el 30/09/2005 21:05:39
En estos momentos no tengo una máquina unix/linux delante, pero podrías darle un enfoque diferente y tratar de hacerlo con el comando scp.

man scp

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Alimentar FTP mediante un fichero

Publicado por xavi (47 intervenciones) el 01/10/2005 20:18:02
Para programarlo automaticamente, tienes que programarlo mediante expect (apt-get install expect), que es similar a la programación shell de linux, pero con la diferencia de que espera a que el sistema responda, ya que para utilizar el ftp tienes que esperar que te pregunte usuario y contraseña para continuar... te adjunto un pequeño ejemplo:
--------------------------------------------------------------------------
#!/usr/bin/expect -f

# Este script, tiene que recibir tres parametros
# 1- nombre del fichero
# 2- nombre del host
# 3- directorio donde subir los ficheros en el servidor

# Elimina los mensajes de respuesta de los comandos
log_user 0

#ejecuta el bash datos.sh pasandole como parametro usaurio
# el script datos.sh, segun el valor recibido, devuelve el usuario y password del ftp
spawn datos.sh usuario
#cogemos el valor y lo colocamos en la variable host_user
expect "*"
set host_user $expect_out(buffer)

#ejecuta el bash datos.sh pasandole como parametro password
spawn pxllocal password
#cogemos el valor y lo colocamos en la variable host_password
expect "*"
set host_password $expect_out(buffer)

#comprovamos que reciba un parametro (nombre del fichero a subir)
if $argc==0 {
#no han llegado los parametros del nombre del archivo a subir
send_user "Los parametros no son correctos...\n"
exit
}

set new_file [lindex $argv 0]
set ftp_host [lindex $argv 1]
set dir_host [lindex $argv 2]

#aumentamos el timeout a 30 segundos. Por defecto esta en 10.
set timeout 30

spawn ftp $ftp_host
expect "*Name*"
send -- "$host_user\r"
expect "Password:*"
send -- "$host_password\r"
expect "ftp>"
send -- "put $new_file $dir_host/$new_file\r"
expect "ftp>"
send -- "quit\r"
send "bye"
exit 0
--------------------------------------------------------------------------

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar