以下是一个简单的 MySQL 定时备份脚本,它使用
1 | crontab |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/bin/bash
# 设置 MySQL 登录信息
MYSQL_USER="your_mysql_username"
MYSQL_PASSWORD="your_mysql_password"
MYSQL_DATABASE="your_database_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +%Y-%m-%d)
TIME=$(date +%H-%M-%S)
# 创建备份目录和文件名
mkdir -p $BACKUP_DIR/$DATE
FILENAME=$BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz
# 使用 mysqldump 命令备份数据库,并压缩成 gzip 格式
mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD --databases $MYSQL_DATABASE | gzip > $FILENAME
# 删除超过14天的备份文件
find $BACKUP_DIR/* -mtime +14 -exec rm {} \;
这个脚本做了以下事情:
- 获取当前日期和时间。
- 使用
命令创建备份目录和文件名。1mkdir
- 使用
命令备份数据库,并将结果压缩成 gzip 格式。1mysqldump
- 使用
命令查找超过14天的备份文件,并将其删除。1find
- 最后输出一条备份完成信息。
你可以将以上代码保存到一个脚本文件中,例如
1 | mysql_backup.sh |
1 chmod +x backup_mysql.sh
然后将其添加到
1 | crontab |
1 crontab -e
在
1 | crontab |
1 0 2 * * * /path/to/mysql_backup.sh >/dev/null 2>&1 && echo "Backup scheduled for tomorrow at 2am."
这将在每天凌晨 2 点执行脚本,并输出一条备份计划信息。备份数据将被保留14天。