1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#!/bin/sh
cat < bases.txt | grep -v "#" | while read ligne
do
if [ "$ligne" = "" ]; then break; fi
set -- $ligne
HOST=$1
DBNAME=$2
USER=$3
PASSWD=$4
RETENTION=$5
FILE=$6
echo -n "backup base $DBNAME"
# Rotate files
for ((I=$((RETENTION-1));I>=0;I--)); do
if [ -f "data/${FILE}.gz.${I}" ]; then
mv "data/${FILE}.gz.${I}" "data/${FILE}.gz.$((I+1))"
fi
done
if [ -f "data/${FILE}" ]; then
gzip "data/${FILE}"
mv "data/${FILE}.gz" "data/${FILE}.gz.0"
fi
if [ -f "data/${FILE}.gz.$((RETENTION))" ]; then
rm -f "data/${FILE}.gz.$((RETENTION))"
fi
# Save database
ssh $HOST "mysqldump -u${USER} -p${PASSWD} -e -q -Q --add-drop-table ${DBNAME}" 0>/dev/null >data/$FILE
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
echo -e "\t[\\033[1;32m OK \\033[0;39m]"
else
echo -e "\t[\\033[1;31m FAILED \\033[0;39m]"
fi
done |