使用 bash 脚本 rsync 多个 IP?

使用 bash 脚本 rsync 多个 IP?

我正在尝试使用 rsync 将远程文件与本地服务器同步。它工作得很好,但我想在多个远程服务器上执行此操作,以便每天进行同步。

sshpass -p "xyz" rsync -avz [email protected]:BrandStIN/ /home/lanein1/BrandStIN/
sshpass -p "xyz" rsync -avz [email protected]:MarySt/ /home/lanein1/MarySt/
sshpass -p "xyz" rsync -avz [email protected]:IWM/ /home/lanein1/IWM/

我有 10 个 IP 号码,每天需要 rsync 进行检查,如何使用 BASH 脚本来做到这一点。这样我就可以使用 cron 自动执行该任务。我只想要 BASH 脚本。

我在这里感到震惊。我把所有的 IP 地址都保存在一个文本文件中,但不知道如何使用它们的密码在 rsync 上调用该文件。

#!/bin/bash
# Program name: rsyncall.sh
date
cat /path/to/IP.txt |  while read output
do........

答案1

我在两台服务器上也遇到了类似的问题。为了尽可能减少对系统的压力,我nice使用ionice

#!/bin/bash
while IFS= read ip; do 
    /usr/bin/nice -n 19 \
    /usr/bin/ionice -c 3 \
    /usr/bin/rsync --delete --delete-excluded --password-file=/home/aboettger/.rsync_pwd  -av /home/aboettger/Music rsync://$ip/media;
done < host_names

为您量身定制

#!/bin/bash
while IFS= read ip; do 
    rsync --password-file=rsync_pwd_file -avz rsync://$ip/BrandStIN /home/lanein1/BrandStIN
    rsync --password-file=rsync_pwd_file -avz rsync://$ip/MarySt /home/lanein1/MarySt
    rsync --password-file=rsync_pwd_file -avz rsync://$ip/IWM /home/lanein1/IWM
done < host_names

内容host_names

% cat host_names
192.168.2.40
192.168.2.41

相关内容