Pergunta

This is more of a theoretical question, but let's say I have a master Rsync script that I'd like to use to backup multiple remote hosts to the same destination.

I'd like to have the script read a text file with each line containing hostname, source, destination, along the lines of this:

host-one.example.com /Volumes/data /Volumes/host-one-backup
host-two.example.com /Volumes/Users /Volumes/host-two-backup
host-three.example.com /Volume/apps /Volumes/host-three-backup

And then a simple Rsync script that will pop in each of the three values accordingly, run that Rsync job, then go to the next, etc., within a looping script.

I'm good with everything except how to read the three values as variables within a script.

Your ideas or suggestions are most appreciated!

Cheers, Dan

Foi útil?

Solução

while read hostname source destination; do
    rsync -a "$hostname:$source" "$destination"
done < backup-list.txt

The cool/tricky part is treating the whole loop as a compound command and applying a redirection to it. This causes each read call to read a line from the file since stdin is redirected for the duration of the loop.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top