У меня есть скрипт, который я запускаю по ночам в cron для резервного копирования некоторых баз данных postgres для нескольких хостов в моей сети. У меня есть способ получить предупреждение о том, что скрипт не работает, используя состояние выхода, но он не говорит мне, ПОЧЕМУ не удалось.
Исходя из следующего кода, как я могу зафиксировать любые ошибки, возникающие при запуске сценария, и отправить их мне по электронной почте, чтобы я мог лучше понять, что произошло.
FILEDATE=`date '+%Y-%m-%d'`
BASEDIR=/u1/$1/db_dumps
PGDUMP=/path/to/pg_dump
HOST=$1
DB=$2
if [ $DB == all ]
then
for ALLDUMPS in db1 db2 db3
do
ssh root@$HOST "env PGUSER=pguser PGPASSWORD=pgpassword $PGDUMP -Fc $ALLDUMPS" | pbzip2 > $BASEDIR/$FILEDATE-$HOST-$ALLDUMPS.dump.bz2
if [ $? -ne 0 ]
then mutt -s "dbdumper could not create a backup of $ALLDUMP from $HOST" me@myemail.com < /dev/null
fi
done
else
ssh root@$HOST "env PGUSER=pguser PGPASSWORD=pgpassword $PGDUMP -Fc $DB" | pbzip2 > $BASEDIR/$FILEDATE-$HOST-$DB.dump.bz2
if [ $? -ne 0 ]
then mutt -s "dbdumper failed to create a backup of $DB from $HOST" me@myemail.com < /dev/null
fi
fi