定时备份Mysql数据库及general日志

1、备份Mysql数据库:

/usr/local/mysql/bin/mysqldump --no-defaults -hip -uroot -p密码 --opt -R  --single-transaction 数据库名称 >/opt/databak/data/数据库名层.bak

2、备份Mysql的general日志:
 


#!/bin/bash
today=`date +%Y%m%d`
yestoday=`date +%Y%m%d -d "-1 days"`
mysql -uroot -h127.0.0.1 -p密码 <<EOF
 SET GLOBAL general_log = 'OFF';
EOF
mv /data/mysql/data/general.log  /opt/databak/general_log/general.log.${yestoday}
#find /data/mysql/data/ -mtime +1 -name "SYJJ.log.*" -exec rm -rf {} \;
#touch /data/mysql/data/general.log
mysql -uroot -h127.0.0.1 -p密码 <<EOF
 SET GLOBAL general_log = 'ON';
EOF

3、利用expect完成异地备份

首先下载并安装tcl:

# wget https://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz
# tar zxvf tcl8.4.19-src.tar.gz
# cd tcl8.4.19/unix && ./configure
# make
# make install

然后下载expect并安装:

# wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz
# tar zxvf expect5.45.tar.gz
# cd expect5.45
# ./configure --with-tcl=/usr/local/lib --with-tclinclude=../tcl8.4.19/generic
# make
# make install
# ln -s /usr/local/bin/expect /usr/bin/expect

注意这里的configure命令需要使用–with-tclinclude选项传入tcl安装包中的generic文件夹路径。

安装完成之后运行expect命令,查看是否安装成功。

expect安装参考:linux中Expect工具的安装及使用方法 - 远洪 - 博客园

编写expect脚本:


#!/usr/bin/expect -f

set password 密码
spawn scp -r /opt/databak root@Ip:/opt/
set timeout 300 
expect "root@IP's password:"
set timeout 300 
send "$password\r"
set timeout 300 
send "exit\r"
expect eof
exec sh -c {rm -rf /opt/databak/general_log/*}

4、启用crontab定时:

#crontab -u root -e 

录入:

5 0 * * * /opt/databak/bak_data_start.sh

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值