script shell rsync com entrada

1

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

i.e. - ./deploy /html/ ou ./deploy /html/kuky.txt

o script aguardará a entrada e, em seguida, executará o script rsync por favor ajude.

    
por edotan 20.11.2011 / 18:46

2 respostas

4

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, ligue     bash sender.sh da linha de comando.

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

    
por 20.11.2011 / 18:57
0

A resposta da lata 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 recebe os argumentos da all CLI que lhe são atribuídos como diretórios / arquivos de origem e os envia para o servidor.

    
por 21.11.2011 / 02:39