rsync+crond实现定时备份
环境准备:
两台centos7
192.168.2.5 服务端
192.168.2.7 客户端
关闭防火墙和selinux
Systemctl stop firewalld
Setenforce 0
服务端:
1.安装
yum -y install rsync
2.修改配置文件:
vim /etc/rsyncd.conf
##全局配置
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 = 192.168.2.0/24 #准许访问rsync服务器的客户范围
#hosts deny = 0.0.0.0/32 #禁止访问rsync服务器的客户范围
auth users = rsync_backup #不存在的用户;只用于认证
secrets file = /etc/rsync.password #设置进行连接认证的密匙文件
3.创建rsync备份目录/授权rsync用户管理备份目录;修改备份目录权限
mkdir -p /data
useradd rsync -s /sbin/nologin -M
chown -R rsync.rsync /data/
4、创建认证用户密码文件;修改文件权限
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
5.启动rsyncd服务并且开机启动查看服务
systemctl restart rsyncd.service 重启
systemctl enable rsyncd.service 开机自启
systemctl status rsyncd.service 查看服务状态
netstat -nltp |grep 873 查看端口
客户端:
1.创建密码文件,客户端密码文件中,只需要密码即可。同时,密码文件的权限是600
yum -y install rsync #安装完之后不用配置文件
echo "123456">/etc/rsync.password
chmod 600 /etc/rsync.password
2.测试客户端向服务端推送文件
touch aaa.txt
rsync -avz aaa.txt rsync_backup@192.168.2.5::backup --password-file=/etc/rsync.password
在服务端查看是否成功
客户端安装mysql
yum -y install mariadb mariadb-server
systemctl start mariadb.service 启动
systemctl enable mariadb.service 设置开机自启
定时任务:
yum -y install crontabs
mkdir /root/mysql.bak #备份将放到此目录下
备份数据库脚本:
vim /root/mybak.sh
#!/bin/bash
mysqldump -uroot -A > /root/mysql.bak/$(date +%F_%T).mysql.bak
rsync -avz /root/mysql.bak/$(date +%F_%T).mysql.bak rsync_backup@192.168.2.5::backup --password-file=/etc/rsync.password
为脚本增加执行权
chmod +x /root/mybak.sh
编写定时任务
crontab -e
* * * * * . /root/mybak.sh #每分钟执行一次
#请根据实际情况进行修改
客户端查看
服务端查看