推荐组合命令(带进度提示 + 日志)
# 先安装 pv(如未安装)
# Ubuntu/Debian: apt install pv
# CentOS/RHEL: yum install pv
------------------------------------------------------------------
# 保存为xx.sh文件
#!/bin/bash
# 统一日期变量,确保所有文件名一致
DATE=$(date +%F)
BACKUP_DIR="/data/backsql"
SQL_FILE="${BACKUP_DIR}/full_backup_${DATE}.sql"
LOG_FILE="${BACKUP_DIR}/backup_${DATE}.log"
# 创建目录(可选,防错)
mkdir -p "$BACKUP_DIR"
echo "开始备份,输出表名进度和数据流..."
# 正确方式:让 mysqldump 的 stdout 流经 pv,stderr 单独记录
mysqldump \
-h 192.168.90.102 \
-u root \
-p'数据库密码' \
--all-databases \
--single-transaction \
--routines \
--triggers \
--events \
--set-gtid-purged=OFF \
--hex-blob \
--opt \
--verbose \
2>"$LOG_FILE" | pv > "$SQL_FILE"
# 检查命令是否成功
if [ ${PIPESTATUS[0]} -eq 0 ] && [ ${PIPESTATUS[1]} -eq 0 ]; then
echo "备份完成!"
echo "SQL 文件: $SQL_FILE"
echo "详细日志: $LOG_FILE"
else
echo "备份失败!请检查日志:$LOG_FILE"
exit 1
fi本文为宁若水!原创文章,转载无需和我联系,但请注明来自[若水]博客 www.lalaya.net
