Mysql 定时备份脚本

mysql备份原理:mysqldump -uroot -p pass db > xxx.sql
压缩:mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
恢复:gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

定时备份即是在Mysql的生产环境中启动一个定时任务,每隔一段时间使用mysqldump工具执行一次备份。

1.创建shell脚本

mkdir /bak

mkdir /bak/bakmysql

mkdir /bak/bakmysqlold    

touch /bak/bakmysql/backup.sh

vim /bak/bakmysql/backup.sh

在backup.sh填入以下内容,根据实际情况进行修改

#!/bin/sh
cd /bak/bakmysql
echo "已切换到备份目录,开始备份..."
mv bakmysql* /bak/bakmysqlold
echo "旧文件已保存到/bak/bakmysqlold"
Now=$(date +"%d-%m-%Y")
Mysqlpd="pass"
File=bakmysql-$Now.sql.gz
echo "开始dump数据库..."
mysqldump -uroot -p$Mysqlpd wh_cloud | gzip > $File
echo "dump success!开始远程复制..."
passwd="passwd"
expect <<EOF
spawn /usr/bin/scp $File root@192.168.0.1:/usr/local/$File
expect {
    "密码:"
            {
           send "$passwd\n"
          }
    "pass"
          {
            send "$passwd\n"
          }
    "yes/no"
           {
           sleep 5
           send_user "send yes"
           send "yes\n"
                    }
    eof
     {
         sleep 5
         send_user "eof\n"
     }
}
send "exit\r"
expect eof
EOF
echo "复制全部完成!即将退出..."

2.安装crontab

crontab命令用来将crontab文件提交给cron进程执行

yum install -y vixie-cron

yum install -y crontabs

yum install -y expect #用作自动密码登录

等到操作完成。检查是否已安装:

$ service crond status
crond 已停

crond 启动停止

启动服务: service crond start 
关闭服务: service crond stop 
重启服务: service crond restart 
重新载入配置:service crond reload 
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
没有就加入开机自动启动:免得每次手动启动麻烦:chkconfig --level 35 crond on

3.创建定时任务

创建一个每周一晚23点执行一次mysql备份时程表:

 touch bakcron
 vi bakcron

加入一下内容,保存退出。(或者直接执行crontab -e 进行编辑)

 0 23 * * 1 /bin/sh /bak/bakmysql/backup.sh

/bak/bakmysql/backup.sh为数据库备份操作脚本

4.执行定时任务

在命令行输入

crontab bakcron

  
查看/var/spool/cron目录,可以看到有文件名为用户名的文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值