буквы, слова, предложения, картинки, фото

Бэкап данных с роутера на gmail


Рубрика: Программы

Начал у меня "повизгивать" внешний винт на роутере. Когда часто, когда не очень. Скоростные показатели на высоте, бэдов тоже не выявлено. Вот повизгивает и все. Меня это конечно беспокоит. Винт-то на гарантии, за железку не страшно, но вот за информацию на нем как-то напряжно. Важная инфа это только эксперименты в виде маленького сайта и настроек веб-интерфейсов сервисов роутера "под себя". Начал я думать, как бы мне обезопасить инфу на винте.  Бэкап на домашний комп не вариант - включен он не всегда. Можно конечно сбрасывать на фтп, благо есть у меня пара круглосуточных серверов в городской локалке, но я им тоже не очень доверяю, т.к. там пока нет рейда. Думал я, думал... И тут я посмотрел на свою гмыловскую почту - 7,5 гигов свободного места! И оно простаивает почти без дела! Непорядок, подумал я стал думать, как реализовать бэкап на Gmail почту.

В результате поисков был обнаружен консольный почтовый клиент sendEmail, написанный на Perl'e. Скрипт весит всего 78 Kb и умеет работать через TLS - как раз для Gmail'a. Упаковкой данных для отправки занимается p7zip. Ну и все это засунуто в небольшой скриптик, который каждый день запускается cron'ом.

Немного подробнее, о том, как все сделано, по пунктам.

0. Если не установлен пакет 7zip, то устанавливаем его:

ipkg install p7zip

1.  Устанавливаем (если не установлены) пакеты для поддержки SSL в перле - perl-io-socket-ssl и perl-net-ssleay:

ipkg install perl-io-socket-ssl

perl-net-ssleay установится автоматом, как зависимость.

2. В файле /opt/lib/perl5/5.8.8/mipsel-linux/Config.pm комментируем одну строчку и добавляем новую (предотвращаем ошибку):

# libpth => undef,
libpth => '/usr/lib /lib /opt/lib /opt/usr/lib',

3. Т.к. мой скрипт использует смс уведомление об ошибках упаковки либо отправки бэкапа, убеждаемся, что установлен и настроен скрипт router2sms [python].

4. Скачиваем архив со скриптом и распаковываем его в /opt/share/:

cd /opt/share
wget http://mbgblog.ru/uploads/backup.tar.gz
tar -xf  backup.tar.gz

Проверяем права доступа для файлов backup.sh и sendEmail - они у нас выполняемые.

5. Настраиваем скрипт под свои нужды. В файле arch прописываем путь к папкам, которые подлежат архивации, по умолчанию это /opt/share/www и /opt/var/lib/mysql. Файл excl содержит имена файлов, которые в архив включать ненужно. Логи упаковки в сокращенном виде пишутся в файл msg - который и будет телом отправляемого письма. Файл backup.sh настраиваем так:

MAIL="useremail@gmail.com" # Ваш Gmail-аккаунт
THEME="Backup " # Начало темы письма
PASSW="userpassword" # Пароль Gmail-аккаунта
DATA=`date "+%d.%m.%Y-%H.%M.%S"` # Это по желанию - для генерации в имени архива даты и времени его создания
PHONE="7phonenumber" # Ваш номер сотового, 7 - обязательно

6. Копируем файл backup.sh в каталог /opt/etc/cron.daily - этим мы обеспечим его ежедневное выполнение. Если ежедневный бэкап для Вас это слишком часто, то кладем скрипт в /opt/etc/cron.weekly. Думаю бэкап еще реже будет неуместен smile

Вот в принципе и все. Можно запустить скрипт и проверить почтовый ящик.

Метки: , ,
mbgПросмотров: 9654Обсудить
Оставьте комментарий!