- A+
所属分类:Shell
#!/bin/bash
#适用于 CentOS 系统
# MySQL用户名
MYSQLUSER="root"
# MySQL密码
MYSQLPASS="xxx.com"
# MySQL主机地址
MYSQLHOST="localhost"
# 数据库名称
DATABASENAME="database_name"
# 备份目录
BACKUPDIR="/data/backup/mysql"
# 获取当前日期
DATE=$(date "+%Y%m%d")
# 备份文件名格式
BACKUPFILE="${DATABASENAME}-${DATE}.sql.gz"
# 导出并压缩数据库
mysqldump -u "$MYSQLUSER" -h "$MYSQLHOST" -p"$MYSQLPASS" "$DATABASENAME" | gzip > "$BACKUPDIR/$BACKUPFILE"
# 查找并删除30天前的旧备份
find "$BACKUPDIR" -type f -name "*.gz" -mtime +30 -exec rm {} \;
# 可选:验证备份文件是否存在
if [ -f "$BACKUPDIR/$BACKUPFILE" ]; then
echo "备份成功创建:$BACKUPDIR/$BACKUPFILE"
else
echo "备份失败"
fi
