Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> backup конфигов на почту

Архивируем и храним конфиги FreeBSD

Автор: Wic.


Intro
Я думаю, у всех случались ситуации, когда домашний роутер или офисная файлопомойка по причинам старости железа или недостаточной прямоты рук уходили в оффлайн и самое быстрое, что могло их вернуть к жизни, это установка с нуля. И хорошо, когда есть backup, а если его нет? Или же есть, но после того как он был сделан, конфиги были переписаны, и снова нужно что-то допиливать. А может он находится на жестком диске, чье бездыханное тело лежит на вашем столе? Вот и у меня случилась такая ситуация, когда жесткий диск умирает, а backup старый и в мыле пришлось вспоминать все изменения и снова вносить их. По этому после восстановления работы сервера, решил сделать систему, которая будет периодически делать backup и отправлять мне его на почту.

Methods & Instruments
Архивирование
Для начала, нужно все необходимые конфиги собрать в один файл и сжать его. Для чего используется стандартная утилита tar, она упакует конфиги и сожмет их, чтобы места лишнего не занимали.
tar -cj -hP -T ./list -f /tmp/backup.tar.bzip2

То, что мы хотим сжимать указываем в файле list. Убеждаемся в отсутствие лишних переходов на новую строку в конце файла, иначе tar может пытаться их добавить в архив, что у него естественно не получится и он будет грязно ругаться. Себе я решил архивировать такой список:
/etc/
/usr/local/etc/
/usr/src/sys/amd64/conf/MYKERN
/root/

Если есть желание архивировать не всё подряд, то создаем еще один файл, в котором указываем, что не надо архивировать. Назовем этот файл notbackup. К примеру он может содержать:
*passwd
*.default

Тогда команда архивации будет выглядеть немного иначе:
tar -cj -hP -T ./list -X ./notbackup -f /tmp/backup.tar.bzip2

Шифрование
Я думаю, что никто не хочет, чтобы его конфиги путешествовали по всемирной паутине в открытом виде. Даже если они попадут в чужие руки, пусть эти руки натрут мозоли, перед тем как откроют их, если вообще откроют. Для шифрования используем opensll:
openssl enc -rc5-cbc -e -pass file:./pass \
 -in /tmp/backup.tar.bzip2 -out /tmp/bu.rar

где файл pass содержит фразу, по которой происходит шифрование. Это может быть и не фраза, а к примеру первый томик "войны и мир", конечно будет надежней. А вот при распаковке придется вновь предоставить этот томик в той же редакции, и чтобы с исходным совпадал вплоть до бита. Тут каждый ищет компромисс между надежностью и параноей.  А новое название было сделано таким для маскировки под многими любимый архиватор.

Отправка на почту
Тут нужен был простой минимум: отправить полученный файл с одного моего ящика на другой, где они и будут храниться. Хранить я их решил где-нибудь в районе mail.ru. С этим возникло больше всего проблем. Оказалось, чтобы стандартными средствами отправить почту на мой ящик, нужно настроить полноценный почтовый сервер, что на тот момент никак не входило в мои планы. Пришлось искать простую утилиту, которая сможет через smtp отправить мне зашифрованные конфиги. После прочесывания портов обнаружился простой перловский скрипт smtp-cli, который может легко отправить наш файл куда надо. Ставим его:
cd /usr/ports/mail/smtp-cli/
make install clean

Мануалов на него не было. Но зато была встроенная справка (smtp-cli --help), по которой легко пишется команда для отправки.
smtp-cli --host=smtp.ngs.ru --user=ngsmail@ngs.ru \
 --pass=MyMegaPass --from="ngsmail@ngs.ru" --subject="`date`" \
 --to=mien_archive@mail.ru --attach=/tmp/bu.rar

После всех итераций был написан финальный скрипт на отправку:
#!/bin/sh 
sleep 30
tar -cjz -hP -T /root/work/arch/list -f /tmp/backup.tar.bzip2
openssl enc -rc5-cbc -e -pass file:/root/work/arch/pass \
 -in /tmp/backup.tar.bzip2 -out /tmp/bu.rar
rm /tmp/backup.tar.bzip2
smtp-cli --host=smtp.ngs.ru --user=ngsmail@ngs.ru --pass=MyMegaPass \
 --from="ngsmail@ngs.ru" --subject="`date`" \
 --to=mien_archive@mail.ru --attach=/tmp/bu.rar
rm /tmp/bu.rar

А так же простой скрипт на распаковку, который попросит ту волшебную фразу из файла pass, а затем создаст новую папку restore и всё туда извлечет. Идеально, когда при копирование старых файлов поверх новой системы всё снова начинает работать как раньше. Сам скрипт:
#!/bin/sh 
echo "Etner pass for archive"
openssl enc -rc5-cbc -d -pass stdin -in bu.rar -out oldbackup.tar.bzip2
mkdir restore
tar -C restore -xf oldbackup.tar.bzip2
rm oldbackup.tar.bzip2


Cron или "а теперь хочу, чтобы всё работало само"
Желательно, чтобы наши конфиги без нашего ведома собирались, шифровались и шли дружным строем в хранилище. Как часто они это будут делать, каждый выбирает сам, я решил для начала поставить два раза в неделю и после перезагрузки. Вносим изменения в наш любимый крон:
echo "### Config Backup" >> /etc/crontab
echo "@reboot         root    /root/work/arch/arch.sh" >> /etc/crontab
echo "0 4 * 1-6/3 root /root/work/arch/arch.sh" >> /etc/crontab

Так же проверяем, чтобы в переменной PATH находились все необходимые пути. Переменная  PATH в моем конфиге.
PATH=/etc:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

Conclusions
После допилки нескольких косяков и багов, нехитрая система заработала.  Что мне надо на данный момент она делает.
Так же не забываем поставить соответствующие разрешения на файлы, чтобы никто кроме root'a читать/исполнять не мог.

Скрипты для архивирования конфигов и складирования их на почте.
файл скачан размер размещён примечание
scripts.zip
354 0.8kb 2011-10-09 Для самых ленивых - все файлы одним архивом.


References
ports
man tar
man openssl



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=34245.

размещено: 2011-10-09,
последнее обновление: 2011-10-22,
автор: Wic

оценить статью:

PbIXTOP, 2011-10-16 в 18:24:25

Если шифруется openssl почему не использовать асинхронное шифрование?
Тогда можно не боятся даже взлома сервера

fox, 2011-10-21 в 10:56:55

Занятно. Но помоему есть готовые решения типа bacuka или amanda…

Михаил, 2011-10-21 в 15:16:51

Могу ошибиться, но:
1. В tar нельзя использовать одновременно опции -j и -z при архивировании;
2. При указании опции -P разархивирование будет происходить в первоначальное местоположение в независимости от того, что указано в -C.

Wic, 2011-10-22 в 12:54:07

RSA шифрование не стало кушать большие файлы. Другие пока не пробовал.
Всегда есть готовое, но велосипеды вновь и вновь изобретают для собственного развития.
По тару ошибки поправил. Большое спасибо.

AGN, 2011-10-31 в 10:21:32

Сейчас (в 9.0 точно, в 8.2 не уверен) тар умеет XZ сжатие, что для бэкапа конфигов и засыла на почту будет очень кстати...
ключ -J
Я такие скриптики писал ещё на 4.9 для отправки на фтп бекапов небольших БД.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 10 чел.
За последние 30 мин было: 30 человек
За сегодня было
16 показов,
5 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0367 секунд
Из них PHP: 27%; SQL: 73%; Число SQL-запросов: 78 шт.
Исходный размер: 122509; Сжатая: 21265