varios todos servidores renombrar password para otro mover los entre directorio copiar comando archivos linux scp

todos - mover varios archivos en linux



Evite sobrescribir archivos al usar Scp (7)

Estaba copiando algunos archivos usando scp y no quiero sobrescribir los archivos ya presentes.

Si estaba usando el comando cp, creo que esto se puede hacer usando cp -n.

¿Existe una opción similar para scp? Revisé la documentación de SCP y parece que no existe tal opción.

¿Es rsync o sftp el camino a seguir para resolver este problema?

Información adicional:

Sistema operativo: Ubuntu 12.04


Acabo de encontrar un truco simple. Marque los archivos existentes como de solo lectura.


He usado rsync en el pasado para esto, pero me encontré tratando de tomar de un cuadro de Windows con CopSSH y no rsync :-( Lo siguiente funcionó muy bien para mí, utilizando pruebas de archivos para eliminar los archivos que se sobrescribirán, y generando varias solicitudes ''get'' a una instancia de sftp.

( echo ''cd work/ftp/'' ; ssh <user>@<machine> ''cd work/ftp/ && ls -1 ITEM_SALE_SUMMARY_V.*.dat.xz'' | while read line; do [[ -f "$line" ]] || echo get "$line"; done ) | sftp <user>@<machine>

¡Solo en caso de que otros necesiten una solución no rsync!


No lo probé, pero tal vez primero mountung a través de sshfs y luego usar cp hará el truco.


Solo para complementar las otras soluciones:

Para un archivo ascii / bin, puede hacerlo con:

cat source_file | ssh host "test ! -f target_file && cat > target_file"



rsync parece ser la solución a su problema. Aquí hay un ejemplo que obtuve de here :

rsync -avz foo:src/bar /data/tmp

La opción -a conservará los permisos, la estructura del directorio, la propiedad y los enlaces simbólicos. También puede especificar cualquiera de esas opciones individualmente.

-v y -z significa verboso y comprimir respectivamente. En realidad, no los necesita, aunque es bueno si está copiando archivos de gran tamaño.


rsync -avz --ignore-existing /source folder/* user@remoteserver:/dstfolder/

--ignore-existing no sobrescribirá los archivos en el servidor remoto o servidor de destino *.