Linux mysql定时备份以及双服务器数据同步

1.1.crontab 定时备份
1.创建备份目录
mkdir -p /bak/mysqlbak
cd /bak/mysqlbak
2.编写运行脚本
vi /usr/sbin/bakmysql.sh
脚本代码:

#!/bin/bash

Name:bakmysql.sh

This is a ShellScript For Auto DB Backup and Delete old Backup

admin是数据库用户 ,chinawiserv 数据库密码 设置字符格式, oc4db 要备份的数据库名 > 备份文件存放目录以及备份文件名字格式设置

mysqldump -uAdmin -pchinawiserv --set-charset=UTF8 oc4db > /bak/mysqlbak/oc4db_14$(date +%Y%m%d_%H%M%S).sql

查找这个文件里面 2 天之前的文件 进行删除

find /bak/mysqlbak/ -name “oc4db_*.sql” -type f -mtime +2 -exec rm {} ; > /dev/null 2>&1

3.为脚本添加执行权限

chmod +x /usr/sbin/bakmysql.sh

4.设置crontab定时执行
vi /etc/crontab (网上说这个vi /etc/crontab 和 crontab -e 效果一样,但是亲测是不行的,倒是直接修改/var/spool/cron/root 这个文件也可以设置执行时间,每一个用户添加一个定时任务的时候,都会在这里生成一个用户名的定时文件)
#在最后一行中加入:
00 3 * * * root /usr/sbin/bakmysql.sh
#表示每天3点00分执行备份

注:crontab配置文件格式如下:分 时 日 月 周  命令

这样就完了定时备份并清理前7天的备份数据

Inotify(slave)部署,从
1.下载 inotify-tools-3.14.tar.gz 安装包

2.安装rsync 服务
yum intsall rsync -y

3.编辑文件 vi /etc/rsyncd.conf
uid = 0
gid = 0
##相当于黑洞.出错定位
use chroot = no
##有多少个客户端同时传文件
max connections = 4
##超时时间
timeout = 300
##进程号文件
pid file = /var/run/rsyncd.pid
##日志文件
lock file = /var/run/rsync.lock
##日志文件
log file = /var/log/rsyncd.log
##模块开始
##模块名称随便起(可以是多个)
[fdc]
##需要同步的目录
path = /bak/mysqldata/
##表示出现错误忽略错误
ignore errors
##表示网络权限可写(本地控制真正可写)
read only = false
##这里设置IP或让不让同步
list = false
##指定允许的网段
hosts allow = 192.168.136.13
##拒绝链接的地址,一下表示没有拒绝的链接。
hosts deny = 0.0.0.0/32
##不要动的东西(默认情况)
##虚拟用户
auth users = rsynclsl
##虚拟用户的密码文件
secrets file = /etc/rsync.password
注意:需要在服务器创建一个用户与 vim /etc/rsyncd.conf 虚拟用户名一致。也就是在服务端创建一个 虚拟用户 ,这个虚拟用户必须和上面的 auth users 字段后面的值一致。操作命令

useradd rsynclsl

passwd rsynclsl

cd /home 或者 vim /etc/passwd 下看到你创建的用户

(3)配置虚拟用户的密码文件

在 /etc/rsync.password文件里面创建一个用户账号密码为 "rsynclsl:123456 这个文件将会被上面 /etc/rsyncd.conf 调用,所以保持账号一致

[root@rsync-slave] # echo “rsynclsl:123456” >/etc/rsync.password
[rppt@rsync-slave] # cat /etc/rsync.password

rsynclsl为虚拟用户 123456为虚拟用户密码。

     rsynclsl:123456       

#为密码提取,增加安全性。这一步很重要
[root@rsync-slave] # chmod 600 /etc/rsync.password
(4)启动rsync 服务
#启动rsync服务 或者 systemctl start rsyncd 启动。如果报错
failed to create pid file /var/run/rsyncd.pid: File exists
可以rm -rf /var/run/rsyncd.pid ,删掉这个文件
[root@rsync-slave]# rsync --daemon
[root@rsync-slave]# ps -ef | grep rsync
[root@rsync-slave]# netstat -lnutp | grep rsync

Inotify(master)配置,主
1.查看当前系统是否支持inotify
[root@rsync-master]# ll /proc/sys/fs/inotify
注:
如果存在 max_queued_evnets,max_user_watches,max_user_watches就代表支持

2.下载inotify安装包或者选择官方下载。
[root@inotify-master]# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[root@inotify-master]# tar zxf inotify-tools-3.14.tar.gz
[root@inotify-master]# cd inotify-tools-3.14
[root@inotify-master inotify-tools-3.14]# ./configure --prefix=/usr/local/include/
[root@inotify-master inotify-tools-3.14]# make && make install
3.创建并且编辑 inotify.sh
[root@inotify-master inotify-tools-3.14]# vi inotify.sh

host_slave=192.168.136.14 #inotify-slave的ip地址
master_src=/bak/mysqldata/ #本地监控的目录
inotify_home=/usr/local/include/ #inotify的安装目录
${inotify_home}/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M’ --format ‘%T %w%f’ -e close_write,modify,delete,create,attrib $master_src
| while read file
Do
##这个fdc 不许要是是和服务端配置文件 /etc/rsyncd.conf 里面 模块名字一样的
rsync -az --delete m a s t e r s r c r s y n c l s l @ {master_src} rsynclsl@ mastersrcrsynclsl@{host_slave}::fdc --password-file=/etc/rsync.password
done

设置客户端请求服务端的时候用到的密码,但是它不像服务端,它只需要密码,不需要用户。
4.vi /etc/rsync.password ## 这个文件是给上面inotify.sh 里面的password-file 调用的 就只编辑一个密码就行了。
123456 #只需要填写rsync服务的密码
[root@inotify-master inotify-tools-3.14]# chmod 600 /etc/rsync.password
#注意!模块名称 fdc 要和vim /etc/rsyncd.conf 里面的一致
#注意!本地监控目录 要和vim /etc/rsyncd.conf 里面的一致
#注意!inotify的安装目录 要和vim /etc/rsyncd.conf 里面的一致
#注意!vim /etc/rsync.password 配置文件名称要一致
#注意!!!!检查 vim /etc/rsync.password 的权限,一定是600
(chmod 600 /etc/rsync.password)!!!

5.后台执行脚本
[root@inotify-master] # chmod -R 777 inotify.sh #给予最高权限或者给予相应权限!
[root@inotify-master] # ./inotify.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值