eskysky
发布于 2024-11-22 / 10 阅读
0

Linux每日定时备份MySQL数据库

创建备份文件存储目录:

mkdir -p /root/backup/mysql

查找mysqldump安装位置的绝对路径:

which mysqldump

在/root/backup目录创建自动备份脚本mysqlback.sh:

vim /root/backup/mysqlback.sh

mysqlback.sh脚本内容:

#!/bin/bash
db_user="用户名"
db_password="密码"
db_name="数据库名"
# date format for backup file (yyyyMMdd_hhmmss)
time="$(date +"%Y%m%d_%H%M%S")"
backup_dir="/root/backup/mysql"
#备份并压缩,注意:mysqldump 要为绝对路径,例如 /usr/bin/mysqldump
/usr/bin/mysqldump -u$db_user -p$db_password $db_name | gzip > $backup_dir/$db_name_$time.sql.gz
#删除七天之前的备份
find $backup_dir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

赋予脚本可执行权限:

chmod u+x mysqlback.sh

创建定时任务:

crontab -e

输入以下内容,意思是每天凌晨2点执行备份数据库脚本mysqlback.sh

0 2 * * * root /root/backup/mysqlback.sh  #每天凌晨2点备份数据库

执行命令查看定时任务是否添加成功:

crontab -l

现在就已经实现每天自动备份数据库的功能了,备份后的文件会存储在/root/backup/mysql目录下,备份文件以日期时间命名,压缩为gz格式,可以使用gunzip命令解压。

参考资料:

linux下实现mysql每日自动备份和自动删除备份文件(附Nginx日志切割)

linux对nohup日志进行定时拆分并且删除~持续补充