Esto hace lo mismo que la respuesta de Peter, pero le da al usuario la opción de qué archivo remoto desea y dónde quiere guardarlo (además de realizar el rsync a través de ssh). Reemplace el USUARIO y el ANFITRIÓN con su nombre de usuario y host respectivamente.
#! / bin / bash
echo -e "Ingrese la ruta completa del archivo (escapado):"
ruta de lectura -r
echo "Ruta: $ ruta"
echo -e "Ingrese el destino:"
leer -r dst
echo "Destino: $ dst"
mientras [1]
hacer
rsync --progress --partial --append -vz -e ssh "USUARIO @ HOST: $ ruta" $ dst
si ["$?" = "0"]; entonces
echo "rsync completado normalmente"
salida
más
echo "rsync failure. Reintentando en un minuto ..."
dormir 60
fi
hecho
Las opciones de rsync utilizadas aquí permiten las estadísticas de progreso durante la transferencia, el almacenamiento de archivos parciales en caso de falla inesperada y la capacidad de agregar archivos parcialmente completados al reanudar. La opción -v aumenta la verbosidad, la opción -z permite la compresión (buena para una conexión lenta, pero requiere más potencia de CPU en ambos extremos), y la opción -e nos permite realizar esta transferencia a través de ssh (el cifrado siempre es bueno).
Nota: Use esto solo si tiene habilitado el inicio de sesión de clave pública con su ssh; de lo contrario, le pedirá una contraseña cuando se reinicie (eliminando todas las funciones del script).
while ./run_script; do echo "Retrying..."; done; echo "Done."
Asegúrate de querun_script
regrese0
el éxito