shell腳本實現--rsync守護進程模式部署

準備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端口,防火牆開啓時,需放行端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章