準備A,B兩臺主機
1,在主機A上部署服務端
#!/bin/bash
rpm -qa|grep rsync &> /dev/null #查看是否存在rsync服務
if [ $? -eq 0 ];then
echo "rsync服務已存在,自動修改配置文件"
else
echo "正在安裝rsync服務......"
yum -y install rsync &> /dev/null
echo "rsync服務安裝完成,自動修改配置文件"
fi
cat>/etc/rsyncd.conf<<\EOF #編寫配置文件
#全局配置
uid = root
gid = root
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
##模塊配置
[backup]
path = /data
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
EOF
echo "" #相當於回車
mkdir -p /data #創建rsync備份目錄
useradd rsync -s /sbin/nologin -M #授權rsync用戶管理備份目錄
chown -R rsync.rsync /data/ #修改備份目錄權限
echo "rsync_backup:123456" >/etc/rsync.password #創建認證用戶密碼文件
chmod 600 /etc/rsync.password #修改文件權限
systemctl enable rsyncd.service &> /dev/null #添加開機自啓
systemctl restart rsyncd.service
ps -ef |grep rsync|grep 'daemon' &> /dev/null #判斷進程是否啓動
if [ $? -eq 0 ];then
echo "rsync服務已啓動!"
else
echo "rsync啓動失敗,請檢查配置!"
fi
echo "rsync服務部署完畢!"
2,在主機B上部署客戶端
#!/bin/bash
rpm -qa|grep rsync &> /dev/null #查看是否存在rsync服務
if [ $? -eq 0 ];then
echo "rsync服務已存在,自動創建密碼文件"
else
echo "正在安裝rsync服務......"
yum -y install rsync &> /dev/null
echo "rsync服務安裝完成,自動創建密碼文件"
fi
echo "123456">/etc/rsync.password #創建密碼文件,客戶端密碼文件中,只需要密碼即可
chmod 600 /etc/rsync.password #密碼文件的權限是600
while :
do
read -p "請輸入向服務端推送的文件:" file #定義輸入變量
rsync -avz $file rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password &> /dev/null #在客戶端向服務端推送文件
read -p "是否繼續推送文件(y/n)?" yes
if [ $yes -eq y ];then
continue
else
break
fi
done
客戶端在服務端拉取文件
#注意:rsync默認使用873端口,防火牆開啓時,需放行端口