环境
Linux:CentOs7.5
rsync: 3.1.2
rsync安装
一般安装系统时会自带rsync,可通过如下命令查看已经安装的版本信息
rsync --version
如果系统未安装,可通过如下方式安装
yum安装【建议】
使用root用户执行yum安装
yum install -y rsync
安装完毕后配置文件路径:/etc/rsyncd.conf
基于源码的安装
源码安装需要进行编译等操作,需要有gcc环境
- 下载源码
源码下载地址:https://download.samba.org/pub/rsync/src/
3.1.2下载地址:https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
- 编译及安装
tar -xvf tar -xvf rsync-3.1.2.tar.gz
cd rsync-3.1.2
./configure --prefix=/usr/local/rsync
make && make install
完成安装后可通过设置/usr/local/rsync/rsyncd.conf (需要手动创建)进行配置
基于rsync的同步脚本
以下脚本基于ssh协议传输
注意-e参数可以指定ssh的参数信息
#!/bin/bash
#判断参数
if [ $# -lt 1 ]
then
echo 请传入要同步的文件
exit;
fi
#要同步的目标服务器清单
for host in 192.168.1.2 192.168.1.3 192.168.1.4
do
echo ==================== $host ====================
#向下遍历所有目录,依次发送
for file in $@
do
#获取父目录,用于创建不存在的目录
pdir=$(cd -P $(dirname $file); pwd)
#获取当前文件的名称
fname=$(basename $file)
#创建目录,如果这一步里对应的服务器没有进行免密设置,则需要输入密码
ssh -p 50022 $host "mkdir -p $pdir"
#执行同步,如果这一步里对应的服务器没有进行免密设置,则需要输入密码
echo "rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdir"
rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdir
done
done
配置说明:
通过输出PATH的路径,将如上脚本放置到PATH中任意目录下,赋予执行权限即可在任意位置执行该脚本
如: ~/bin 当前用户的bin目录(没有可以手动创建)