script de shell rsync com entrada

script de shell rsync com entrada

Gostaria de ter um script de shell rsync em que o usuário insira a pasta ou arquivo para sincronizar com outro servidor.

ou seja - ./deploy /html/ou./deploy /html/kuky.txt

o script aguardará a entrada e então executará o script rsync, por favor ajude.

Responder1

Aqui você vai:

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

coloque isso em um arquivo chamado sender.sh. Em seguida, chame bash sender.sh na linha de comando.

Eu sugiro que você procure opções do comando rsync. Eles podem mudar muito o comportamento.

Responder2

A resposta de Can exige que um usuário execute o script e digite o caminho manualmente. O seguinte permitirá que você use a sintaxe especificada em seu OP:

#!/bin/bash

echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"

Este script levarátodosArgumentos CLI fornecidos a ele como diretórios/arquivos de origem e enviá-los ao servidor.

informação relacionada