一、创建存储脚本的文件夹
创建文件夹,我的脚本放在/root/dbback/mysql
mkdir ...
cd /root/dbback/mysql
二、编写脚本
vi backup_mysql.sh
复制脚本内容
DB_USER="填写用户名"
DB_PASSWORD="填写密码"
DB_NAME="数据库名称" # 如果需要备份所有数据库,删除这一行
BACKUP_DIR="/dbback/mysql/backup" # 备份文件存储的目录,可自定义
DATE=$(date +%F_%H-%M-%S) # 备份文件的时间戳
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 执行备份
if [ -z "$DB_NAME" ]; then
# 备份所有数据库,此处配置mysqldump所在路径
/usr/local/mysql/bin/mysqldump -u "$DB_USER" -p"$DB_PASSWORD" --all-databases | gzip > "$BACKUP_DIR/all_databases_$DATE.sql.gz"
else
# 备份特定数据库,此处配置mysqldump所在路径
/usr/local/mysql/bin/mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" | gzip > "$BACKUP_DIR/$DB_NAME_$DATE.sql.gz"
fi
# 输出备份状态
if [ $? -eq 0 ]; then
echo "备份成功: $BACKUP_DIR/${DB_NAME:-all_databases}_$DATE.sql.gz"
else
echo "备份失败"
fi
三、设置定时任务执行脚本
设置定时指令
crontab -e
复制以下内容:按需调整,我设置的每日凌晨2点
0 2 * * * /bin/bash /root/dbback/mysql/backup_mysql.sh >> /root/dbback/mysql/backup.log 2>&1
四、查看是否添加成功
crontab -l
添加成功界面
五、自行设置表达式进行测试脚本是否正常执行即可