🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 增量备份 增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。 实现原理:全量备份+binlog日志文件备份 1、全量备份脚本: ``` #!/bin/bash #基本设置 user=root password=zhishuai*niuBI882020+++ db=opencart1 file=`date +"%Y-%m-%d-%H:%M:%S"`-$db.tar.gz path=/home/fullback/ ip=47.88.90.234 if [ ! -d "$path" ]; then mkdir "$path" fi #备份语句 /www/server/mysql/bin/mysqldump -F -u$user -p$password $db |/bin/gzip >$path$file #邮件处理 if [ $? -eq 0 ]; then echo "1、备份已经成功导出....." >email.txt else echo "ERROR:备份导出失败......" >email.txt fi #推送到另外一台服务器 rsync -av $path$file vanvan@$ip::backup --password-file=/etc/rsyncd.pass if [ $? -eq 0 ]; then echo "2、已经成功推送到备份数据库....." >>email.txt echo "------------------------------------------------" >>email.txt else echo "ERROR[2]:数据备份推送失败......" >>email.txt fi du -h $path$file >>email.txt mail -s "数据备份提醒" 2036676949@qq.com <email.txt ``` 2、增量备份脚本 ``` #!/bin/bash #====================================================================================== # # 数据库增量备份 自动备份脚本 # # @atuhor: vanvan # @时间:2020年5月7日 # #====================================================================================== ip=47.88.90.234 file=`tail -1 /www/server/data/mysql-bin.index|cut -c 3-` path=/www/server/data/ #推送文件 rsync -av $path$file vanvan@$ip::backup --password-file=/etc/rsyncd.pass if [ $? -eq 0 ]; then echo "增量备份文件已经推送到服务器47.254.126.150" >email.txt else echo "【注意】:增量备份文件推送失败,请检查!" >email.txt fi echo "********** 文件备份 ************" >>email.txt du -h $path$file >>email.txt mail -s "数据备份提醒" 2036676949@qq.com <email.txt ``` 3、rsync配置 **配置服务端** 配置文件 /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 = /home/vanvan #需要同步的目录 ignore errors #表示出现错误忽略错误 read only = false #表示网络权限可写(本地控制真正可写 write only = no list = false #i 里设置 IP 或让不让同步 hosts allow = 47.88.51.77/24 #指定允许的网段 hosts deny = 0.0.0.0/32 #拒绝链接的地址,一下表示没有拒绝的链接。 auth users = vanvan #虚拟用户 secrets file = /etc/rsyncd.passwd #虚拟用户的密码文件 客户端传密码校验文件 ``` mkdir –p /home/vanvan (创建上传文件目录) chown nobody vanvan (更改上传目录属主 否则会报错) touch /etc/rsyncd.passwd (和配置文件里的路径一致) echo "vanvan:vanvan">/etc/rsyncd.passwd (增加用户名和密码 格式 用户名:密码) chmod 600 /etc/rsyncd.passwd (赋权限) rsync --daemon (开启 rsync 服务端) **配置客户端** 客户端配置 vim /etc/rysncd.pass 把服务端的用户密码输入即可 echo "vanvan" >/etc/rsyncd.pass &&chmod 600 /etc/rsyncd.pass **测试** 开始客户端推到服务端数据 rsync -av /home/fullback/* vanvan@47.88.90.234::backup --password-file=/etc/rsyncd.pass rsync -av --delete /root/ rsync@192.168.1.147::lampol --password-file=/etc/rsyncd.passwd 从服务端 拉去数据 rsync -av vanvan@47.254.126.150::backup/2020-05-06-16:09:24-opencart1.tar.gz / --password-file=/etc/rsyncd.pass **【其他】** 加入定时计划