linux 同步脚本,Linux:一个简单的同步数据脚本

工作需求,客户需要两台机器上的数据库文件和其他文件一致,其他文件好说,直接使用rsync的增量同步就好了,数据库的同步让我头疼了好久。

刚开始使用增量同步的方法去同步数据库,当主端数据增加后同步,发现并没有什么卵用。​然后就只能每次都做全备了,技术不过关,只能用笨方法,先把备用服务器的数据库文件移走,以时间命名新的备份文件,然后从主端同步数据,考到数据库目录,然后重启数据库,以便web能够正确读到数据,最后find一下7天以前的备份文件并删除,目的也就达到了。说明一下:这样ssh使用key认证无需输入密码。

脚本如下:​

#!/bin/bash

#This script is used to synchronize the recording and the

database file, the synchronization time is three in the

night.

# Author:WangKangkang

# Email:wangkangkang@86call.cn

RSYNC_SERVICE=192.168.10.250

#需要同步数据的服务器

AUTH_USER=root

#用户名

DATE=$(date '+%Y-%m-%d')

#时间

BAKROOT=/var/lib/mysql/

#需要同步数据服务器的数据库路径

BACKUP_DIRECTORY=/var/lib/mysql/

#备份服务器数据库路径

mv $BACKUP_DIRECTORY /mysql_data/mysql-$DATE/

#将备份服务器的数据库文件移走

mkdir /var/lib/mysql/

#重新创建数据库文件夹

chown mysql:mysql $BACKUP_DIRECTORY

#rsync monitor file

rsync -avz --delete $AUTH_USER@$RSYNC_SERVICE:$BAKROOT

$BACKUP_DIRECTORY

#同步数据库文件

echo "$(date)  Recording file

synchronization success" >>

/var/log/asterisk/Rsync.log

#打印日志

#rsync mysql file

rsync -avz --delete

$AUTH_USER@$RSYNC_SERVICE:/var/spool/asterisk/monitor/

/var/spool/asterisk/monitor/

echo "$(date)  mysql file synchronization

success" >>

/var/log/asterisk/Rsync.log

#restart mysql

/etc/init.d/mysqld restart

#重启数据库

echo "$(date)  mysql file synchronization

success" >>

/var/log/asterisk/Rsync.log

#rm 7 days ago mysql_data

find /mysql_data/ -mtime +2 -name mysql-'*' -exec rm -rf

{} \;

#END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值