LINUX.ORG.RU
ФорумAdmin

Как лучше бэкапить почтовый сервер?

 , , ,


0

2

debian 7.
exim4.
postfixadmin + mysql.
Kaspersky Security 8.0 for Linux Mail Server, который использует встроенный в себя postgres.
Места занято жалких 3 Гб, потому что почта на сервере не хранится. Есть скрипт наипростейшего бэкапа при помощи tar.

#!/bin/bash

REMOTE_DIR="/mnt/network_disk/mail/backups/"

aptitude clean
mount -t cifs //192.168.10.1/network_disk /mnt/network_disk -o credentials=/etc/smb_password
DATE="`date '+%Y-%m-%d_%Hh_%Mm'`"

service exim4 stop
service dovecot stop
service klms stop
service klmsdb stop
service apache2 stop
service php5-fpm stop
service mysql stop
service nagios-nrpe-server stop

tar -czvpf "$REMOTE_DIR/backup-$DATE.tar.gz" \
--directory=/ --exclude='proc/*' --exclude='sys/*' --exclude='dev/*' --exclude='mnt/network_disk/*' --exclude='run/*'  /


service mysql start
service php5-fpm start
service apache2 start
service klmsdb start
service klms start
service dovecot start
service exim4 start
service nagios-nrpe-server start

umount /mnt/network_disk
На всякий случай останавливаются все возможные сервисы, чтобы обеспечить хоть какую-то атомарность, потому что я не уверен на 100%, что при разворачивании из бэкапа ничего не сломается. Внимание, вопрос: как лучше всего бэкапить __всю__ систему целиком и обеспечить атомарность бэкапа?
В принципе я понимаю, что тот же mysql можно не останавливать, потому что в него пишется что-то только тогда, когда ручками добавляются пользователи или меняются пароли через postfixadmin.
Возникает проблема с klmsdb (postgresql для каспера) или нет, я не знаю.
Не поломаются ли логи в бэкапе, если ничего из этого не останавливать? Например, если в то время, как приходит новое сообщение, будет копироваться /var/log/exim4/mainlog, может ли он сохраниться в неполноценном виде?
Прошу поделиться опытом такого рода бэкапов или посоветовать, что нужно и можно бэкапить наживую.
Может я зря все останавливаю и можно об этом не беспокоиться.
P.S. Еще раз замечу, что все подряд останавливается на всякий случай. Минимум половину из этих сервисов можно из скрипта выкинуть. Бэкап делать ночью cron'ом. Выключение на 2 минуты никто не заметит, кроме мониторинга.



Последнее исправление: cetjs2 (всего исправлений: 2)

В принципе я понимаю, что тот же mysql можно не останавливать, потому что в него пишется что-то только тогда, <...>

https://www.google.com/search?q=mysql dump

sin_a ★★★★★
()

Поломается не поломается - тебе этого никто не скажет. Потому что от момента когда придёт запись и до реальной записи на диск может пройти сколь угодно времени - это в общем случае вообще решает ОС когда и чего скидывать в файлы. Самый правильный путь это: стопить сервисы, делать снапшот от lvm, стартовать сервисы и спокойно получать консистентный, гарантированно холодный бекап.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

Самый правильный путь это: стопить сервисы, делать снапшот от lvm

два чая этому товарищу.

dada ★★★★★
()

в скрипт добавить:обработку ошибок (например, «mount -t cifs» зависло или выдало бяку) и статус бэкапа.

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

На практике кстати для этого зачастую достаточно &&. Я запилил примерно так:

снапшот

моунт &&

rdiff-backup

По всем rdiff-backup приходит отчёт на мыло, и если не было бекапа, я вижу сразу это в его отчётах по датам.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

плохо. через пару месяцев тебе надоест проверять отчоты и все может сломаться. Отчет должен быть не с сообщением ОК а с ошибкой, если возникла. Внимание надо уделять не обычному (ОК) а необычному (отказ).

Да, и я стал ставить перед критичными командами команду `timeout -s 9` чтоб прибила зависший процесс, например mount.cifs это как раз тот случай. Ты же знаешь, что rdiff-backup имеет хрупкое хранилище, которое может сломаться при одновременном запуске нескольких бакапилок (иногда бывает).

Bers666 ★★★★★
()

единственное, что требует тут атомарности (т.е. надо стопить), это mysql . Но дампы решают.

и еще, сделай чтоб маунтилось с правами 700, тебе ведь не хочется, чтоб с смонтированного диска какой-нить непривилигированный взломанный процесс (if any) слил прошлый бакап?

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

Уже с пол года проверяю, я в письмо вынес всё самое важное. Два раза в неделю я трачу по 10 минут на это дело. В целом терпимо. У меня парк серверов не большой. Порядка тридцати. И бОльшая часть серверов имеет очень старое ПО (HP-UX к примеру), и корячить туда zabbix агентов, при том условии что никакого централизованного управления нету я не решился. Да и вообще с таким кол-вом серверов zabbix это как слон по дрозофилам :)

Да, rdiff-backup весьма хрупкая штука местами.... Но в целом оно не должно запуститься дважды, оно будет кричать что ей нужен ключ --force

DALDON ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.