Страница 1 из 1
Скрипт backup системы
Добавлено: 2010-08-03 11:34:30
Саша
День добрый у меня стоит сервак и + к нему поставил рядом для BACKUP'ov .
Я в этом деле новичёк подскажите пожалуйста как сделать корректно,
создать правильный скрипт чтобы выполнялось к примеру tar -cpvf /var/backup/server.tar --exclude /var/backup/ / каждую субботу в 00:00
а потом уже по ssh через scp перекидывал на бэкаповский сервер
если не сложно прощу помочь
Re: Скрипт backup системы
Добавлено: 2010-08-03 11:47:49
hizel
use rsync, Luke
Re: Скрипт backup системы
Добавлено: 2010-08-03 11:50:34
Саша
hizel писал(а):use rsync, Luke
thanks это идеальное решение) для того что я хочу!
http://www.lissyara.su/articles/freebsd ... mms/rsync/
Re: Скрипт backup системы
Добавлено: 2010-08-03 13:36:47
thefree
backuppc - я вот использую
Re: Скрипт backup системы
Добавлено: 2010-08-03 15:11:26
Саша
hizel писал(а):use rsync, Luke
постой он же экскрементно работает ... следовательно все сбои будет клонить так же (если админ отлучился на пол месяца к примеру)
а вот если систему в tar заворачивать и на внешний сервак складывать не эффективнее будет?
Re: Скрипт backup системы
Добавлено: 2010-08-03 20:00:37
Burner
Саша писал(а):постой он же экскрементно работает ... следовательно все сбои будет клонить так же (если админ отлучился на пол месяца к примеру)
а вот если систему в tar заворачивать и на внешний сервак складывать не эффективнее будет?
ааааа, шьорт побьери. Люди, учите русский язык.
Re: Скрипт backup системы
Добавлено: 2010-08-05 0:50:25
FiL
Саша писал(а):hizel писал(а):use rsync, Luke
постой он же экскрементно работает ... следовательно все сбои будет клонить так же (если админ отлучился на пол месяца к примеру)
а вот если систему в tar заворачивать и на внешний сервак складывать не эффективнее будет?
man rsync
/-b
/--backup-dir
Re: Скрипт backup системы
Добавлено: 2010-08-12 20:51:50
Overseer
Саша писал(а):hizel писал(а):use rsync, Luke
постой он же экскрементно работает ... следовательно все сбои будет клонить так же (если админ отлучился на пол месяца к примеру)
а вот если систему в tar заворачивать и на внешний сервак складывать не эффективнее будет?
можно бекапить инкрементально, каждый бекап ложить в отдельную папку, а неизменяющиеся файлы хардлинковать. + сжатие трафика, если критично.
преимущества: можно грохать любой старый бекап (каталог); благодаря хардлинкованию - меньше места; восстановление хоть тупым копированием хоть рсинком; старые бекапы можно неспешно сжимать на бекапном, не нагружая основной сервер; нормальный доступ к любому файлу бекапа, без танцев с [s]бубном[/s] таром.
Re: Скрипт backup системы
Добавлено: 2010-08-12 21:43:58
thefree
backuppc
Re: Скрипт backup системы
Добавлено: 2010-08-18 18:46:44
ADRE
а Манда?

Re: Скрипт backup системы
Добавлено: 2010-08-19 6:50:23
Burner
Overseer писал(а):
можно бекапить инкрементально, каждый бекап ложить в отдельную папку, а неизменяющиеся файлы хардлинковать. + сжатие трафика, если критично.
преимущества: можно грохать любой старый бекап (каталог); благодаря хардлинкованию - меньше места; восстановление хоть тупым копированием хоть рсинком; старые бекапы можно неспешно сжимать на бекапном, не нагружая основной сервер; нормальный доступ к любому файлу бекапа, без танцев с [s]бубном[/s] таром.
это называется rsnapshot
Re: Скрипт backup системы
Добавлено: 2010-08-19 9:24:36
Overseer
Burner писал(а):
это называется rsnapshot
ну я это делаю с помощью rsync

Re: Скрипт backup системы
Добавлено: 2010-08-27 11:27:59
Pr0l
я скрипт писал сам
Код: Выделить всё
#! /bin/sh
day=`date \+\%a` # вывод дня недели
dt=`date \+\%Y\%m\%d` # дата в формате 20091231
dt1=`date \+\%d.\%m.\%Y` # дата в формате 2009.12.31
dt8=`date -v-8d \+\%d.\%m.\%Y` # дата в формате 2009.12.31 минус 7 дней
dt14=`date -v-14d \+\%d.\%m.\%Y` # дата в формате 2009.12.31 минус 14 дней
old8=`date -v-8d \+\%Y\%m\%d` # получаем дату которая была 8 дней назад
old3=`date -v-3d \+\%Y\%m\%d` # получаем дату которая была 3 дня назад
rsync="/usr/local/bin/rsync" # rcync место нахождения
mounts="//administrator@server/backup" # сетевой ресурс который монтируем
in="/backup" # исходная папка
out="/shares/gm4/Pub/" # конечная папка
out1="/shares/gm4/Pub/backup" # конечная папка
out2="/shares/gm4/Pub/backup/week" # конечная папка
log="/shares/gm4/Pub/backup/log/$dt1-log.doc" # куда пишем лог
log1="/shares/gm4/Pub/backup/log/$dt8-log.doc" # лог 8 дней назад
inc=--include # исключаем
exc=--exclude # включаем
nam0="rsync" # имя скрипта
nam1="rar" # имя файла для проверки
#sleep 10
echo " " >> $log
echo "0. Время начала скрипта:" `date` >> $log
#######################################################
########### Проверка на повторный запуск ##############
echo "1. Проверка на запуск копии ..." >> $log
rn0=`ps -ax | grep -c $nam0`
echo "rn0 = "$rn0
if !(test $rn0 -gt "2")
then
echo "2. Скрипт уже запущен!!!" >> $log
exit 2;
else
echo "2. Скрипт запускается..." >> $log
fi
########################################################
echo "3. Монтирую сетевой диск..." >> $log
mount_smbfs -N $mounts $in && # монтируем сетевой каталог
#######################################################
########### Проверяем подмонтировалась ли папка #######
rn1=`ls -l $in | grep -c $nam1`
echo "rn1 = "$rn1
if !(test $rn1 -gt "0")
then
echo "4. Сетевой диск не примонтирован!!!" >> $log
umount $in
exit 0;
else
echo "4. Сетевой диск примонтирован..." >> $log
fi
######################################################
########## Синхронизация папок #######################
echo "5. Синхронизация..." >> $log
$rsync -auxS --progress $inc '*.rar' $exc 'tmp' $exc '*.*' $in $out && >> $log # синхронизируем файлы с раширением rar
echo " " >> $log
rn2=`ls -l $out1 | grep -c base$dt.rar`
echo "rn2 = "$rn2
if !(test $rn2 -gt "0")
then
echo "6. Базы не синхронизировались, или нет новых баз!!!" >> $log
umount $in
exit 0;
else
echo "6. Синхронизация закончена." >> $log
fi
########################################################
#### Сохраняем недельный архив отдельно от всех баз ####
if [ "$day" = "Sun" ]
then
echo "7. Сохраняем недельный архив..." >> $log
mkdir "$out1/"week
#2>/dev/null
cp "$out1/"base$dt.rar "$out2"
# 2>dev/null
echo "7.1 Проверяем недельный архив..." >> $log
rn21=`ls -l $out2 | grep -c base$dt.rar`
if !(test $rn21 -gt "0")
then
echo "7.2. Недельная база не записалась!!!" >> $log
else
echo "7.2 Недельная база на месте." >> $log
fi
echo "7.3 Удаляем старые недельные базы..." >> $log
rm "$out2/"base$dt14.rar 2>/dev/null
echo "7.4 Удалено." >> $log
else
echo " 7.4 Не найдены старые недельные архивы!!!" >> $log
fi
########################################################
#### Дальше проверяем предпредпоследний архив базы #####
echo "8. Проверка архивов..." >> $log
rn3=`ls -l $in | grep -c base$old3.rar` # тут происходит поиск предпредпоследний базы
echo "old3 = "$old3
echo "rn3 = "$rn3
#Если базы нету отправляем мыло, останавливаем скрипт
if !(test $rn3 -gt "0")
then
echo "9. Warning!!! нет старых архивов!!!" >> $log
umount $in
exit 0;
# Если она есть то удаляем старые базы
else
echo "9. Все в порядке базы на месте, удаляем старые архивы!" >> $log
rm "$out/backup/"base$old8.rar 2>/dev/null # удаляем в конечной папке 8 дневные архивы
rm "$in/"base$old8.rar 2>/dev/null # удаляем в исходной папке 8 дневные архивы
rm "$log1" 2>/dev/null # удаляем в исходной папке 8 дневные логи
fi
######################################################
########### Проверяем подмонтировалась ли папка #######
echo "10. Отключаю сетевой диск..." >> $log
umount $in
rn4=`ls -l $in | grep -c $nam1`
echo "rn4 = "$rn4
if !(test $rn4 -gt "0")
then
echo "11. Сетевой диск отмонтирован!!" >> $log
echo "12. Скрипт завершен в:" `date` >> $log
exit 0;
else
echo "13. Не смог отмонтировать сетевой диск!!!" >> $log
cd $out
umount $in
fi