?正式环境的MySql数据库备份
? 编写备份脚本,如下:
#!/bin/bash
# 设置MySQL用户名、密码和数据库名称
DB_USER="root"
DB_PASSWORD="xxxxxx"
DB_NAME="dbName"
# 设置备份目录和文件名
BACKUP_DIR="/home/data/backup_mysql"
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.sql"
# 使用mysqldump进行全量备份
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME --skip-lock-tables > $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
# 删除旧的,只保留最近3份
ls -t $BACKUP_DIR/*.gz | tail -n +4 | xargs rm -f
说明:这里编辑后保存名为backup_mysql.sh,要增加相应的权限
chmod 775 backup_mysql.sh
确保脚本正确,先执行脚本测试备份效果:
?
注意:
? 使用linux系统自带的cron作为定时任务执行
crontab -e
?打开定时编辑后输入:
# 每周六1点执行
0 1 * * 6 /home/data/backup_mysql.sh
保存后提示添加成功,如下图:?
?也可以通过crontab -l 查看是否添加成功
crontab -l
?执行后,看到刚添加的任务是成功的,如下图:
?
?说明:
关于linux系统中的 Cron表达式的字段解释如下:
请注意,星期几的取值可以使用数字(0 - 7)或缩写的英文名称(SUN, MON, TUE, WED, THU, FRI, SAT)。