linux mysql 备份 压缩_Linux下mysql定时备份压缩

本文介绍了如何在Linux环境下,通过编写备份脚本并利用crontab设置定时任务,实现MySQL数据库的自动备份和压缩。备份过程包括:创建备份目录、配置MySQL的[client]选项以避免明文密码、编写备份脚本进行数据库转储和压缩,并设定脚本删除7天前的旧备份,确保仅保留一周内的数据。
摘要由CSDN通过智能技术生成

本文要实现的内容

自动备份mysql指定的数据库

压缩备份的数据库

删除旧有的备份(7天前)

实现是方法编写一个备份脚本,然后使用crontab定时执行脚本达到自动备份的目的。

本次配置的环境目录如下:

mysql安装目录:  /usr/local/mysqlmysql

备份目录:  /app/deploy/backup/mysqlmysql

配置文件:  /etc/my.cnf

备份shell文件:  /usr/local/bin/mysql-data-backup.sh

环境介绍完毕,下面正式开始

1、新建备份脚本

mkdir -p /app/deploy/backup/mysql

#新建数据备份所在目录

ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin

#创建备份执行程序的软链接

touch /usr/local/bin/mysql-data-backup.shchmod +x /usr/local/bin/mysql-data-backup.sh

#增加脚本的执行权限

2、配置mysql的[client]选项

使用mysqldump -u root -proot test_db > /app/deploy/backup/mysql/backup.sql 会报以下错误:

Warning: Using a password onthecommandlineinterfacecanbeinsecure.

1

直接在命令行填写明文密码是不安全的,容易被系统其它用户窃取。这是mysql为了安全性作出的一种专制,官方也对这种情况作出了说明:

这个种情况下,官方也给出了解决方法,那就是增加配置文件里的[client]中的内容。

vi /etc/my.cnf

加入以下内容

[client]

host=localhost

user=root

password=root

这时候可用以下命令进行备份

mysqldump --defaults-extra-file=/etc/my.cnf test_db > /app/deploy/backup/mysql/backup.sql

3、编写备份脚本

vi /usr/local/bin/mysql-data-backup.sh

脚本内容如下:

#!/bin/bash

#description: mysql-data automatically backup script# 文件名为test_db+日期

backupDatabase=test_db

fileName=${backupDatabase}`date +%Y%m%d`

# 定义baseDir变量

baseDir=/app/deploy/backup/mysql/

# 备份数据库

mysqldump --defaults-extra-file=/etc/my.cnf ${backupDatabase} > ${baseDir}${fileName}.sql

# 压缩 tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql

# 删除刚刚备份的sql文件,留下压缩的  rm -f${baseDir}${fileName}.sql;

# 删除7天前备份的数据,只保留一星期内的数据

find ${baseDir} -mtime +7 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;

4、编写定时任务

vi /var/spool/cron/crontabs/root

加入以下内容

# 每天的23时59分进行备份(使用/bin/bash解析器运行脚本)

59 23 * * * /bin/bash /usr/local/bin/mysql-data-backup.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值