下面我就为您讲解如何在Linux系统中实现定时备份MySQL数据库并删除30天前的备份文件的完整攻略。
环境准备
- 系统:Ubuntu 18.04
- MySQL版本:5.7.25
- 备份工具:mysqldump
备份MySQL数据库
- 安装mysqldump
首先需要安装mysqldump,mysqldump可用于备份MySQL数据库
sudo apt-get install mysql-client
- 编写备份脚本
进入备份存放目录并创建备份脚本
cd /home/user/backups
touch backup.sh
使用编辑器编辑备份脚本,添加以下内容:
#!/bin/bash
# MySQL数据库配置
DB_user="root"
DB_password="password"
DB_name="database_name"
# 备份时间
backup_time=$(date +%Y%m%d%H%M%S)
# 备份文件名
backup_file="${DB_name}_backup_${backup_time}.sql"
# 备份MySQL
mysqldump -u${DB_user} -p${DB_password} ${DB_name} > ${backup_file}
- 运行备份脚本
在运行备份脚本之前,需要确保该脚本具有可执行权限。
使用以下命令赋予备份脚本权限:
chmod +x backup.sh
运行脚本进行备份:
./backup.sh
运行成功后备份文件将会保存到指定目录下。
删除30天前的备份文件
- 安装定时任务管理工具cron
在Ubuntu中,可使用以下命令进行安装:
sudo apt-get install cron
- 创建定时任务
使用以下命令编辑定时任务:
crontab -e
如果是第一次编辑,系统会提示选择编辑器,默认选择vi,敲击回车进入编辑模式。在编辑器中添加以下内容来设置定时任务:
0 0 */3 * * find /home/user/backups -type f -mtime +30 -name "*.sql" -exec rm -rf {} \;
这个定时任务的含义是每隔3天在0点0分执行一次查找备份文件并删除30天前备份的操作。这个时间可以根据需求自定义。
说明:
- 0 0 */3 * *
表示每隔三天的0时整执行。
- find
命令表示查找备份文件。
- /home/user/backups
表示查找目录。
- -type f
表示查找的是文件。
- -mtime +30
表示30天前的文件,-mtime可以指定几天前的文件,+表示几天前以前的文件,-表示几天前到现在之间的文件。
- -name "*.sql"
表示查找后缀为.sql的文件。
- -exec rm -rf {} \;
表示执行删除操作。
示例:
假设现在是2022年12月01日,运行备份脚本之后备份的文件名为:database_name_20221201012520.sql,
那么执行定时任务的时候,它会查找/home/user/backups目录下*.sql文件,找到之前30天以前的备份文件database_name_20220131152420.sql,并删除之。
以上就是“Linux实现定时备份MySQL数据库并删除30天前的备份文件”的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux实现定时备份MySQL数据库并删除30天前的备份文件 - Python技术站