话不多说,直接上脚本
#!/bin/bash
#DATE=`date +%Y%m%d%H%M` #每分钟
DATE=`date +%Y%m%d` #每一天
DATABASE=*** #数据库名称
DB_USER=*** #用户名
DB_PASS=*** #密码
BACKUP=/root/bak #备份路径
DUMPFILE=$DATABASE-$DATE.sql.gz #备份的文件名
#备份目录创建
if [ ! -d $BACKUP ] ;then
mkdir /root/bak && echo "备份目录创建成功!"
else
echo "备份目录已经创建!"
fi
cd $BACKUP
mkdir -p $DATE
cd $DATE
#备份脚本 压缩
mysqldump -u$DB_USER -p$DB_PASS -h 127.0.0.1 --default-character-set=utf8 ${DATABASE} |gzip> $DUMPFILE
;
#删除超过七天的脚本
find $BACKUP -type d -mtime +7 -exec rm -rf {} \;
脚本写好了我们需要利用centos 的crontab 来定时执行
首先安装crontab,没安装的可以网上找教程。
[root@CentOS ~] crontab -l #查看所有的定时任务
[root@CentOS ~] crontab -e #编辑定时任务的脚本将新写的脚本放入任务中
例如:
0 1 * * * /root/bakmysql.sh; #每天的凌晨一点进行执行,请记住这个路径
定时任务的表达式可以网上找,时间可以短一点,自己调试