Навигация
ГлавнаяФотогалереяКарта сайтаСтатьиМузыкаФильмыРейтинг контентаИнформация о сервереТемператураОбратная связь
Свежие записи
Что делать после приобретения оружияКак получить лицензию на оружиеРадиохоббиВышло обновление iOS 6.1Душевный блатнячок
Комменты
2017-10-11 12:42:42 [articles] Маша:
2017-10-06 10:09:52 [news] Николай:
2017-10-06 10:00:20 [projects] Николай:
2017-09-15 13:47:27 [projects] Artem:
2017-09-15 13:47:10 [projects] Artem:
2017-07-06 07:21:52 [projects] DarkEternal:
2017-07-06 07:21:30 [projects] DarkEternal:
Теги
Друзья

Резервное копирование 1С

Января
2013 года
11
Теги: 1c, freebsd,
Раздел: odmin.info Статьи 1c Резервное копирование 1С
Просмотров: 3329
Данная статья из разряда "Когда коту делать нечего..". В общем, на предприятии (точнее в моем админском мозгу) встал вопрос сохранения резервных копий базы данных 1с. До этого момента был реализован алгоритм бэкапа на соседний сервер, но несмотря на RAID'ы, хорошее серверное железо и другие плюшки, контора сама по себе небольшая и находится все в одном здании на двух этажах. Соответственно никак нельзя застраховаться, например, от пожара или злого умысла недобрых людей... Хотя серверная - закрытое помещение с допуском туда всего двух человек - меня и директора... Тем не менее... Паранойя и все такое... Хочется обезопасить себя от утраты информации...
О том, какой извращенный алгоритм я придумал, читайте под катом...

Сначала расскажу об организации сети... Дана серверная, в которой стоит два сервака: Windows 2008 (1cка) и FreeBSD (интернет шлюз). Изначально раз в неделю вручную проводилась выгрузка базы и этот архивчик переезжал жить на FreeBSD, впоследствии так жить надоело, стало оно забываться, да руки недоходили, ну и в итоге на бэкапы благополучно забили.
В один прекрасный день, после нового года взбрела мне в голову идея автоматизировать этот процесс, да не просто автоматизировать, да еще и защитить инфу от потери в случае стихии... Сел я и разработал такой алгоритм.

Сначала на сервере с Windows 2008 был поднят Apache (доступа в инет у этого сервера нет!). Затем был написан вот такой скрипт backup.cmd (не претендую на авторство, скрипт взят из инета и мною доработан):
@Echo Off

Set DataPath=D:\Base\1cv7\my_base
Set ArchPath=D:\AppServ\www
Set SevenZipPath=%ProgramFiles%\7-Zip

del D:\AppServ\www\*.7z

Echo %Path%|Find "7-zip">nul||Set Path=%Path%;%SevenZipPath%

7z a "%ArchPath%\%Date%.7z" "%DataPath%">D:\AppServ\www\err.log

Exit
Этот скрипт создает архив, в который попадает папка my_base со всеми вложенными папками и файлами, а также лог выполнения архивации. Архив и лог кладутся в D:\AppServ\www, собственно, это папка веб-сервера. На веб-сервере лежит еще маленький php-файл для мониторинга успешности резервного копирования. Вот его листинг:
<?php
$arr = file( "err.log" );
print $arr[4];
?>
<br>
<?php print $arr[count( $arr )-1];
?>
Он просто-напросто выводит 5-ю и предпоследнюю строки файла err.log и в итоге, при заходе на страничку с этим адресом видим:
Creating archive D:\AppServ\www\10.01.2013.7z
Everything is Ok
Затем на сервере с FreeBSD был перенаправлен некий порт внешнего адреса (предположим 5920), на 80-й порт локального адреса сервера с Виндой (помним, что доступа в инет у этого сервера нет). На этот порт из соображений безопасности, в правилах фаервола, разрешен доступ только с админских ip'шников. Соответственно скрипт выполняется шедулером в назначенное время, по итогу в D:\AppServ\www\ образуются два файла %текущая_дата%.7z и err.log, старые архивы удаляются, err.log перезаписывается.
Затем, на FreeBSD'шном сервере, который географически находится совершенно в другом месте в cron был добавлен скрипт следующего содержания:
#!/bin/sh
cd /usr/backup/zyk
ddd=`date '+%d.%m.%Y'`
fetch http://your_srv_addr:5920/$ddd.7z
Примерно через час после архивации происходит скачивание бэкапа. Вот и весь алгоритм.
Комментариев нет

Добавление комментария

Ваше имя:
Ваш комментариий:
Введите код с картинки:
 
^_^