Простейший бэкап конфигов FreeBSD с отправкой архива на почту

*nix*
Для небольшой локальной сети был установлен NAS под FreeBSD и, естественно, в конце концов встал вопрос бэкапа его конфигурации на случай краха системы. Ничего громоздкого наворачивать не хотелось, тем более, что скорость восстановления в случае чего пока не критична. Поэтому было принято решение написать простейший скриптик под себя, каждую ночь складывающий в архив необходимые файлы. А в качестве внешнего хранилища был выбран почтовый сервер. Этим скриптом и хочу поделиться с вами.

Оговорюсь сразу. Кому этот способ не подойдёт:
  • заядлым параноикам
  • желающим в день Х восстановить работоспособность сервера за полчаса
  • у кого размер архива будет превышать 25 Мб. (в случае с gmail)
Пост ориентирован на таких же новичков, как и я. Описал всё по возможности максимально подробно.

Итак, имеем Network Access Server на FreeBSD, так же исполняющий роль Web-сервера для парочки сайтов и одного форума.
В моём случае бэкапится база MySQL, всё содержимое папочек /etc, /usr/local/etc (дабы не переписывать путь к каждому конфигу отдельно), конфигурация ядра, cron и директория с сайтами.

Начнём с самого сложного. Дамп базы MySQL осуществляем стандартной утилиткой mysqldump. Специально для неё создадим нового sql-пользователя «backup», имеющего минимум привелегий, достаточных для нашей задумки. Я выставил следующие: SELECT, FILE, SHOW DATABASES, LOCK TABLES, SHOW VIEW. Процесс создания пользователя описывать не буду ввиду разнообразия вариантов, а если что постараюсь ответить на все вопросы в комментариях.

Дамп базы в файл /var/tmp/all.sql осуществляется командой:

/usr/local/bin/mysqldump --opt -Aau backup -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_BACKUP > /var/tmp/all.sql

В принципе, всё должно получиться с первого раза. Дальше — проще.
Да не заминусуют меня заядлые линуксоиды, но в качестве архиватора я выбрал RAR, поскольку получившийся архив хотелось для пущей надёжности ещё и запаролить, а tar этого с ходу не умеет.
Установка RAR тривиальна:

cd /usr/ports/archivers/rar
make install clean

После успешной инсталляции, читаем мануал, подбираем необходимые ключи, указываем через пробел пути к файлам и папкам и проверяем работоспособность.
В моём случае, команда

/usr/local/bin/rar a -ow -inul -pПАРОЛЬ_НА_АРХИВ /var/tmp/server_backup.rar /var/tmp/all.sql /usr/src/sys/i386/conf/kernel /var/cron/tabs /etc /usr/local/etc /usr/local/www/data

создала архив /var/tmp/server_backup.rar, содержащий все перечисленные файлы и директории. Обратите внимание, если указывать пути к директориям со слэшем в конце, то поддиректории архивироваться не будут, а только файлы из корня указанной папки!

Далее перекодируем получившийся архив в понятный почтовикам вид и отправляем на почту с темой «server backup»

/usr/bin/uuencode '/var/tmp/server_backup.rar' server_backup.rar | mail -s 'server backup' 'ПОЧТА@gmail.com'

Естественно, отправку на почту можно заменить сливанием бэкапа на FTP или… куда угодно — смотря что есть в распоряжении :)
После успешной отправки, удалим наши архивы

rm /var/tmp/server_backup.rar
rm /var/tmp/all.sql

Ну и, наконец, весь скрипт в сборе выглядит так:

#!/bin/sh
/usr/local/bin/mysqldump --opt -Aau backup -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_BACKUP > /var/tmp/all.sql
/usr/local/bin/rar a -ow -inul -pПАРОЛЬ_НА_АРХИВ /var/tmp/server_backup.rar /var/tmp/all.sql /usr/src/sys/i386/conf/kernel /var/cron/tabs /etc /usr/local/etc /usr/local/www/data
/usr/bin/uuencode '/var/tmp/server_backup.rar' server_backup.rar | mail -s 'server backup' 'ПОЧТА@gmail.com'
rm /var/tmp/server_backup.rar
rm /var/tmp/all.sql

Сохраняем его любым известным нам способом как, например, /home/%username%/backup.sh (%username% — ваше имя в системе) и даём необходимые права

chmod 750 /home/%username%/backup.sh

После этого скрипт можно запустить и убедиться в работоспособности. Если что-то пойдёт не так, для дебага подойдут записи в /val/log/messages и /var/log/maillog

Осталось добавить задачу выполнения скрипта в cron. Запускаем crontab -e и, c помощью vi, вписываем строку

1 4 * * * /home/%username%/backup.sh

не забыв в конце нажать Enter (в самом конце файла должна быть пустая строка).
Для перехода в режим редактирования в Vi необходимо нажать i. Для выхода с сохранением файла Esc и :wq
С такой записью скрипт будет выполняться каждую ночь в 4 часа 1 минуту. Просмотреть все записи crontab

crontab -l

Так же хочу обратить внимание на то, что имена файлов и каталогов в архиве не шифруются! Открыв архив, например, в WinRAR вы сможете просмотреть все папки и их содержимое (структура каталогов сохраняется) однако не сможете открыть файлы не введя пароль.

Собственно, всё. Совершенству нет предела, так что с удовольствием выслушаю все предложения, пожелания и особенно критику.
Удачи и пусть полученный архив вам не пригождается ;)
via dobryj.ru
+22
30 сентября 2010, 21:57
58
seventh 15,3 G+

комментарии (92)

0
youROCK #
Ещё, ИМХО, надо делать бэкап настроек в /usr/ports — тех файлов, что получаются после make config, для «экспресс-восстановления» системы.
+2
WiTPHG #
Эти файлы лежат в /var/db/ports
+1
youROCK #
Значит, нужно добавить /var/db/ports ;)
+2
nixil #
я бы еще дату в имя архива добавил и переменные ввел.
+1
seventh #
Продемонстрируете? :)
+2
kegf #
/usr/local/bin/rar a -ow -inul -pПАРОЛЬ_НА_АРХИВ /var/tmp/server_backup_`date "+%Y-%m-%d"`.rar
кавычки — те, которые на клавише «ё»
0
questor #
Вот так у меня (отрывок из мастехостовского скрипта):

BackupDirectory="/home/u12345/_backup/"
SourcePrefix="/home/u12345/"
TargetDirectory="/home/u12345/_logs/"

/usr/bin/tar -czvf ${BackupDirectory}www.questor.ru-www-`date "+%Y-%m-%d"`.tar.gz /home/u12345/questor.ru/www
/usr/local/bin/mysqldump --host=u12345.mysql.masterhost.ru --password=123456789 --user=u12345 u12345 | /usr/bin/gzip -c > ${BackupDirectory}questor.ru-sql-`date "+%Y-%m-%d"`.gz
mv -f ${SourcePrefix}questor.ru/logs/*.gz ${TargetDirectory}
+1
amarao #
Вот именно за помойку в /usr/local я и не люблю бздю.
+1
WiTPHG #
Это не минус, а плюс. А вот наличие ограничения на количество вхождений пользователя в группы в числе 16 было для меня сюрпризом в свое время. По моему с 7 версии это ограничение сняли, а до этого приходилось исправлять исходники.
–1
dkr6 #
Помойка, это всегда минус :)

А вот идеологию, по которой что-то в /etc, а что-то в /usr/local/etc,
я так до конца и не понял по сей день…

Разобраться и запомнить — не долго, а вот понять… :)
+3
kegf #
все, что ставится из портов/пакетов — в /usr/local/etc
все, что в базовой системе — в /etc

стартовые скрипты (rc.d) так же
че непонятного-то? гораздо проще че init
–5
dkr6 #
Вас обманули…

После установки системы, до первой установки чего-либо из портов,
в /usr/local/etc уже не пусто (как минимум, на тот момент, когда я последний раз ставил FreeBSD)…
А это было, судя по вашему профилю, когда вы в первый класс пошли ;)

Мне давали более другие варианты объяснений,
но и они не выдержали испытания практикой…

Ну да ладно, не будем обсуждать этот вопрос,
потому как кто-то слишком нервно реагирует…

P.S.
Не воспринимайте как наезд, молодость — не недостаток.
И вам только предстоит узнать то, что я уже начинаю забывать ;)
+5
OutPunk #
Базовая система и то, что устанавливается вместе с системой, все-таки несколько разные вещи. Не находите?
–6
dkr6 #
Ссылочку на точное и четкое определение базовой системы дадите?
Думаю — нет.
Точно так же, у нас с вами могут не совпадать мнения по поводу того, что считать системным сервисом, а что пользовательским приложением.

В свое время я начинал на BSDI, потом на FreeBSD…
Потом перешел на Linux…
Я за ранее знаю все аргументы, которые вы готовы привести…
Не нужно…

Используйте то, что вам удобнее…
0
OutPunk #
Вы что-нибудь слышали о GNU?
–3
dkr6 #
Вы хотите об этом поговорить?
+4
OutPunk #
Боюсь, что нам с вами не о чем говорить.
+2
FSA #
www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/makeworld.html
Вот то, что входит в «мир» и хратит конфиги в /etc. Всё что поставили из портов в /usr/local/etc. Если снести папку /usr/local, получим чистую базовую систему. А вот в линуксе как раз бардак. Всё скидано в одну кучу. Очень неудобно копаться в папке /etc в поисках, например, конфига ligttpd.
–2
dkr6 #
Спасибо за попытку, но…
Может быть я невнимательно читал, но списка того, что входит в «мир» так и не нашел…
О существовании handbook я знаю, приходилось черпать из нее :)
Вариант «снести папку /usr/local» и получить чистую базовую систему действительно выглядит интересным…

Не стоит утруждать себя поисками более детального описания базовой системы, я сам могу.

> А вот в линуксе как раз бардак. Всё скидано в одну кучу.
Просто у вас две такие же кучи… ;)

Еще раз спасибо за попытку ответить на мой вопрос :)
0
FSA #
Список всего того, что в базовую систему входит можно посмотреть в каталоге с исходниками /usr/src.
Вообще-то на сервере в /usr/local/etc довольно чисто. На домашней машинке побольше, но не столько, сколько навалено на ноуте с Ubuntu.
+5
Lamo #
>А это было, судя по вашему профилю, когда вы в первый класс пошли ;)
Олдфаг в треде! Все в машину.

По существу:
Если ставить FreeBSD в минимальной конфигурации — тупо ядро и необходимые для запуска вещи — будет пустой /usr/local/etc
После первого выполнения portsnap -fetch и portsnap -extract — начинает заполняться всяким разным.
А про помойку — каждый кулик свое болото хвалит. И на мой, БСДшный взгляд, все линуксы — та еще помойка в плане размещения файлов. Дело привычки, не более.
0
Lamo #
Дополнение для зануд и придир: «необходимые для запуска вещи» — то, что в настройке кастомной инсталляции имеет приписку "(required)". И да, src туда не входит.
–3
dkr6 #
> А про помойку — каждый кулик свое болото хвалит.
Хвалить свое болото и хаять чужое болото — две большие разницы (или 4 маленькие)…

Так как я имею продолжительный опыт эксплуатации не только Linux (не менее 5 дистрибутивов), но и BSD с Solaris, а так же Windows до Vista (не включая), то любое болото могу считать своим :)
На этом основании могу рассуждать как о достоинствах, так и о недостатках…

Ну и дело привычки, да, согласен…
+3
Lamo #
>Так как я имею продолжительный опыт эксплуатации
>Продолжительный опыт
Количество != качество. Какого рода опыт? Что делали, какие проекты, масштабы, глобальность? У меня есть знакомый дядечка-«админ» 45 лет. Так он в развитии остановился давно, на уровне Windows 2000. Нахрен домены, нахрен виланы, нахрен виртуализацию, интеграцию почты-тасков-календарей. Всем почту на мэйле с паролем в 4 знака и отлично. Тоже любит возрастом давить. Андрюша, ты?

>не менее 5 дистрибутивов
Меньше, чем у средней школоты на лоре, стыд.
0
dkr6 #
> Количество != качество. Какого рода опыт?
Будет несколько не в теме треда, но…
Самый крупный проект, в котором участвовал, построение сети «Энергия» Минэнерго Украины. С 1992 по 1997 годы…
Остальное — менее масштабное…

> Меньше, чем у средней школоты на лоре, стыд.
На каком-то этапе понял, что если «ободрать» с них фантики вроде KDE и Gnome, то все они очень похожие…
Некоторые отличия есть, но я их почти не замечаю…

Вижу пару-тройку характерных проявлений — дальше автоматом.
А школота ставит себе новый дистрибутив, «обернутый» в KDE, если на осилит добавить себе DE в от дистр, в котором XFCE по умолчанию…
Или какой-нибудь USB-свисток мобильного оператора не может поднять на SuSE, а в *buntu оно работает «искаропки»…

Хотя, да, есть и среди них толковые ребята, встречались…

> Тоже любит возрастом давить.
В любом поколении есть такие :) И я их навидался…
Я встречал молодых ребят, рядом с которыми весь мой стаж меркнет. Не в возрасте дело :)

> Андрюша, ты?
Так нежно и ласково меня еще ни кто не называл…
А имя я в профиле написал ;)
+1
Lamo #
>Самый крупный проект, в котором участвовал, построение сети «Энергия»
Признаю Ваше право давить опытом и возрастом. Серьезно.
0
kegf #
откуда такая самоуверенность? напишите в личку, если не против. мне просто хочется пообщатся
+5
youROCK #
Погодите, какую помойку? В /usr/local находится только то, что ВЫ ставили из портов, а не то, что шло вместе с системой (и что, соответственно, редко стоит трогать). В результате, в /usr/local лежит только то, что нужно (зачастую это только apache, php и mysql, ну и ещё парочка сервисов), и не нужно подолгу искать, где же этот гребаный конфигурационный файлик, который вам нужен, как в Linux (особенно раньше, когда во многих дистрибутивах в /etc было под тыщу файлов сразу после установки)…
–3
amarao #
Да-да, бздя торжественно умыла руки от портов и сказала «это ваша помойка, не моя». Вот за то, что любая установка ПО из портов превращает /usr/local в помойку, я и не люблю бздю. Debian Policy мне больше нравится.
0
equand #
Простите, никто Вам не мешает сменить директорию дефолтной установки на / в make.conf
+1
amarao #
Разумеется. И ещё сотню параметров при конфигурировании ядра указать. И вообще, LFS во все поля.

Но мне как бы работать, а не на конфиги дрочить. В конфигах чем меньше от дефолтного конфига поменяно, тем лучше. И когда в каждой второй программе приходится руками всё делать самому — нафига оно сдалось?
0
equand #
Вам не проще тогда ли сказать, Вам не нравится policy Freebsd.
В фре дефолтный конфиг под RFC и тюнинг системы нужен ВСЕГДА по-любому для конкретной задачи.
Только простите причем тут каждая вторая программа? В бсд я знаю где всегда можно найти конфиги исходной системы и где можно найти конфиги юзерных. В линуксе как разработчик погулял, так оно и лежит, уже не раз с этим сталкивался и в центоси и в дебиане.
Кстати большинство проблем в фре из-за именно таких разрабов, которые думают портирование под бсд это всего лишь рекомпиляция бинарников.
отсюда и хурьма с my.cnf в /etc и т.п. На самом деле лучше всего это форсировать указанием etcdir в make.conf и prefixdir.
Собственно прелесть FreeBSD в том, что оно работает из коробки.
Захламления нет, всегда все можно найти pkg_info -l pkg.

+2
n0ne #
лучше помойка в /etc?!
0
amarao #
В /etc не принято хранить логи, к счастью. В отличие от /usr/local/appname/logs, например.
0
Nastradamus #
Это какое такое приложение там хранит логи во Фре?
0
amarao #
opps, mailman. Это с ходу. Основную бздю я давно снёс, но там штук 5-6 таких было.
0
n0ne #
ls -al
total 50
drwxr-xr-x 13 root wheel 512 Sep 27 16:03.
drwxr-xr-x 18 root wheel 512 Sep 29 10:36…
drwxr-xr-x 2 root wheel 15360 Oct 1 11:30 bin
drwxr-xr-x 7 root wheel 512 Oct 1 11:30 etc
drwxr-xr-x 25 root wheel 2048 Sep 28 12:38 include
drwxr-xr-x 2 root wheel 1024 Sep 28 12:38 info
drwxr-xr-x 11 root wheel 11264 Oct 1 11:30 lib
drwxr-xr-x 5 root wheel 512 Sep 27 19:17 libdata
drwxr-xr-x 3 root wheel 512 Sep 28 15:17 libexec
drwxr-xr-x 36 root wheel 1024 Sep 27 18:55 man
drwxr-xr-x 2 root wheel 512 Sep 28 12:38 sbin
drwxr-xr-x 50 root wheel 1024 Sep 28 14:34 share
drwxr-xr-x 2 root wheel 512 Sep 27 16:03 www

Что я делаю не так?! какое приложение хранит тут логи?
0
amarao #
ls /usr/local/oops/logs/
access.log oops.log oops.log.1
access.log.0 oops.log.0 oops.log.2
+3
n0ne #
а можно ещё cat /usr/local/etc/oops/oops.cfg |grep logfile ???

Разве система виновата, что кто-то так прописал в конфиге?!
Да и вообще в данном случае вопрос к создателям oops, но ни как ни ко фре… у меня вообще нет логов в /usr/local/
Ну или вопрос к тем, кто собирал этот порт
0
amarao #
Руками туда ничего не прописывалось. make && make install.

А вот дальше начинается та-самая-помойка-в-портах-фри-приводящая-к-помойке-в-usr-local.
0
n0ne #
Странно, у меня из порядка десятка, может, чуть больше, фрей, ни на одной нет такого в /usr/local… странно, конечно
Впрочем, так же странно, что вы ничего не прописывали в конфиг руками… днс, свою сеть и кучу ещё кто-то ж прописал?
А где в Линуксе oops хранит свои логи и кэш? Судя по www.oops-cache.org/help.html — там же: /usr/local/oops/
Так причём тут фря тогда?
0
amarao #
У меня возникает нехорошее ощущение от разговора.

В дебиане пакеты перед включением в репозиторий обрабатываются так, чтобы соответствовать debian-policy. В фре нет, мейнтейнеры портов не утруждают себя такими мелочами (чтобы поправить пути по-умолчанию куда нужно). В результате мы имеем помойку.

Другой пример: где хранит конфиг медиавики в BSD? Правильно, в каталоге с прочими php-файлами. Где хранит mediawiki конфиг в Debian? Правильно, в /etc/mediawiki/. Вот это и есть то, почему мне нравится дебиан и не нравится фря.
0
n0ne #
Спасибо, этим постом Вы ответили на мой первый самый пост: предпочитаете помойку в /etc

Но всё же: где в дебиане oops хранит кэш и логи?

Насчёт mediawiki… я правильно понял, чтобы найти конфиг веб-приложения, Вы предлагаете ими засорять системную директорию, которая не имеет никакого отношения к приложению?? если вдруг я на веб-сервер решу поставить какой-то фреймворк, CMS или ещё что-то, где хранить конфиги-то?? В /etc?! или всё же по-глупому, в каталоге с прочими php-файлами?
0
amarao #
В дебиане oops, если бы был, хранил бы конфиги в /etc, постоянные файлы в /usr, файлы, не зависящие от архитектуры в /usr/share, хлам в /var/cache, логи в /var/log. За этим бы следил мейнтейнер, если бы нет, был бы довольно серьёзный bugreport c 'policy violation'.

Если ПО установлено через менеджер пакетов, то его конфиги хранятся там, где хранятся конфиги. Это политика дебиана и она точно отвечает на вопрос «где конфиги приложения».

Кстати, при установке mediawiki на голый дебиан автоматически будет установлено всё, что нужно для работы — php, апач, апачу будут добавлены нужные директивы для нужных модулей, sql, будет создана нужная база, причём обновляться база будет правильно с помощью deb-helpers. (т.е. обновление схемы базы данных при выходе новой версии mediawiki будет осуществляться без ручных интервенций).

0
n0ne #
Я правильно понял, что у Вас нет под руками oops на Debian? И Вы не можете со 100% уверенностью утверждать, где, как и что хранит oops?

А Suse и Slackware так же хранит?
+1
amarao #
slackware — та же помойка, что бздя (нет единой идеологии кто где что хранит). SUSE тоже НЕ хранит хлам в /etc и не хранит конфиги в /usr.
–1
equand #
По-Вашем мастдаевский реестр должен быть снисхождением господним.
+1
amarao #
Я как-то уже писал. Главная проблема маздаевского реестра — отсутствие комментариев к ключам и дефолтов. А так, идея вполне здравая.
+1
dkr6 #
Чтоб не задавать лишних вопросов, смотрим
ru.wikipedia.org/wiki/FHS

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

Согласен ли я с этим, уже не важно, я просто знаю, где что лежит.
Где логи, где базы, где конфиги…

А про логи в /usr/local/* подтверждаю…
Как минимум, cyrus-imap из портов…
Справедливости ради — давно это было…
0
n0ne #
www.ixbt.com/soft/freebsd05.shtml
Однако именно иерархия каталогов FreeBSD может послужить примером для образцового следования духу FHS.
(-:
+1
dkr6 #
По указанной вами ссылке больше про монтирование, а не про стандарты иерархии…

Вероятно, дело в том, что в Linux под дистрибутивом понимается не только ядро и минимум утилит, а комплексная поставка. Не собранное локально из исходников, а взаимосвязанные (и проверенные!) пакеты.
По этому и ни каких /usr/local…

В том же FHS нет упоминания про /usr/local/etc…
Так что, как бы, следование духу тут весьма спорное ;)

Ну да ладно… Предлагаю закончить спор.
0
n0ne #
Согласен (-:
С пятницей и удачных выходных! (-:
+2
kegf #
/var/db/pkg ещё желательно
0
iscsi #
+3
valer00n #
Еще можно налету дамп архивировать. Хотя бы так:

/usr/local/bin/mysqldump --opt -Aau backup -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_BACKUP | gzip > /var/tmp/all.sql.gz

А то, ясен свет, дампы в таком виде много занимают.
+1
ruFog #
эх… можно было бы на гмейловые файл-сервера раз в ночь наши оракловые базы засылать :) всего ящика едва на два бекапа хватит :)
+1
seregagl #
А отправка на почту выбрана из легкости реализации или по каким-то религиозным соображениям?
0
seventh #
Да отправку на FTP было бы реализовать, пожалуй, даже проще, но нет подходящего сервака. А вы бы куда бэкапились?
0
seregagl #
По ssh выливал бы на сервер для бэкапов. Необходимость в пароле в таком случае, я думаю, отпадает.
+1
seventh #
Ну вот нет в распоряжении сервера для бэкапов)
0
ivlis #
dropbox?
0
seventh #
а как?
0
ivlis #
1) Установить на сервер
2) Скопировать в папку Dropbox файл с бекапом
3) ????
4) ПРОФИТ
0
seventh #
Да — я рассматривал этот вариант. Собственно, самое сложное — первый пункт. Должен признаться, дальше дело не пошло)
0
ivlis #
Хотя как там под фрёй дейстивтльно не понятно. С линуксом элементарно.
+2
watman #
Под фрей работает этот скрипт www.andreafabrizi.it/?dropbox_uploader
написан на баш, нужен CURL и все, указываете емайл, пароль и он заливает на дропбокс
у меня папки создаются по дню недели, и за 7 последних дней лежат бэкпапы на дропбоксе
0
dkr6 #
На соседний сервер, rsync-ом, поверх SSH, с авторизацией по ключам…
Типа так:
rsync -e ssh -aSHPq --force /some/dir user@host:/some/dir

+7
ivlis #
>Да не заминусуют меня заядлые линуксоиды, но в качестве архиватора я выбрал RAR, поскольку получившийся архив хотелось для пущей надёжности ещё и запаролить, а tar этого с ходу не умеет.

Автор, открой для себя gpg.

$ cat test.key | gpg --yes --batch --passphrase-fd 0 -c test.txt
+3
pento #
> # у кого размер архива будет превышать 25 Мб. (в случае с gmail)
Вот и прошло время, когда люди читали RFC и прочее по протоколам (в данном случае MIME ) и понимали как они работают. А также понимали, что гонять тяжелое файло по протоколам, изначально не предназначенным для этого, — моветон. Да и про всем известный gpg они не в курсе, rar — конечно кошернее.
0
seventh #
Сложно с вами не согласиться. В своё оправдание могу сказать только, что нет в распоряжении других мест, куда положить бэкап и, как новичёк, я искал наиболее лёгкие пути для себя.
+2
tony #
несколько замечаний:
1) чтобы можно было поднять заново сервер по образу и подобию надо бекапить
/etc — можно целиком, можно только изменённые файлы (изменённые относительно свежеустановленной системы);
/usr/local/etc — аналогично предыдущему;
/var/db/ports — конфиги сборки портов (кто-то в каментах выше уже упоминал)l
/var/db/pkg — список установленных пакетов + зависимости, коррелирует с /var/db/ports;
/var/log — в логах можно найти много полезного ;)
так же, надо смотреть, что в /var может быть полезного-ценного. Я могу сходу припомнить, что там может быть файлик dhcp.leases от dhcpd, который безусловно надо сохранять (хотя конечно от сетки зависит).
2) не могу понять — зачем RAR?!?! это нестандартный архиватор, по умолчанию его нет ни в одной системе и вообще — бессмысленная проприетарщина, зачем он нужен, если bzip2, который всегда под рукой с ключём -9 жмёт либо на уровне, либо лучше рара?!?!
0
seventh #
Добавил /var/db/ports и /var/db/pkg и размер архива увеличился на 2 Мб. Ещё на 0,5 после добавления /var/log. Итого у меня на данный момент 13,5 Мб. В принципе, пока терпимо.
Но всё равно ещё одно упоминание о необходимости поиска альтернативы хранилищу)
За bzip2 отдельное спасибо — присмотрюсь!
0
ivlis #
Открою её одну страшную тайну, файл архива можно резать! Тогда можно будет бекапить объёмы большие 25 мегов.
+1
tony #
продолжим срывать покровы с тайны — режет файлы команда split!
0
divanikus #
Вместо RAR, если уж так хочется, можно взять 7zip. И открытый и пароли умеет.
А вот слать бэкап базы на почту ну очень сомнительно. Только если у вас базы по паре метров…

Надежнее всего писать на ленты :P
0
tony #
7-zip, как и RAR надо ставить, а bzip2 & gzip (ну в общем ZIP) — есть везде, даже на венде, без лишних поисков и установок.

7-zip таки да, крут, но его лучше пользовать если есть чёткая конкретная цель и огромный объём данных, на которых его сила почувствуется, а так — gzip&bzip2!!!
0
divanikus #
А еще он гораздо медленнее. Зато степень сжатия выше.
0
bear11 #
Пожалуйста, опишите алгоритм восстановления системы. Еще лучше — если Вы уже пробовали восстановить систему (где-нибудь на виртуалке, например) и у Вас это получилось.
0
seventh #
Пока, слава Богу, бэкап не пригождался (тьфу, тьфу, тьфу). Систему и приложения придётся ставить заново, единственно, что у вас будут все конфиги.
+2
bear11 #
А пригодится и выяснится, что бэкап не разбекапливается — что будете делать? Рекомендую таки проверить.
+1
HangGlider #
Для mysql есть automysqlbackup. Ну очень простое решение.
0
seventh #
> A script to take daily, weekly and monthly backups of your MySQL databases using mysqldump.
Похоже тот же скриптик, только сбоку )
0
char #
Не забывайте проверять хотя бы раз в месяц ваши бэкапы.
Был случай с аналогичным скриптом, который в один прекрасный день стал слать на Gmail нулевые архивы.
0
Breaker #
Хотелось бы посоветовать учиться делать сразу нормально, а не через костыли ;)
+1
Sov1et #
Не используйте трубу (|) при gzip. Однажды база разрастёттся и отъест всё память.
+1
Ar2r #
Никогда не нужно запускать задания в 0 или 1 минуту =))) Плохая примета. Возьмите 23 или 48 минут.
0
seventh #
Спасибо. Хоть в приметы и не верю, но изменю)
0
Ar2r #
Плохая примета, что 99% заданий все назначают на 0 или на 1 минуту. В результате есть шансы, что сервер словит глюк и задание не выполнится. Или решат ребутнуть в худшем случае.
0
seventh #
Ну я в принципе так и понял) Согласен.
+1
AstonMartin #
Когда то грешным делом написал скрипт бэкапа сервера. Он может создавать локальный архив из указанных каталогов, с указанными исключениями; архив mysql-баз. Может закачивать их на указанный FTP-сервер. Автоматически удаляет старые архивные копии (два варианта правил). Есть поддержка полного и инкрементального бэкапов. Работает под FreeBSD и Linux. Есть шифрование архивов и отправка уведомления о результатах на электронную почту.
0
equand #
Ядро amd64 не забудьте.
Вообще правильно делать что-то вроде
type=`uname -a | cut -d " " -f 19`
name=`uname -a | cut -d " " -f 17 | cut -d "/" -f 7`
path1=/usr/src/sys/${type}/conf/${name}

Кому религия не позволяет использовать cut можете юзать awk или sed.
+1
Antispammer #
> /usr/local/bin/mysqldump --opt -Aau backup -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_BACKUP > /var/tmp/all.sql
главное, чтобы у пользователей в системе был запрещен вывод всех процессов пользователей, иначе рискуете засветить рутовый пароль ps'у ;)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.