2010-11-06 21 views
9

Ok, así que sé cómo hacer esto localmente con un comando find then cp, pero no sé cómo hacer lo mismo de forma remota con scp.Script Bash para scp el archivo más nuevo en un directorio en un servidor remoto

Así que saber esto:

scp -vp [email protected]:/target/location/ /destination/dir/. 

Ese directorio de destino va a estar lleno de copias de seguridad de bases de datos, ¿cómo puedo saber que para encontrar la última copia de seguridad, y que localmente SCP?

Respuesta

9
remote_dir=/what/ever 
dst=remote-system.host.name.com 
scp $dst:`ssh $dst ls -1td $remote_dir/\* | head -1` /tmp/lastmod 
+1

Ok, eso fue todo! Gracias – beatbreaker

1

Escribir un script en el lado remoto que utiliza find para encontrarlo y luego cat para enviarlo a la salida estándar, a continuación, ejecute:

ssh [email protected] runscript.sh > localcopy 
+0

así que hago algo como esto de forma remota: ls -t | cabeza -1 | cat stdout luego lo ejecuto localmente con ssh me @ server runscript.sh> localcopy ... luego cat localcopy en una variable que se usa para el nombre del archivo? – beatbreaker

+0

No. El script se ve así: 'cat" $ (ls -t | head -n 1) "', y localcopy tendrá el contenido del archivo. –

+0

Humm parece que no es necesario para el gato, >> lleva la salida. entonces ls -t/var/backup | head -n 1 – beatbreaker

Cuestiones relacionadas