linux中mysql7自动备份压缩并删除5天前的备份

之前转载过一篇linux中mysql自动备份并删除5天前的备份的文章,在服务器上运行了一年多也没问题,最近不知怎么着,突然之间就不管用了。发现最近备份生成的文件都是0kb,引起这种问题的原因一般是mysqldump命令没有起作用,经过查资料才知道mysql5.7以后的版本备份要改方式。

1、修改mysql的配置文件,给[client]选项增加三行命令

vi /etc/my.cnf
[client]
port = 3306
default-character-set = utf8mb4
host = localhost 
user = root 
password = 'root'

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

vi /usr/sbin/backmysql.sh

内容如下:代码

db_name="sjhf"
# 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")"     
/usr/bin/mysqldump --defaults-extra-file=/etc/my.cnf $db_name  > "$backup_dir/$db_name"_"$time.sql"
tar -zcvf "$backup_dir/$db_name"_"$time.sql.tar.gz" "$backup_dir/$db_name"_"$time.sql" 
rm -rf "$backup_dir/$db_name"_"$time.sql"
find $backup_dir -mtime +5 -name "*.*" -exec rm -f {} \;

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

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

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

4.执行脚本,检测脚本是否能正确执行

cd 到/usr/sbin/目录下 运行./backmysql.sh脚本,若正确,则/usr/software/backup/mysqlbackup目录下会生成用时间命名并压缩好的备份文件,如果文件大小有问题,或者连接错误,注意查看my.cnf中相关信息是否配置好,以及是否放到[client]下了

5.创建定时任务

[root@localhost sbin]# crontab -e

#进入编辑界面,内容如下

00 23 * * * /usr/sbin/backmysql.sh

如时没有安装 crontab,需要先安装它,具体步骤请参考:
CentOS下使用yum命令安装计划任务程序crontab
使用rpm命令从CentOS系统盘安装计划任务程序crontab
crontab命令详解查看下面地址:
Crontab命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值