linux上mysql数据库备份,保存七天数据,删除七天外的

定时器执行shell脚本

一 、安装crontab定时器(有些系统自带)

   yum -y install vixie-cron
   yum -y install crontabs
        说明:
        vixie-cron 软件包是 cron 的主程序;

        crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

二 、配置crontab(系统自带的,可跳过此步)

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态
chkconfig --level 345 crond on //自启

三、修改/etc/crontab文件

       在最后面加上shell脚本路径,配置好启动时间,例子的是每天 5点  

      下面为两种方式设置任务,选一种就可以

      1 用vi设置,要加root  

 0 5 * * * root /home/mysql/backup.sh

     2 用crontab -e 设置任务

 0 5 * * * /home/mysql/backup.sh -h now

四、编写shell脚本

      
#!/bin/bash
userName="root"
password="123456"
dataBase="tablename"

DATE=`date '+%Y%m%d'`
BACKUP_DIR="/home/mysql/backup/"

seven_day_ago=`date +%Y%m%d --date '7 days ago'`

echo $seven_day_ago

if [ ! -d $BACKUP_DIR$DATE ] ;
then
        mkdir -p $BACKUP_DIR$DATE
fi

mysqldump --user=$userName --password=$password --host="127.0.0.1" $dataBase | gzip > $BACKUP_DIR$DATE/$dataBase$DATE.sql.gz

if [ -d $BACKUP_DIR$seven_day_ago ] ;        
then
        rm -rf $BACKUP_DIR$seven_day_ago
fi
权限记得设置成 700
chmod 700 backup.sh

        

你可能感兴趣的:(linux)