备份脚本及定时自动执行

1、首先自己建一个目录,我建的目录路径为/root/bak/bakmysql

建立目录步骤:

cd /root(切换路径到root目录下)→mkdir bak(新建名称为bak的文件夹)→cd bak(进入bak目录下)→mkdir bakmysql(新建名为bakmysql的文件夹)

2、写备份脚本

#!/bin/bash

## 定义变量
back_dir=/root/bak/bakmysql
date=$(date +%Y%m%d%H%M)

## 进入备份目录
cd $back_dir
echo "$(date): begin to backup..."

## 用MYSQLDUMP备份
mysqldump -uroot -ppassword --default-character-set=UTF8 --single-transaction --quick --master-data=2 --flush-logs --add-drop-database --triggers --routines --events --databases databases_name > $back_dir/databases_name .$date.sql


if [ $? -eq 0 ] ## 如果命令成功
then
echo "backup successed!"
## 打包病压缩备份文件
tar -zcvf jlr.$date.tar.gz jlr.$date.sql && rm -f jlr.$date.sql
## 删除3天前的备份文件
find ./jlr.*.gz -mtime +3 -exec rm -f {} \;
else ## 如果备份失败
echo "backup failed!"
fi
echo "$(date): end backup."

3、设置该脚本为自动定时执行

将路径切换到/etc下面→编辑crontab文件(vim crontab)

最后一句为刚刚新增加的

然后保存退出

4、当以上工作都完成后执行整个定时备份的脚本也就完成了,

最后要说的就是,以上仅仅是一个简单的常规步骤,当然也还可以后其他的一些方法。比如在编辑crontab文件的时候,也可以直接执行crontab -e命令然后把最后那一行追加到文件中也可以。

我本人在做个定时脚本的时候也不是像上面说的那样简单,出现过各种问题,所以在这里将一些需要注意的地方列出来警示自己,也可以给各位提供一个参考

在做这个工作的时候:首先,你要确定自己的解决方案,需要用到哪些技术或者工具;其次,你要对自己用的技术和工具有一定的认识和了解

比如说上面的脚本我用到了mysqldump来备份数据库,用到了linux的crontab来实现定时,当时用的客户端连接工具是Xshell

这个时候你就需要对mysqldump的一些命令和参数有一定的了解了,比如说上面脚本中的

mysqldump -uroot -ppassword --default-character-set=UTF8 --single-transaction --quick --master-data=2 --flush-logs --add-drop-database --triggers --routines --events --databases databases_name > $back_dir/databases_name .$date.sql

这其中有许多参数,可以根据自己的实际需要去设置。比如我要备份的不是一个数据库,而是这个服务器上的所有数据库,这个时候就可以将--databases databases_name改为--all-databases。还有一点就是在代码中有一个 --flush-logs主要是关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。当要使用该功能是需要修改mysql配置文件my.cnf。将“log_bin                 = /var/log/mysql/mysql-bin.log”的注释去掉,如果远my.cnf中没有这一句的话就在文件中添加上,如图所示:

鉴于本人目前水平,只能理解到这么多了,所以,以上所述均做参考,具体应用的时候,结合自己的实际情况而定

 

转载于:https://www.cnblogs.com/peng-yan/p/6222614.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值