下面是详细的攻略:
1. 安装crontab
Crontab是Linux自带的定时任务工具。首先我们要确认系统中是否已经安装了Crontab。
在终端输入命令:
crontab -l
如果出现“no crontab for 用户名”这样的提示,就意味着Crontab还没有被安装。这个时候我们需要用命令安装:
sudo apt-get install cron
安装完成后,再次输入 crontab -l
命令就能看到系统中已有的定时任务。
2. 编写备份脚本
在终端中输入以下命令创建备份脚本:
sudo nano ~/backup.sh
在打开的编辑器中编写以下脚本:
#!/bin/bash
# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="用户名"
DB_PASSWORD="密码"
DB_NAME="数据库名"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"
# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}
# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete
其中,需要替换用户名、密码和数据库名。
脚本中先定义了需要备份的数据库信息,包括用户名、密码和数据库名,然后定义了备份后的文件名和备份目录。备份时使用mysqldump命令将数据库内容备份到指定目录,并将备份文件名命名为 数据库名_backup_年月日_小时分钟秒.sql
。备份完成后,通过find命令查找超过14天的备份文件并删除掉。
如果脚本编写完成,按下 Ctrl+X
保存并退出编辑器。
3. 赋予脚本执行权限
在终端中输入以下命令赋予脚本执行权限:
sudo chmod +x ~/backup.sh
4. 设置定时任务
在终端中输入以下命令创建新的定时任务:
crontab -e
在打开的编辑器中添加以下内容:
0 2 * * * ~/backup.sh
上面的内容表示,在每天凌晨2点执行备份任务。如果需要调整备份时间,请根据Crontab的语法格式自行调整。例如,如果需要在每周一的晚上7点备份,可以写成:
0 19 * * 1 ~/backup.sh
添加完成后,按下 Ctrl+X
保存并退出编辑器。
5. 示例说明
示例一
假设我们需要定时备份MySQL中的MyBlog数据库,我们可以这样编写备份脚本:
#!/bin/bash
# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="MyBlog"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"
# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}
# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete
然后将这个脚本保存为 ~/backup.sh
。
接下来设置定时任务,在每天凌晨2点备份MyBlog数据库:
0 2 * * * ~/backup.sh
这样,在每天凌晨2点,系统就会自动备份MyBlog数据库并删除超过14天的历史备份文件。
示例二
假设我们有一个名为MyShop的MySQL数据库,需要在每周一的晚上7点备份,我们可以这样编写备份脚本:
#!/bin/bash
# 定义需要备份的数据库名称、备份后的文件名和备份目录
DB_USER="root"
DB_PASSWORD="password"
DB_NAME="MyShop"
BACKUP_NAME="${DB_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"
BACKUP_DIR="/mnt/backup/"
# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}${BACKUP_NAME}
# 删除超过14天的备份文件
find ${BACKUP_DIR} -mtime +14 -type f -name "${DB_NAME}_backup_*" -delete
然后将这个脚本保存为 ~/backup.sh
。
接下来设置定时任务,在每周一的晚上7点备份MyShop数据库:
0 19 * * 1 ~/backup.sh
这样,在每周一的晚上7点,系统就会自动备份MyShop数据库并删除超过14天的历史备份文件。
综上所述,以上就是在Linux系统中定时备份MySQL数据库并删除以前的备份文件的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux定时备份MySQL数据库并删除以前的备份文件(推荐) - Python技术站