crontab是定时作用真正备份的要是下面的mysqlBack.sh文件了,我们只要利用crontab定时执行这个脚本就可以进行备份mysql数据库了,具体代码如下图所示。
1、编写备份数据库使用的shell脚本
代码如下 |
|
vim /home/mysqlBack.sh
#!/bin/bash
MYSQL_USER=root
MYSQL_PASS=root
DATABASE=test
FILE_NAME=$DATABASE.`date +%Y%m%d`.tar.gz
TMP_FILENAME=$DATABASE.`date +%Y%m%d%H%M%S`.sql.gz
#切换到文件存放的目录,防止在tar时,报警告信息:tar: Removing leading `/’ from member names
cd /alidata1/mysqlback/
#删除7天以前的备份文件
rm -rf $DATABASE.$(date -d -1day +"%Y%m%d").tar.gz
mysqldump -u$MYSQL_USER -p$MYSQL_PASS $DATABASE --socket=/tmp/mysql.sock | gzip -9 -> $TMP_FILENAME
tar -czf $FILE_NAME $TMP_FILENAME
rm -rf $TMP_FILENAME
|
2、使用crontab执行定时计划任务
代码如下 |
|
crontab -e
00 1 * * * root /home/mysqlBack.sh
|
定为每天凌晨1:00执行脚本
简单注明
MYSQL_USER=root 数据库用户名
MYSQL_PASS=root 数据库密码
DATABASE=test 备份数据库
FILE_NAME=$DATABASE.`date +%Y%m%d`.tar.gz 按日期生成备份文件