编程爱好者之家

linux每天定时备份数据库并删除十天前数据

2018-02-26 21:41:51 459

一:写好shell脚本   mysqlbak.sh

#!/bin/sh

mysqldump -uroot -pmysqlroot xhblt | gzip > /mysqlbak/`date '+%Y-%m-%d_%H:%M:%S'`.sql.gz 

find /mysqlbak/ -mtime +10 -name "*.sql.gz" -exec rm -rf {} \; 

脚本解析:

(1) mysqldump -uroot -pmysqlroot xhblt | gzip > /mysqlbak/`date '+%Y-%m-%d_%H:%M:%S'`.sql.gz 

此举含义为下载数据库文件,将数据库文件以-----.sql.gz的名称存在根目录下的mysqlbak文件夹中,数据库的登录备份信息为:(用户名:root  密码:mysqlroot 需要备份数据库名称为:xhblt 

(2) find /mysqlbak/ -mtime +10 -name "*.sql.gz" -exec rm -rf {} \;

含义为:找到根目录下mysqlbak文件夹中的数据然后删除10天前的数据

 

二:目录创建以及文件上传

  (1)在根目录下创建文件夹  mysqlbak作为备份目录,目录权为777

mkdir /mysqlbak;

chmod 777 /mysqlbak;

  (2)文件上传

  将写好的shell脚本放在 /etc 目录下,并且赋予权限 777

  chmod 777 /etc/mysqlbak.sh 

三:加入定时任务

1)输入  crontab e  命令加入 

    0 3 * * * /etc/mysqlbak.sh   //每天凌晨三点执行shell文件 

然后:wq!保存退出

(2)输入service crond restart 重启定时服务


同类文章