linux中mysql自动备份并删除5天前的备份

1.创建并编辑文件 /usr/sbin/backmysql.sh,命令:

vi /usr/sbin/backmysql.sh

内容如下:代码

db_user="root"
db_passwd="root"
db_name="db_test"
# the directory for story your backup file.you shall change this dir
backup_dir="/usr/software/backup/mysqlbackup"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"     
mysqldump -u$db_user  -p$db_passwd $db_name  > "$backup_dir/$db_name"_"$time.sql"
find $backup_dir -mtime +5 -name "*.*" -exec rm -f {} \;

 注意 -p 和 $db_passwd之间没有空格,不然$db_passwd会被当做参数[数据库名]来解析

-type f 表示查找普通类型的文件,f表示普通文件。
-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
-exec rm {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。

 2.修改文件bakmysql属性,使其可执行;

[root@localhost sbin]# chmod +x /usr/sbin/backmysql.sh

3.创建定时任务

[root@localhost sbin]# crontab -e
#进入编辑界面,内容如下
00 23 * * * /usr/sbin/backmysql.sh
如时没有安装 crontab,需要先安装它,具体步骤请参考:
CentOS下使用yum命令安装计划任务程序crontab
使用rpm命令从CentOS系统盘安装计划任务程序crontab
crontab命令详解查看下面地址:
Crontab命令

 

猜你喜欢

转载自blog.csdn.net/fmwind/article/details/79437917