码迷,mamicode.com
首页 > 其他好文 > 详细

备份脚本及定时自动执行

时间:2016-12-26 16:23:12      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:quick   情况   水平   sql   vim   find   编号   定义   echo   

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中没有这一句的话就在文件中添加上,如图所示:

技术分享

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

 

备份脚本及定时自动执行

标签:quick   情况   水平   sql   vim   find   编号   定义   echo   

原文地址:http://www.cnblogs.com/peng-yan/p/6222614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!