服務端操作
#!/bin/bash
echo "此腳本採用rsync實現數據定時備份"
echo "正在檢測是否安裝rsync……"
#檢測是否安裝rsync
rpm -qa | grep rsync &> /dev/null
if [ $? -eq 0 ];then
echo " rsync 已安裝 即將自動修改配置文件"
else
echo " rsync 未安裝,即將自動安裝 rsync……"
yum -y install rsync &> /dev/null
rpm -qa | grep rsync &> /dev/null
if [ $? -eq 0 ];then
echo " rsync 安裝成功 即將自動修改配置文件……"
else
echo " rsync 安裝失敗,請檢查yum源是否可用……"
fi
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
chown -R rsync.rsync /data
if [ $? -eq 0 ];then
echo " 授權用戶及目錄創建成功,正在正在創建認證用戶密碼文件;修改文件權限…………"
else
echo " 授權用戶及目錄創建失敗,請嘗試手動創建……"
fi
#創建認證用戶密碼文件;修改文件權限
echo "rsync_backup:123456" >/etc/rsync.password && chmod 600 /etc/rsync.password
if [ $? -eq 0 ];then
echo " 創建修改成功,正在重啓……"
else
echo " 創建修改失敗,請手動檢查目錄是否存在……"
fi
#重啓rsync守護進程服務
systemctl enable rsyncd.service &>/dev/null #設置開機自啓
=systemctl restart rsyncd.service &> /dev/null #重啓服務
ps -ef | grep rsync &> /dev/null
if [ $? -eq 0 ];then
echo " 重啓成功,腳本執行結束……"
else
echo " 重啓失敗"
fi
客戶端操作
#/bin/bash
#創建認證用戶密碼文件;修改文件權限
echo "123456">/etc/rsync.password
chmod 600 /etc/rsync.password
##輸入備份文件(必須存在才能實現備份)
read -ep '請輸入要備份的文件:' a
#推送備份文件
rsync -avz $a [email protected]::backup --password-file=/etc/rsync.password
#拉取備份文件
rsync -avz [email protected]::backup --password-file=/etc/rsync.password /tmp