热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

工作需求,客户需要两台机器上的数据库文件和其他文件一致,其他文件好说,直接使用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



推荐阅读
author-avatar
吴伟琬63526
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有