42 lines
1.1 KiB
Bash
Executable file
42 lines
1.1 KiB
Bash
Executable file
MYSQLDIR="/var/lib/backups/mysql"
|
|
MYSQLOPTIONFILE="/root/.my.cnf"
|
|
DAYS="30"
|
|
|
|
set -e
|
|
|
|
umask 0077
|
|
|
|
if ! pgrep mysqld > /dev/null ; then
|
|
echo "no mysqld running!"
|
|
exit 0
|
|
fi
|
|
mkdir -p "$MYSQLDIR"
|
|
for db in $(mysql "--defaults-file=$MYSQLOPTIONFILE" -u backupuser -s -N -e 'SHOW DATABASES;'); do
|
|
if [[ "$db" != "information_schema" ]] ; then
|
|
#echo -e "==> Backing up database $db"
|
|
BACKEDUP="$BACKEDUP $db"
|
|
file=$MYSQLDIR/mysqldump-$db-$(date +%F_%H-%M).sql
|
|
mysqldump "--defaults-file=$MYSQLOPTIONFILE" -u backupuser --opt --single-transaction --databases "$db" | bzip2 > "$file.bz2"
|
|
fi
|
|
done
|
|
|
|
count=0
|
|
#echo -e "\n==> Searching $MYSQLDIR for backups older than $DAYS days..."
|
|
for file in $(find "$MYSQLDIR" -type f -mtime "+$DAYS"); do
|
|
#echo "rm $file"
|
|
DELETED="$DELETED $(basename "$file")"
|
|
rm "$file"
|
|
count=$(($count+1))
|
|
done
|
|
if [[ -n "$BACKEDUP" ]] ; then
|
|
echo "Backed up databases: $BACKEDUP"
|
|
else
|
|
echo "no database backed up"
|
|
fi
|
|
|
|
if [[ -n "$DELETED" ]] ; then
|
|
echo "<== End: $count backups removed: ${DELETED}"
|
|
else
|
|
echo "No old backups removed!"
|
|
fi
|
|
|