
Me pregunto si con una utilidad de línea de comando FTP, puede usar el get
comando FTP para obtener un archivo con una ruta absoluta, en lugar de tener que cd
ingresar en cada directorio sucesivo para obtener un archivo.
cuando escribo
ftp> get pub/sdc.tgz
O incluso esto (con una o dos barras antes de pub)
ftp> get /pub/sdc.tgz
Me dice que no encuentra el archivo:
local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory
Sin embargo, cuando en lugar de eso lo hago
ftp> cd pub
ftp> get sdc.tgz
Funciona totalmente bien.
¿Existe alguna sintaxis correcta en la línea de comando ftp para obtener un archivo con una ruta absoluta, o tengo que cd
hacerlo pub
primero para hacerlo?
(Para su información: lo que estoy tratando de hacer es usar un script PERL que se ejecuta diariamente y que guarda un archivo en un servidor FTP, luego un script posterior que 1. obtendrá el archivo, lo cual no me opongo a usar wget
para hacerlo. y 2. eliminar el archivo después de obtenerlo, lo cual debo hacer con FTP. Quiero que el segundo script elimine el archivo, de modo que en el futuro, si el primer script tiene problemas para guardar el archivo en el servidor FTP. el segundo script sabrá que hubo un error porque el archivo no está allí. También podría guardarlo con nombres diferentes, pero no quiero contaminar el servidor FTP con un montón de archivos de diferentes días).
Respuesta1
Es porque cuando usa Get de FTP y no especifica una ruta/nombre de archivo local, intenta usar la misma ruta/nombre que el archivo remoto.
Este error:
ftp: local: /pub/sdc.tgz: No such file or directory
Le dice que no puede encontrar el archivo en la máquina LOCAL. Entonces mi suposición sería que no tienes una carpeta "pub" en la raíz de tu disco local.
Sintaxis:conseguirarchivo remoto [archivo local]
Parámetro(s):
archivo remoto: especifica el archivo remoto que se va a copiar.
archivo local: especifica el nombre que se utilizará en la computadora local.Si no se especifica, el archivo recibe el nombre de archivo remoto.
Entonces prueba algo como:
ftp> get pub/sdc.tgz c:\temp\sdc.tgz
o quizás
ftp> get pub/sdc.tgz .\sdc.tgz
Para descargarlo a la carpeta actual.
Veraquípara más información sobreConseguiruso.
Pregunta SU relacionada:¿Puedo especificar un destino con el comando ftp get?
Respuesta2
Puede utilizar ncftpget
, que utiliza rutas absolutas, si puede instalarlo en su máquina cliente.
Además, si está utilizando Perl, puede echar un vistazo amódulo FTP.