Skip to content

Instantly share code, notes, and snippets.

@vgrish
Created November 20, 2013 06:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vgrish/7558534 to your computer and use it in GitHub Desktop.
Save vgrish/7558534 to your computer and use it in GitHub Desktop.
#!/bin/bash
USER=root
PASSWORD=111111
BACKUP=/home/backup
OLD=7 # Сколько дней хранить бэкапы
# Создаем директорию для сегодняшнего бэкапа
DIR=$BACKUP/`date '+%Y-%m-%d'`
mkdir $DIR
cd $DIR
# Сохраняем базы данных
for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | grep -v information_schema | grep -v Database`;
do
# Не обрабатываем служебные БД и все БД сайтов modx-test.com, у них имена типа s1234.
if [[ "$i" != "mysql" && "$i" != "performance_schema" && ! "$i" =~ ^s[0-9] ]]
then mysqldump --skip-lock-tables -u$USER -p$PASSWORD --add-drop-table $i | bzip2 -c > www-$i.sql.zip;
fi
done
# Сохраняем системные директории
zip -r sys-etc.zip /etc/
zip -r sys-log.zip /var/log/
zip -r sys-root.zip /root/
# Сохраняем сайты
for i in `ls /var/www/`;
do
zip -r www-$i.zip /var/www/$i --exclude=cache/*
done
# Чистим старые логи и бэкапы
find /var/log -type f \( -name "*.gz" -o -name "*.1*" \) -exec rm '{}' \;
# Если эта команда верно показывает старые директории после бэкапа - расскомментируйте следующую
find $BACKUP/* -maxdepth 0 -ctime $OLD -exec echo '{}' \;
# Эта команда удаляет старые резервные копии, и я ее закомментировал на всякий случай.
#find $BACKUP/* -maxdepth 0 -ctime $OLD -exec rm -r '{}' \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment