BackUp системы: FreeBSD + dump + ???
Модераторы: Trinity admin`s, Free-lance moderator`s
-
- Advanced member
- Сообщения: 327
- Зарегистрирован: 15 сен 2007, 13:23
- Откуда: Екатеринбург
- Контактная информация:
BackUp системы: FreeBSD + dump + ???
Система: FreeBSD разных версий.
Задача: ежедневный бэкап всей системы по сетке на сервер хранения резервных копий.
Цель: в случае краха системы (не важно по какой причине) не восстанавливать все с нуля, а загрузиться с компашки и опять же по сетке 'restore ...'.
Почитав хэндбук и 'man dump', пришел к выводу, что в принципе большего и не надо. Достаточно ежедневно дампить с каждого сервера все нужные ФС (с определенным уровнем инкрементальности, тут бы я тоже совета спросил?).
Чтобы по крону подобную задачу запускать, нужно какой-либо скриптец в качестве обвязки для '/sbin/dump'. Чтобы репорты по почте слал, всякие нештатные ситуации отрабатывал и т.п.
Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?
Задача: ежедневный бэкап всей системы по сетке на сервер хранения резервных копий.
Цель: в случае краха системы (не важно по какой причине) не восстанавливать все с нуля, а загрузиться с компашки и опять же по сетке 'restore ...'.
Почитав хэндбук и 'man dump', пришел к выводу, что в принципе большего и не надо. Достаточно ежедневно дампить с каждого сервера все нужные ФС (с определенным уровнем инкрементальности, тут бы я тоже совета спросил?).
Чтобы по крону подобную задачу запускать, нужно какой-либо скриптец в качестве обвязки для '/sbin/dump'. Чтобы репорты по почте слал, всякие нештатные ситуации отрабатывал и т.п.
Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: BackUp системы: FreeBSD + dump + ???
Ну почему же нет, лезем на сайт наших партнеров www.opennet.ru, запускаем поиск и вперед. Другое дело что все-равно вам придется все дорабатывать напильником.Ziggy Stardust писал(а):Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?
-
- Advanced member
- Сообщения: 327
- Зарегистрирован: 15 сен 2007, 13:23
- Откуда: Екатеринбург
- Контактная информация:
Re: BackUp системы: FreeBSD + dump + ???
Дык, там я первым делом поискал... Видимо плохо искал.Stranger03 писал(а):Ну почему же нет, лезем на сайт наших партнеров www.opennet.ru, запускаем поиск и вперед. Другое дело что все-равно вам придется все дорабатывать напильником.Ziggy Stardust писал(а):Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: BackUp системы: FreeBSD + dump + ???
Вы мне в аську стукнитесь, правда я сейчас что-то приболел, сильно, голова еле соображает. Если терпит, на след.недельке попробую помочь.Ziggy Stardust писал(а):Дык, там я первым делом поискал... Видимо плохо искал.
-
- Advanced member
- Сообщения: 327
- Зарегистрирован: 15 сен 2007, 13:23
- Откуда: Екатеринбург
- Контактная информация:
Нашел (вернее подсобили в fido7.ru.unix) скриптец, который можно за основу взять.
Заточен пока под алгоритм "ханойской башни".
Привожу его целиком с коментариями. Дело полезное, вдруг кто еще кроме меня озадачится подобным... :-)
Заточен пока под алгоритм "ханойской башни".
Привожу его целиком с коментариями. Дело полезное, вдруг кто еще кроме меня озадачится подобным... :-)
Код: Выделить всё
#! /bin/sh
#
# Создание резервной копии всех файловых система хоста.
#
# $Id: dumpallfs.sh 532 2007-11-11 16:22:33Z dsh $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# Список файловых систем, dump которых необходимо делать.
ALLFS="/ /usr/local /home /var"
# Суффих dump файла.
DUMPEXT="dump.gz"
# В этом каталоге сохраняются бэкапы.
DUMPSTORAGE="/FreeBSDbackup"
# Кол-во dump'ов в цикле всего.
PERIOD0=45
# Кол-во dump'ов до первого дампа первого уровня в одном цикле: "0 3 2
# 5 4 7 6 9 8 ...". Этот цикл увеличивается за счет дампов 9-го
# уровня.
PERIOD1=9
sudo mount "$DUMPSTORAGE" || exit $?
# Вычислить сегодняшний уровень дампа.
seq=$PERIOD0
[ -f $DUMPSTORAGE/dumpseq ] && seq=`cat $DUMPSTORAGE/dumpseq`
[ "$seq" -gt $PERIOD0 ] && seq=$PERIOD0
# Вычисление производится относительно текущего положения в цикле
# $PERIOD1.
next_level=$(($seq % $PERIOD1))
case "$next_level" in
0)
case $seq in
$PERIOD0)
dumplevel=0
;;
*)
dumplevel=1
esac
;;
1)
dumplevel=3
;;
2)
dumplevel=2
;;
3)
dumplevel=5
;;
4)
dumplevel=4
;;
5)
dumplevel=7
;;
6)
dumplevel=6
;;
7)
dumplevel=9
;;
8)
dumplevel=8
;;
*)
dumplevel=9
esac
# Вычислить сегодняшний номер дня в цикле $PERIOD0.
case $seq in
$PERIOD0)
seq=1
;;
*)
seq=$(($seq + 1))
esac
DUMPDATE=`date +%Y%m%d`
HOSTNAME=`hostname -s`
echo "Day $seq, make level $dumplevel dump of all FS's at `date`"
echo
umask 027
# Список файлов для уведомления нулевого дампа.
notify=0
notify_files=""
for fs in $ALLFS; do
# Преобразовать имя файловой системы в файл, куда будет
# производится dump.
dumpfile=""
case $fs in
/)
basefile="$HOSTNAME"
;;
*)
basefile="$HOSTNAME`echo $fs | sed 's!/!_!g'`"
esac
dumpfile="$DUMPSTORAGE/${basefile}-${DUMPDATE}-${dumplevel}.${DUMPEXT}"
dump -${dumplevel}aLu -f - -h 0 $fs | gzip > $dumpfile
# Удалить старые дампы этой файловой системы.
#
# Здесь берется список файлов, отсортированный по именам в
# обратном порядке (т.к. в именах присутствует дата, то
# получается, что они отсортированы по дате), и из его начала
# удаляется указанное кол-во строк. Это позволяет получить список
# файлов за исключением N последних.
#
# Как конечный результат, хранятся N последних дампов
# определенного уровня.
#
case $dumplevel in
0)
notify=1
notify_files="${notify_files}\n${dumpfile}"
;;
1)
# Хранить дампов 1-го уровня столько, сколько их делается
# между дампами 0-го уровня.
#
keepdumps=$(($PERIOD0 / $PERIOD1 - 1))
ls -r ${DUMPSTORAGE}/${basefile}-????????-1.${DUMPEXT} \
| sed -e "1,${keepdumps}d" | xargs rm -f --
;;
[2-9])
# Для дампов 2-9 уровня хранится столько последних дампов,
# сколько их делается в промежутке между дампами меньшего
# уровня.
#
keepdumps=$(($PERIOD1 - 1))
ls -r ${DUMPSTORAGE}/${basefile}-????????-[2-9].${DUMPEXT} \
| sed -e "1,${keepdumps}d" | xargs rm -f --
;;
esac
done
echo $seq > $DUMPSTORAGE/dumpseq
sudo umount "$DUMPSTORAGE"
echo
echo "Dump is over at `date`"
# Послать уведомление о необходимости записи нулевого дампа на DVD.
case $notify in
1)
{ cat ~root/dumpallfs-notify.txt; echo -e "$notify_files"; } \
| sendmail -i root
;;
esac
-
- Advanced member
- Сообщения: 327
- Зарегистрирован: 15 сен 2007, 13:23
- Откуда: Екатеринбург
- Контактная информация:
Переписал скриптец под себя.
Месячный цикл: L0...L9, L1...L9, L2...L9 ... и т.д.
Привожу целиком. Может кому поможет.
Запускать по крону ежедневно.
Месячный цикл: L0...L9, L1...L9, L2...L9 ... и т.д.
Привожу целиком. Может кому поможет.
Запускать по крону ежедневно.
Код: Выделить всё
#! /bin/sh
#
# Создание резервной копии всех файловых система хоста.
#
# $Id: dumpallfs.sh 2008-03-26 $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# Список файловых систем, dump которых необходимо делать.
FSTODUMP="da0s1a da0s1d da0s1f da0s1g"
# Список каталогов, для который делаем только L0 дамп.
DIRTONODUMP="/opt/tmp /opt/squid/cache"
# Префикс dump файла.
DUMPPREFIX="SERVERNAME"
# Суффих dump файла.
DUMPEXT="dump.gz"
# Текущая дата
CURDATE="`date "+%Y-%m-%d"`"
# В этом каталоге сохраняются бэкапы.
DUMPSTORAGE="/mnt/backup"
# Сколько дней будем хранить файлы с дампами.
DAYTOSTORAGE="100"
# Минимум свободного места на ресурсе, куда будем сохранять дампы (в мегобайтах).
STORAGELIMIT="20480"
# Вычисляем сколько сейчас свободного места на ресурсе.
STORAGESPACE="`df -m ${DUMPSTORAGE} |grep -v 'Avail' |awk '{print $4}'`"
# Проверяем наличие ресурса, где храним дампы.
if [ ! -d "${DUMPSTORAGE}" ]; then
echo "There is no ${DUMPSTORAGE} directory."
exit 1
fi
# Проверяем наличие свободного места на ресурсе
if [ ${STORAGESPACE} -le ${STORAGELIMIT} ]; then
echo "There is no free space on ${DUMPSTORAGE} directory."
exit 1
fi
# Пометим выше выбранные каталоги флагом NODUMP
for i in ${DIRTONODUMP}; do
chflags -R nodump ${i}
done
# Вычислить сегодняшний уровень дампа на основе текущего дня месяца.
CURDAY="`date "+%d"`"
case "${CURDAY}" in
01)
dumplevel=0
;;
02)
dumplevel=1
;;
03 | 11)
dumplevel=2
;;
04 | 12 | 19)
dumplevel=3
;;
05 | 13 | 20 | 26)
dumplevel=4
;;
06 | 14 | 21 | 27)
dumplevel=5
;;
07 | 15 | 22 | 28)
dumplevel=6
;;
08 | 16 | 23 | 29)
dumplevel=7
;;
09 | 17 | 24 | 30)
dumplevel=8
;;
10 | 18 | 25 | 31)
dumplevel=9
;;
*)
dumplevel=9
esac
echo "Day ${CURDAY}, make level $dumplevel dump of all FS's at `date`"
echo "System `uname -n`"
echo
for fs in ${FSTODUMP}; do
dumpfile="${DUMPSTORAGE}/${DUMPPREFIX}_${fs}_${CURDATE}_L${dumplevel}.${DUMPEXT}"
dump -${dumplevel}aLu -f - /dev/${fs} | gzip > ${dumpfile}
done
echo
echo "Dump is over at `date`"
# Удаляем старые файлы.
find ${DUMPSTORAGE} -type f -mtime +${DAYTOSTORAGE}d -name ${DUMPPREFIX}*.${DUMPEXT} -delete
exit 0
Re: BackUp системы: FreeBSD + dump + ???
всем привет!
вот смотрю и думаю...
а чем этот метод лучше чем tar -cf /dir1 /dir2 ?....
в архив перенесутся и права на файлы... что еще нужно.
при крахе нужно будет только установить минимальный FreeBSD и скопировать архив.
или я ошибасюь?
Вот я сейчас как раз занимаюсь такой настройкой архивирования в tar.
Хочу иметь на флешке Freebsd с уже установленными нужными программами и настройками для установки на мои новые сервера в будущем.... а то надоедает... одни и те же настройки каждый раз делаю... да еще каждый раз что нить забываю настроить...
Главное компиляция очень долгий процесс по сравнению с копированием ))
Алгоритм при устновке будет такой:
1) устанавливаем минимальную FreeBsd
2) извлекаем папки из архива tar в установленную системы
3) reboot = готово
вот смотрю и думаю...
а чем этот метод лучше чем tar -cf /dir1 /dir2 ?....
в архив перенесутся и права на файлы... что еще нужно.
при крахе нужно будет только установить минимальный FreeBSD и скопировать архив.
или я ошибасюь?
Вот я сейчас как раз занимаюсь такой настройкой архивирования в tar.
Хочу иметь на флешке Freebsd с уже установленными нужными программами и настройками для установки на мои новые сервера в будущем.... а то надоедает... одни и те же настройки каждый раз делаю... да еще каждый раз что нить забываю настроить...
Главное компиляция очень долгий процесс по сравнению с копированием ))
Алгоритм при устновке будет такой:
1) устанавливаем минимальную FreeBsd
2) извлекаем папки из архива tar в установленную системы
3) reboot = готово
-
- Advanced member
- Сообщения: 327
- Зарегистрирован: 15 сен 2007, 13:23
- Откуда: Екатеринбург
- Контактная информация:
Re: BackUp системы: FreeBSD + dump + ???
Инкрементальностью лучше. И тем, что бэкап со снапшота файловой системы идет. А вообще конечно еще лучше специализированным софтом бэкапить, тем же симантеком хотя бы...
С уважением, Александр
ICQ://13043204
ICQ://13043204
- kim_aa
- Advanced member
- Сообщения: 118
- Зарегистрирован: 24 ноя 2011, 16:30
- Откуда: Санкт-Петербург
- Контактная информация:
Re: BackUp системы: FreeBSD + dump + ???
1) FreeBSD поддерживает NetBackup, а вот BackupEXEC вряд ли.
2) Для "бедных с руками" есть Bacula
http://bacula.org/en/?page=documentation
Кстати, прописывание в скриптах клиента резервного копирования вызовов утилит создания дампов - есть стандартная практика для резервного копирования СУБД которые официально не поддерживаются системой резервного копирования.
2) Для "бедных с руками" есть Bacula
http://bacula.org/en/?page=documentation
Кстати, прописывание в скриптах клиента резервного копирования вызовов утилит создания дампов - есть стандартная практика для резервного копирования СУБД которые официально не поддерживаются системой резервного копирования.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей