Bash 脚本备份完整 MySQL

问题描述 投票:0回答:1

下一个脚本显然执行成功,因为我得到了备份,但是当我修改一些参数以检查 mysqldump 的输出时,始终发送一封电子邮件,其中包含消息“El respaldo diario de la base de datos se ha realizado Correctamente”(备份已执行)成功)

`#!/bin/bash -x
SERVIDOR="$(hostname)"
PASSWORD='PASSWORD'
FECHA=`/bin/date +\%Y\%m\%d`
[email protected]
STATUSFILE="/tmp/statusfile.$FECHA"

echo "Backup report from $FECHA" > $STATUSFILE
mysqldump  --databases prueba --no-tablespaces --skip-comments --single-transaction --default-character-set=UTF8 --insert-ignore --complete-insert  --add-locks --triggers --routines --events --disable-keys --lock-tables=false --set-gtid-purged=OFF --user=backup -p$PASSWORD > /tmp/$SERVIDOR-DBFLBASEPRUEBA-$FECHA.sql
echo "Muestra la salida de mysqldump: $?" >> $STATUSFILE

if [ $? -eq 0 ]
then
   echo "El respaldo diario de la base de datos "prueba" en el $SERVIDOR se ha realizado correctamente" >> $STATUSFILE
  else
   echo "El respaldo diario de la base de datos "prueba" en el $SERVIDOR no se ha realizado correctamente" >> $STATUSFILE
  fi

gzip -9 /tmp/$SERVIDOR-DBFLBASEPRUEBA-$FECHA.sql`

我用--no-tablespace执行脚本,mysqldump的值为2,但消息说备份执行成功。您能帮我了解检测问题的正确方法吗?

mysql linux bash backup
1个回答
0
投票

基本上是什么'F. Hauri`在上面的评论中说道。

#!/bin/bash -x
SERVIDOR="$(hostname)"
PASSWORD='PASSWORD'
FECHA=$(/bin/date +\%Y\%m\%d)
[email protected]
STATUSFILE="/tmp/statusfile.$FECHA"

echo "Backup report from $FECHA" > "$STATUSFILE"
mysqldump  --databases prueba --no-tablespaces --skip-comments --single-transaction --default-character-set=UTF8 --insert-ignore --complete-insert  --add-locks --triggers --routines --events --disable-keys --lock-tables=false --set-gtid-purged=OFF --user=backup -p$PASSWORD > /tmp/"$SERVIDOR"-DBFLBASEPRUEBA-"$FECHA".sql
RESULTADO=$?
echo "Muestra la salida de mysqldump: ${RESULTADO}" >> "$STATUSFILE"

if [ ${RESULTADO} -eq 0 ]
then
   echo "El respaldo diario de la base de datos 'prueba' en el $SERVIDOR se ha realizado correctamente" >> "$STATUSFILE"
else
   echo "El respaldo diario de la base de datos 'prueba' en el $SERVIDOR no se ha realizado correctamente" >> "$STATUSFILE"
fi
gzip -9 /tmp/"$SERVIDOR"-DBFLBASEPRUEBA-"$FECHA".sql

添加了一些更小的清理,而且你似乎没有在任何地方使用

$NOTIFICADOS

© www.soinside.com 2019 - 2024. All rights reserved.