下面是详细的mysql备份脚本并保留7天的攻略介绍。
1. 编写备份脚本
假设我们要备份的数据库名为mydatabase
,我们可以通过以下命令备份该数据库:
mysqldump -u 用户名 -p密码 mydatabase > mydatabase_backup.sql
其中,用户名
和密码
分别是你的mysql数据库的用户名和密码,mydatabase
是你要备份的数据库名称。备份完成后,会在当前目录下生成一个名为mydatabase_backup.sql
的备份文件。
为了每天自动备份数据库,我们可以编写一个脚本,并加入到系统的计划任务中。
#!/bin/bash
# 备份文件存放路径
BACKUP_DIR=/home/backup
# 备份文件名,按照日期命名
BACKUP_FILE=${BACKUP_DIR}/mydatabase_$(date +%Y%m%d%H%M%S).sql
# mysql配置
MYSQL_USER=用户名
MYSQL_PASSWORD=密码
MYSQL_DATABASE=mydatabase
# 备份命令
mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} > ${BACKUP_FILE}
echo "Backup done: ${BACKUP_FILE}"
上述脚本会将数据库备份文件命名为包含日期时间的形式,例如mydatabase_20210812153000.sql
。然后将备份文件存放在指定目录(这里设为/home/backup
)。执行命令chmod +x backup.sh
将该脚本授予可执行权限。
2. 配置计划任务
将上述备份脚本加入到系统的计划任务中,就可以每天自动备份数据库并保留7天的备份文件。
crontab -e
然后在打开的文件中添加如下一行:
0 3 * * * /bin/bash /home/backup.sh
上述命令中的0 3 * * *
表示每天凌晨3点执行备份任务,/bin/bash /home/backup.sh
是备份脚本的完整路径。
3. 自动删除7天以前的备份文件
为了保留最近7天的备份文件,我们需要编写一个自动删除脚本,并加入到系统的计划任务中。
#!/bin/bash
# 备份文件存放路径
BACKUP_DIR=/home/backup
# 删除7天以前的备份文件
find ${BACKUP_DIR}/*.sql -mtime +7 -exec rm {} \;
echo "Old backup files deleted."
上述脚本会每天凌晨4点自动执行,删除指定路径下7天以前的备份文件。
示例说明
示例1:每天自动备份数据库并保留7天的备份文件
我们将上述备份脚本backup.sh
放在/home
目录下,并将计划任务配置好后,每天设定的时间到了之后就会自动备份数据库并保存在指定目录下。比如,今天是8月12日,那么备份文件的名称为mydatabase_20210812030000.sql
(时间为凌晨3点),并保存在/home/backup
目录下。然后我们可以在/home/backup
目录中找到所有备份文件,其中保留最近7天的备份。
示例2:手动删除指定日期的备份文件
假设我们要删除上述备份文件中某个指定日期的备份文件,比如要删除8月5日凌晨3点的备份文件mydatabase_20210805030000.sql
,我们可以使用以下命令:
rm /home/backup/mydatabase_20210805030000.sql
这样就可以手动将指定日期的备份文件删除。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql备份脚本并保留7天 - Python技术站