这更像是一个理论问题,但是我要说我有一个主Rsync脚本,我想用它将多个远程主机备份到同一目的地。
我想让脚本读取一个文本文件,每行包含主机名,源,目的地,并按照以下方式行:
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
然后是一个简单的Rsync脚本,它将相应地弹出三个值,运行该Rsync作业,然后在循环脚本中转到下一个等。
除了如何将三个值作为脚本中的变量读取之外,我对所有事情都很满意。
非常感谢您的想法或建议!
干杯,丹
答案 0 :(得分:0)
while read hostname source destination; do
rsync -a "$hostname:$source" "$destination"
done < backup-list.txt
酷/棘手的部分是将整个循环视为复合命令并对其应用重定向。这导致每个read
调用从文件中读取一行,因为stdin在循环期间被重定向。