[Bash shell] 纯文本查看 复制代码 #!/bin/bash
# 备份 MySQL 数据库的脚本
#进入到备份文件目录
cd /home/backup/database/mysql/crontab_backup/shop_i3sh_com
# 定义变量
DB_USER="root" # MySQL 用户名
DB_PASS="Q4Wz425jgy" # MySQL 密码(建议使用root不会报错)
DB_NAME="shop" # 要备份的数据库名
BACKUP_DIR="/home/backup/mysql/shop_i3sh_com/" # 备份目录
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
#进入到备份文件目录
cd $BACKUP_DIR
# 生成日期
DATE=$(date +'%Y-%m-%d-%H-%M-%S'_mysql_data)
# 运行备份命令 使用root备份 后面带参数锁定数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME >$BACKUP_DIR$DB_NAME-$DATE.sql --skip-lock-tables
#进入到备份文件目录
#cd /
#cd /home/backup/mysql/shop_i3sh_com/
#压缩备份文件
tar zcvf $BACKUP_DIR$DB_NAME-$DATE.sql.tar.gz $BACKUP_DIR$DB_NAME-$DATE.sql
#删除临时SQL文件
rm -f $BACKUP_DIR$DB_NAME-$DATE.sql
# 输出备份结果
echo "备份完成:$BACKUP_DIR$DB_NAME-$DATE.sql"
#删除10天前的备份文件-如果要删文件,又删出文件夹,那么就不用-type 参数a
find . -mtime +10 -type f -name "*" -exec \rm -f {} \;
配合宝塔计划,在计划里面黏贴修改好的脚本 ,即可实现自动备份数据库。防止误操作
备份 MySQL 指定数据库并删除10天前的备份文件
|