script de shell rsync con entrada

script de shell rsync con entrada

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.

información relacionada