rsync+crond定时备份(shell)

服务端操作

#!/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

猜你喜欢

转载自blog.csdn.net/xiaowoniuwzx/article/details/105913234