前言
通过crontab定时执行shell脚本实现备份mysql数据库
一、编写shell脚本
在/usr/local/mysql目录下创建mysql_backup.sh文件
touch /usr/local/mysql/mysql_backup.sh
添加脚本内容
vim /usr/local/mysql/mysql_backup.sh
脚本内容如下:
#配置信息
DB_USER="root" # MySQL 用户名
DB_PASSWORD="123456" # MySQL 密码
DB_NAME="test" # 要备份的数据库名称
DATE=$(date +%Y%m%d_%H%M) # 当前日期时间,用于生成唯一的备份文件名
#存储位置
mkdir -p /mysqldata #创建mysql备份脚本存储位置
# 执行备份命令 /usr/local/mysql 为mysql安装目录
/usr/local/mysql/bin/mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME |gzip > /mysqldata/$DATE.sql.gz
# 删除超过15天的旧备份文件(查找/mysqldata目录下名称为.sql.gz同时修改时间为15天之前的删除)
find /mysqldata -type f -name *.sql.gz -mtime +15 -exec rm {} \;
添加文件权限
chmod +x /usr/local/mysql/mysql_backup.sh
二、创建定时任务
修改crontab
crontab -e
添加内容
#每天凌晨1点执行/usr/local/mysql/mysql_backup.sh脚本文件并将日志保存到/usr/local/mysql/mysql_backup.log文件中
0 1 * * * /usr/local/mysql/mysql_backup.sh > /usr/local/mysql/mysql_backup.log
脚本文件解析
* * * * * command
- - - - -
| | | | |
| | | | ----- Day of the week (0 - 7) (Sunday is both 0 and 7)
| | | ------- Month (1 - 12)
| | --------- Day of the month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
总结
以上就是简单通过定时任务执行shell脚本实现定时备份mysql数据库功能