Home  >  Article  >  Database  >  shell初步之:mysql每天定时倒出本地数据,替换远程数据库数据_MySQL

shell初步之:mysql每天定时倒出本地数据,替换远程数据库数据_MySQL

WBOY
WBOYOriginal
2016-06-01 13:29:30946browse

bitsCN.com

shell初步之:mysql每天定时倒出本地数据,替换远程数据库数据

 

01

mysql每天定时倒出本地数据,替换远程数据库数据

02

需求在每天的5点将192.168.3.5上ser_a库中的tb_a表导入到192.168.3.6上的ser_b库中,表名还叫tb_a

03

服务端脚本/usr/shell_clubs/auto_sql/server.sh

04

#!/bin/sh

05

#code by scpman

06

/usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql

07

#get new sql

08

time=`date +%Y%m%d`

09

mysqldump -uroot -p123456 ser_a tb_a > /usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql

10

sleep 2

11

ssh -p10022 192.168.3.6

12

/usr/shell_clubs/auto_sql/client.sh

13

EEE

14

说明:服务端脚本会导出指定表,并通过公钥ssh到目标机器上,调用客户端脚本

15

客户端脚本/usr/shell_clubs/auto_sql/client.sh

16

#!/bin/sh

17

#code by scpman

18

#client.sh

19

time=`date +%Y%m%d`

20

/usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql

21

/usr/local/bin/rsync -vzrtopgl --progress  root@192.168.3.5::all/usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql /usr/shell_clubs/auto_sql/;

22

counts=`ls -l /usr/shell_clubs/auto_sql/ | grep "$time" | awk '{print $NF}'|wc -l`

23

echo $counts

24

if [ "$counts" -eq 1 ]

25

then

26

echo sql:$counts

27

mysql -uroot -ptest123  

28

use ser_b;

29

drop table tb_a;

30

FFF

31

mysql -uroot -ptest123 ser_b

32

echo --------------done

33

else

34

        echo sql wrong

35

fi

36

说明:客户端脚本被调用时,会先删除当前路径下的旧sql记录,然后通过rsync将服务端导出的表,同步过来,并检查是否同步过来,如果同步成功,则清空现有旧tb_a,将新的tb_a导入进库,如果没同步成功,则脚本退出(此处可以先发个邮件通知再退出)

37

然后流程通了

38

现在再加一条定时在192.168.3.5上(server端)

39

##send sql to 192.168.3.6

40

0 5 * * * su - root -c "/usr/shell_clubs/auto_sql/server.sh" >>/usr/shell_clubs/auto_sql/res.log

 

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn