Quiero copiar todos los archivos y carpetas de un host a otro. Los archivos en el host anterior se encuentran en / var / www / html y solo tengo acceso FTP a ese servidor, y no puedo TAR todos los archivos. La conexión regular al host anterior a través de FTP me lleva a la carpeta / home / admin.
Intenté ejecutar el siguiente comando desde mi nuevo servidor:
wget -r ftp://username:[email protected]
Pero todo lo que obtengo es un archivo index.html inventado.
¿Cuál es la sintaxis correcta para usar wget recursivamente a través de FTP?
Respuestas:
Prueba
-m
por--mirror
fuente
--ask-password
para evitar que se guarde la contraseñahistory
.wget -m ftp://username:[email protected]/mydir/
Tienes razón, solo necesitas un final * al final:
Para servidores compartidos, puede usar así:
Debido a que la mayoría de los servidores compartidos tienen ftp-username, algo así como username @ hostname, entonces, el primer comando wget no funciona y el segundo comando funciona bien.
fuente
-m
o-r -l inf
porque -r tiene una profundidad de recursión predeterminada de 5. Consulte gnu.org/software/wget/manual/…Además de wget, también puede usar lftp en modo script. El siguiente comando reflejará el contenido de un directorio FTP remoto dado en el directorio local dado, y se puede colocar en el trabajo cron:
Maneja automáticamente la recursión en directorios y permite especificar el directorio de inicio de la fuente remota desde donde descargar datos.
fuente
Puede usar 'curlftpfs: montar un host ftp como directorio local' y, una vez montado, puede usar herramientas de archivo normales como 'cp -r'.
fuente
curlftpfs
tiene grandes problemas de rendimiento en este momento a menos quelibcurl3-gnutls
Consulte el siguiente comando wget para descargar datos de FTP de forma recursiva.
-r
: Es para descarga recursiva.-np
: Es para ningún padre ascendente.-nH
: Es para deshabilitar la creación de un directorio con el mismo nombre que la URL, es decir, abc.xyz.com--cut-dirs
: Es para ignorar el número de directorios principales. El valor de esta opción será diferente para su comando.Puede verificar ejecutando el comando anterior.
fuente
Use -m en lugar de -r, debido a la profundidad de recursión.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
fuente
Debería intentarlo:
fuente
Utilizar:
y reflejará todos los archivos y carpetas.
fuente
Esa es la sintaxis correcta. No estoy seguro de por qué no está obteniendo los resultados esperados.
Como siempre, hay más de una forma de hacerlo. Prueba ncftp, en particular ncftpget
fuente
Puedo entender si está intentando volcar esto en cron o algo así, pero ¿por qué no simplemente ftp en el servidor con su cliente normal y mget *? Este podría ser un camino más rápido hacia el éxito.
fuente
Creo que esto funcionará en tu caso:
fuente
Encontré el alojamiento de Windows con el nombre de usuario como brinkster / username, por lo que wget arrojaría un error si usa la sintaxis:
Para superar esto, use
Tuve que enfrentar esto con Windows hosting @ brinkster.
fuente
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
hará el trabajo o puede agregar * en lugar de la entrada de nombre de archivo: hace que wget piense en el puerto que no es válido en su caso.fuente