Моя библиотека - социальная сеть любителей книг

Все знают о том, как важно резевное копирование данных. Важно не забывать копировать данные со своего сайта, т.к. и у крупных хостеров случаются аварии. А бэкап хостера не всегда спасает, поэтому каждый владелец сайта должен взять за правило: регулярно (в зависимости от частоты одновления сайта) создавать резервную копию всех данных своего сайта.

Занятие это не сложное, но нудное. Однако, его можно легко автоматизировать. Что нам понадобиться:

  • Наличие на сервере планировщика Cron
  • Небольшие знания команд Linux
  • Желательно (но не обязательно) знание PHP
  • и минут 15 времени =)

#!/bin/sh
time=$(date +%d_%m_%Y)
mkdir /home/larin/tmp_$time/
cd /home/larin/tmp_$time/
mysqldump –user=larin –password=****** database_name > backup_sql_$time.sql
tar -zcvf www_$time.tgz /var/www/your-site.ru > /dev/null
cd ..
tar -zcvf backup.tgz tmp_$time > /dev/null
rm -rf tmp_$time/

Таким не сложным скриптом мы создали архив содержащий musql-дамп БД и все файлы сайта.

Но файлы по прежнему на сервере… как нам их получить? Ответ очевиден: отправим себе на почту (многие используют почту от Google для хранения бэкапов).

В наш bash-скриптик добавим еще пару строк:

php sendbackup.php
rm backup.tgz

Затем берем любую библиотеку для отправки почты на PHP, например, Email with Attachment и на основе этой библиотеки делаем отправку файла на мыло:

Содержание файла sendbackup.php:

<?php
include(”sendmail.class.php”);
$mail = new sendmail();
$mail->SetCharSet(’UTF-8′);
$mail->from(’mailbot’, ‘mailbot@ваш_домен’);
$mail->to(’адрес@вашего.ящика’);
$mail->subject(’Резервная копия сайта от ‘ . date(’d-m-Y’));
$mail->text(’=)’);
$mail->attachment(’backup.tgz’);
$mail->send();
?>

Вот и все, теперь ставим наш bash-скрипт на выполнение в Cron, например, 1 раз в неделю ([00 23 * * 7] - в 23:00 воскресенье) и спим спокойно, не боясь потерять данные.



Комментарии (11) на запись «Резервное копирование»

  1. Patrick MonsterID Icon Patrick | 03.10.2007 в 16:46

    man SendMail !!! php тут фообще не надо!!!

  2. admin MonsterID Icon admin | 03.10.2007 в 16:56

    Андрей, возможно это действительно так.
    Но как я тебе уже сказал, вначале покажи мне работающий пример с использованием SendMail… =) А данный пример уже работает и успешно.

  3. Александр MonsterID Icon Александр | 28.10.2007 в 01:35

    Мне всегда было интересно одно, как вы отправите по почте допустим 100мб, ограничение размера почтового сообщения же стоит, если я не ошибаюсь

  4. admin MonsterID Icon admin | 28.10.2007 в 16:01

    Мне всегда было интересно одно, как вы отправите по почте допустим 100мб, ограничение размера почтового сообщения же стоит, если я не ошибаюсь

    Кто вам это сказал? У кого стоит? Вы уверены что стоит? =)
    И даже если стоит, то кто мешает вам разбить архив на несколько частей и отправить несколькими письмами?

  5. Anton MonsterID Icon Anton | 30.10.2007 в 00:25

    Кидать резервные копии на почту как-то несерьезно. :)
    Надо либо на другой свой сервер, либо на сервера специальных файловых хранилищ (за деньги или бесплатно): Онлайн бэкап сервера

  6. admin MonsterID Icon admin | 30.10.2007 в 00:41

    Кидать резервные копии на почту как-то несерьезно. :)

    Согласен. Этот спсоб я написал для примера, как наиболее простой.
    Но с другой стороны на GMail, который дает 2 Гб пространства кидать можно. :)
    Я кидаю на второй винт на серваке, и переодически сливаю архивы к себе на винт (так точно спокойно, особенно после записи на болванку)

    А вот доверять свои данные каким-то левым серверам, из вашего поста я бы не стал.

  7. Александр MonsterID Icon Александр | 30.10.2007 в 19:37

    Уверен, вчера только читал, ограничение на входящие и исходящие письма (по размеру письма) в Gmail стоит 20Mb. Это в “Помощи” gmail’а нашел.

    Ну разбивать конечно никто не мешал, но это лишний геморой тоже. А на свой хард-драйв скачивать автоматизированно - это вариант.

  8. admin MonsterID Icon admin | 30.10.2007 в 20:00

    Александр:
    Уверен, вчера только читал, ограничение на входящие и исходящие письма (по размеру письма) в Gmail стоит 20Mb. Это в “Помощи” gmail’а нашел.

    Спасибо, не знал. Хотя для резерва, например, этого блога архива на 20Мб хватит еще на долго )))

    Александр:
    Ну разбивать конечно никто не мешал, но это лишний геморой тоже. А на свой хард-драйв скачивать автоматизированно - это вариант.

    Именно так вариант я и предпочитаю, для больших проектов. Например, резервирование проекта Моя библиотека происходит именно так.

  9. css master MonsterID Icon css master | 09.12.2007 в 19:38

    >sendbackup.php:

    Я вот этот скрипт весь день искал. К сожалению, не силен в пхп, а по работе понадобилось. А тут нашел - что не может не радовать :) Спасибо за любопытную статью!

  10. admin MonsterID Icon admin | 09.12.2007 в 21:46

    @css master
    Пожалуйста =)
    Если возникнут проблемы со скриптом - пишите, помогу.

  11. mix MonsterID Icon mix | 28.05.2009 в 18:46

    Вот интересный сайт по теме http://cerber.synkmaster.ru

Оставить комментарий


Copyright, 1983 – 2010