Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Автобекапер для сервера


Автор: fMichail 18.3.2014, 11:39
Здравствуйте!

Есть сервер Linux, вроде убунту, root доступ по SSH. 

Обьемы данных - около 20 сайтов, 5Гб файлов, 150 Мб базы данных.

Нужно чтобы все это автоматически бекапилось, и либо где-то сохранялось, либо высылалось на почту. Как можно сделать?
Кто может помочь за денюшку?

Автор: _zorn_ 19.3.2014, 03:07
Для себя делал такой скриптик
Код
#!/bin/sh

BASE_DIR=/home/backup
WWW_DIR=/var/www/html
MY_PASS='MySQL_root_password'
if [ -z "$1" ]
then
    BACKUP_DIR=$BASE_DIR/`date +%F`
else
    BACKUP_DIR=$BASE_DIR/`date +'%F.%H.%m.%S'`_${1// /_}
fi
mkdir -p $BACKUP_DIR

cd $WWW_DIR
for DIR in `ls $WWW_DIR`
do
  tar cjf www.$DIR.tar.bz2 $DIR
  mv www.$DIR.tar.bz2 $BACKUP_DIR/
done

cd $BACKUP_DIR
DATABASES=`echo 'SHOW DATABASES' | mysql -u root -p$MY_PASS -N`
for DB in $DATABASES
do
    [ "$DB" = "information_schema" ] && continue
    mysqldump --ignore-table=mysql.event -uroot -p$MY_PASS $DB > ${DB}.sql
done

tar cjf db.tar.bz2 *.sql
rm -f *.sql

if [ `date --date="7 days ago" +%d` = "01" ]
then
    rm -rf $BASE_DIR/`date --date="1 year ago 7 days ago" +%F`
else
    rm -rf $BASE_DIR/`date --date="7 days ago" +%F`
fi

Бекапы хранятся неделю. Плюс оставляется бекап 1 числа месяца в течении года.
Место можно рассчитать как размер_одного*(12+7) +/- с условием изменения размера.
Еще для всех баз один архив создается. Можно разделить так же как с файлами.

Автор: ИшТы 8.11.2014, 01:04
http://www.tech-notes.net/backup-website-with-upload-to-dropbox/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)