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.