Na verdade, funcionou quando eu usei
"$DB"_"$DATE".sql
em vez de
$DB_$DATE.sql.
Alguém pode explicar por quê?
Estou escrevendo o script para obter o sql dump & fechando-o.
#!/bin/sh
DBUSERID="root"
DBPASSWORD="XXXXXXXX"
BACKUP_DIR="$HOME/daily_sql_backups"
DATE='date +%Y_%m_%d_%H_%M_%S'
cd $BACKUP_DIR
mysql -u$DBUSERID -p$DBPASSWORD --socket=/data/mysql/mysql.sock -e 'show databases' | grep abcd >MICRO_SERVICES.txt
sed -e '/^abcd_prod$/d' MICRO_SERVICES.txt > MICRO_SERVICES_DB.txt
cat MICRO_SERVICES_DB.txt | while read line
do
DB=$line
mysqldump --opt --user=${DBUSERID} --password=${DBPASSWORD} --socket=/data/mysql/mysql.sock ${DB} > $DB_$DATE.sql 2> "$DB"_"$DATE".err
gzip $DB_$DATE.sql
status=$?
err='cat "$DB"_"$DATE".err |wc -l'
DATE_COMPLETED=$(date "+%F # %T")
if [ $err -eq 0 -a $status -eq 0 ]
then
echo "$DATE_COMPLETED : DB backup success" >>/backup_logs/"$DB"_backup-$(date +%b-%Y).txt
echo "$DATE_COMPLETED : DB backup success"
else
echo "$DATE_COMPLETED : DB backup FAILURE" >> /backup_logs/"$DB"_backup-error-$(date +%b-%Y).txt
cat "$DB"_"$DATE".err >>/tmp/"$DB"_backup-error-$(date +%b-%Y).txt
cat "$DB"_"$DATE".err |mail -s "$DB: dump failure" [email protected]
fi
sleep 1m
done
Estou recebendo o erro "gzip: /home/XXXXXX/daily_sql_backups/2017_12_07_14_28_02.sql.gz já existe; não substituído" E estou recebendo a falha de despejo de erro. Alguém poderia por favor me avisar onde eu estou fazendo errado