command-line - example - ftp upload file command line linux
Tratando de encontrar una manera simple de cargar solo los archivos modificados a través de FTP (9)
Necesito encontrar una forma de subir archivos a mi servidor a través de FTP. Pero solo los que han sido modificados. ¿Hay una manera simple de hacer eso? Se prefiere la secuencia de comandos cliente o script ftp. Gracias, Jonas.
¿Has considerado usar el bit de archivo en el archivo?
(Esperando el comentario sobre la pregunta principal a ser respondida antes de expandirse)
La estrategia sería:
- Encuentre los archivos modificados utilizando fechas, horas, bits de archivo o hashes (según el sistema operativo)
- Usando esta lista, genere un script FTP PUTting those files
- Ejecute el script FTP.
Jonas,
¿Con qué frecuencia pueden cambiar los archivos?
Si cambian en un marco de tiempo predecible, puede considerar usar los atributos de fecha modificada y otros en el archivo.
La forma más confiable sería hacer md5 hashes de todos los archivos locales que le interesan y almacenarlos en un archivo. Entonces el archivo contendrá una lista de nombres de archivos y sus hash md5. Almacene ese archivo en su servidor ftp. Cuando desee actualizar los archivos en su servidor ftp, descargue el archivo que contiene la lista, compárelo con todos sus archivos locales y cargue los archivos que han cambiado (o que son nuevos). De esta forma, no tiene que preocuparse por los bits del archivo, la fecha de modificación o el tamaño de los archivos, cuyo uso nunca puede ser 100% confiable.
El uso de tamaños de archivo no es confiable por la razón obvia: un archivo podría cambiar pero tener el mismo tamaño. No soy partidario de utilizar el bit de archivo o la fecha de modificación porque cualquiera de estos podría confundirse si realiza una copia de seguridad o restaura su directorio local con otro programa de respaldo.
Sé que este es un hilo viejo, pero mientras buscaba la misma solución, encontré este enlace que puede ser bastante útil: Script FTP
Al usar git-ftp es relativamente fácil. Pero funciona solo si su computadora es la única que modifica la carpeta en el servidor ftp ...
Escuché que rsync también funciona, pero no estoy seguro de eso, nunca usé rsync ... Y no es ftp ...
git-ftp funciona muy bien:
apt-get install git-ftp
en la carpeta de la aplicación:
git config git.ftp.xxxx.url ftpservice.server.com/root/dir/for/ftp
git config git.ftp.xxxx.user myUsername
git config git.ftp.xxxx.password myPassword
siguiendo solo si el destino está actualizado por otro cliente ftp (cambia ftpservice.server.com/root/dir/for/ftp/git-ftp.log a commit actual)
git ftp catchup --scope xxxx
// fuentes de edición //
git commit -m "new version"
git ftp push --scope xxxx
y puedes ver lo que sucede:
git ftp show --scope xxxx
git ftp log --scope xxxx
Netbeans tiene un buen ftp. admite carga selectiva, descarga
¿Realmente insistes en ftp
, o puedes usar rsync
lugar?
Si se requiere ftp, la idea de mhenry1384 es más o menos lo que rsync
hace (bueno, la mitad de esto de todos modos, rsync
también mira los tiempos de modificación para archivos que difieren ...).