Резервная копия файловой базы данных на ftp сервер через cmd

Если тебе нужно не только локальное, а и удаленное резервное копирование файловой базы данных 1С, используя стандартные средства платформы виндовс, тогда читай ниже.

Не хотелось использовать сторонние утилиты, поэтому из интернета по кусочку вышел такой способ резервного копирования, в моем случае, файловой базы данных 1С на резервный ftp-сервер.

 

!У удаленного фтп сервера серый, динамический айпи, Поэтому я использовал сервис https://www.noip.com/ для постоянного доступа к серверу.

Сервис представляет собой получение внешнего «статического» айпи адреса, а точнее доменного имени.

 

Значит, поехали. Создаем и сохраняем файл с именем ftp_backup_DB_1C.bat

С содержимым

:: кодировка, если с ней у вас все норм, тогда ниже строка вам

:: не нужна

@chcp 1251

:: «убить» процесс 1С

taskkill /IM 1cv8.exe /F /T

:: перейти в дирректорию «винрар-архиватора», который будет архивировать папку, естественно, архиватор должен уже быть :: установлен

cd «C:Program FilesWinRar»

:: архивируем папку d:Base_1CWorkDB в папку C:db, не забудьте создать папку db по пути :: C: с результирующим именем :: WorkDB-Год_Месяц_День_Часы_Минуты 

::  в итоге выходит наименование файла типа «WorkDB-2014-03-07_00-32.rar»

Rar a -agYYYY-MM-DD_HH-MM C:dbWorkDB- «d:Base_1CWorkDB»

:: подключиться к фтп серверу ftpserver.no-ip.biz с настройками с файла Connect.txt, который   :: лежит по локальному  адресу :: C:

ftp -n -s: C:Connect.txt -i ftpserver.no-ip.biz

:: удалить уже не нужный нам архив с папки

del /f /q C:db*.*

 

А теперь создаем по пути C: файл Connect.txt с содержимым

:: Логин и пароль

USER Логин Пароль

:: перейти в папку 1C_DB_Sklad на фтп сервере

cd 1C_DB_Sklad

:: скопировать с локального компьютера на фтп сервер все, что находится в папке C:db, а у нас там :: архив базы данных

mput C:db*.*

:: закрыть фтп соединение

Quit

 

Далее, в Планировщике заданий (например, в моем случаи виндовс платформы) я создал задачу, где в выборе Действия выбрал батник, а в рабочей папке я указал C: 

все! 

Таким способом у меня два сервера бекаплят базы данных как локально, так и друг на друга без каких-либо проблем.

Кстати, почему-то, переброс резервного архива базы данных через cmd отправляется намного быстрее, чем используя вручную Проводник.

!Ниже приведу листинг файлов на всякий случай

Батник 

taskkill /IM 1cv8.exe /F /T
cd "C:Program FilesWinRar"
Rar a -agYYYY-MM-DD_HH-MM C:dbWorkDB- "d:Base_1CWorkDB"
ftp -n -s:C:Connect.txt -i ftpserver.no-ip.biz
del /f /q C:db*.*

Файл настроек 

USER admin pass
cd 1C_DB_Sklad
mput C:db*.*
quit

15 Comments

  1. zaripov.ilfat

    http://ftp.exe может подключаться к ftp-серверу только в активном режиме

    Reply
  2. zaripov.ilfat

    и на всякий случай имеем в виду

    — если этот скрипт отрабатывает на терминальном сервере, прибивая процессы 1cv8 (что само по себе плохо), можно, например, узнать много нового о себе от пользователя, который запустил длительную обработку на ночь (может быть даже на другой базе)

    — логин и пароль на доступ к ftp, на котором есть свежий бекап с нашей базой хранится в файле в открытом виде

    Reply
  3. frogo

    на файловых базах я в качестве архиватора использую 7-zip, «прибивать» процесс 1С — нет необходимости.

    Reply
  4. zaripov.ilfat

    (3) frogo, в таком случае, наверное, возникает вопрос ценности такого архива. С большой долей вероятности полученный таким образом файл с точки зрения 1С окажется поврежденным. А там уже как повезет.

    Reply
  5. panihinnv

    Для backup файловой базы на FTP через cmd я использую ftpuse

    Подключаю диск «C:Program FilesFtpUseftpuse.exe» T: 192.168.1.11 password /user:user

    а затем на него копирую уже созданный архивный файл также через cmd только средствами 7z

    7z a -ssw -mx5 «E:BackupData\%datetimef%1C8BUH_3» «D:FILE1CBUH_3» | findstr /P /I /V «Compressing»

    XCOPY «E:BackupData» «T:BackupData» /s /h /y

    Reply
  6. frogo

    (4) zaripov.ilfat, Вы правы, есть не нулевая вероятность повреждения. Но на практике — мне не доводилось с таким встречаться. Бэкапы периодически (у некоторых еженедельно, у кого-то раз в месяц) проверяются на работоспособность — т.е. база восстанавливается из бэкапа и выполняется ТиИ — полное тестирование.

    Reply
  7. jaroslav.h

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

    Reply
  8. jaroslav.h

    (1) zaripov.ilfat, не понял, к чему это?

    Reply
  9. zaripov.ilfat

    (8) к тому, что если ftp-сервер поддерживает подключения только в пассивном режиме, то системный http://ftp.exe ничего сделать не сможет. Придется воспользоваться какой-нибудь другой утилитой.

    Reply
  10. ayava

    надобно MD5 прикрутить, легко проверять на повреждения

    Reply
  11. borodatii

    (10) ayava, я думаю, речь шла о целостности созданного архива при работающей 1С. MD5 тут ни к месту. Вот для проверки того, что целостность скаченной копии ранее созданного архива, MD5 ещё куда ни шло.

    Reply
  12. viptextil

    (5) panihinnv, сейчас при наличии криптовирусов подключать удаленные файловые системы в виде дисков крайне опасно. Безопаснее по старинке, как у автора.

    Reply
  13. revned

    Мне проще использовать cobain backup. Больше года полет нормальный. Больше настроек. На ftp выкладывает, архивы делает.

    Reply
  14. 1cbit_tomsk

    Прикрутить бы ещё, что бы он с ФТПшникак удалял старые копии.

    Reply
  15. bulas

    (13)Спасибо Алексей подсказал про cobain backup: действительно удобная программа для работы с FTP. Мой бат файл, с использованием http://ftp.exe, «капризничал».

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *