Me gustaría tener un script de shell rsync en el que el usuario ingresará la carpeta o archivo para sincronizarlo con otro servidor.
es decir - ./deploy /html/
o./deploy /html/kuky.txt
el script esperará la entrada y luego ejecutará el script rsync, por favor ayuda.
Respuesta1
Aquí tienes:
echo "Enter file or folder path"
read target
if [ ! -e "$target" ]
then
echo $target does not exist
else
echo Transferring $target
rsync -avzr $target [email protected]:/home/user/target_directory
fi
ponga esto en un archivo llamado sender.sh. Luego llame a bash sender.sh desde la línea de comando.
Le sugiero que busque opciones del comando rsync. Pueden cambiar mucho el comportamiento.
Respuesta2
La respuesta de Can requiere que un usuario ejecute el script y luego escriba la ruta manualmente; lo siguiente le permitirá usar la sintaxis que especificó en su OP:
#!/bin/bash
echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"
Este guión tomarátodoArgumentos CLI que se le proporcionan como directorios/archivos de origen y los envía al servidor.