这更像是一个理论问题,但假设我有一个主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作业,然后在循环脚本中转到下一个等。
除了如何将三个值读为脚本中的变量外,我都很好。
中的变量。最感谢您的想法或建议!
欢呼,丹
while read hostname source destination; do
rsync -a "$hostname:$source" "$destination"
done < backup-list.txt
很酷/棘手的部分是将整个循环视为复合命令,并将重定向应用于它。这会导致每个read
调用以读取文件的线路,因为stdin在循环的持续时间内重定向。