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

20.09.15

База данных - Архивирование (backup)

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

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

 

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

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

 

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

С содержимым

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

:: не нужна

@chcp 1251

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

taskkill /IM 1cv8.exe /F /T

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

cd "C:\Program Files\WinRar\"

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

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

Rar a -agYYYY-MM-DD_HH-MM C:\db\WorkDB- "d:\Base_1C\WorkDB"

:: подключиться к фтп серверу 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 Files\WinRar\"
Rar a -agYYYY-MM-DD_HH-MM C:\db\WorkDB- "d:\Base_1C\WorkDB"
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

ftp backup резервная копия

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42470    10    24    

38

BackUPv8 - система резервного копирования баз 1С

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14671    12    6    

17

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5702    n_mezentsev    15    

23

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19480    sapervodichka    36    

140

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4676    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4216    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zaripov.ilfat 23.09.15 10:50 Сейчас в теме
ftp.exe может подключаться к ftp-серверу только в активном режиме
8. jaroslav.h 180 30.09.15 13:12 Сейчас в теме
(1) zaripov.ilfat, не понял, к чему это?
9. zaripov.ilfat 06.11.15 14:36 Сейчас в теме
(8) к тому, что если ftp-сервер поддерживает подключения только в пассивном режиме, то системный ftp.exe ничего сделать не сможет. Придется воспользоваться какой-нибудь другой утилитой.
2. zaripov.ilfat 23.09.15 11:00 Сейчас в теме
и на всякий случай имеем в виду

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

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

7. jaroslav.h 180 30.09.15 13:07 Сейчас в теме
(2) zaripov.ilfat, и о не безопасности данного способа и о"таске" процесса тоже усведомлен. Все выше для общего обозрения. Кто хочет использует, кто не хочет, ищет далее.
3. frogo 6 23.09.15 11:22 Сейчас в теме
на файловых базах я в качестве архиватора использую 7-zip, "прибивать" процесс 1С - нет необходимости.
4. zaripov.ilfat 23.09.15 12:25 Сейчас в теме
(3) frogo, в таком случае, наверное, возникает вопрос ценности такого архива. С большой долей вероятности полученный таким образом файл с точки зрения 1С окажется поврежденным. А там уже как повезет.
6. frogo 6 24.09.15 12:48 Сейчас в теме
(4) zaripov.ilfat, Вы правы, есть не нулевая вероятность повреждения. Но на практике - мне не доводилось с таким встречаться. Бэкапы периодически (у некоторых еженедельно, у кого-то раз в месяц) проверяются на работоспособность - т.е. база восстанавливается из бэкапа и выполняется ТиИ - полное тестирование.
5. panihinnv 15 23.09.15 12:53 Сейчас в теме
Для backup файловой базы на FTP через cmd я использую ftpuse
Подключаю диск "C:\Program Files\FtpUse\ftpuse.exe" T: 192.168.1.11 password /user:user
а затем на него копирую уже созданный архивный файл также через cmd только средствами 7z
7z a -ssw -mx5 "E:\Backup\Data\%datetimef%\1C8\BUH_3" "D:\FILE\1C\BUH_3" | findstr /P /I /V "Compressing"
XCOPY "E:\Backup\Data" "T:\BackupData" /s /h /y
jaroslav.h; +1 Ответить
12. viptextil 40 06.05.16 10:31 Сейчас в теме
(5) panihinnv, сейчас при наличии криптовирусов подключать удаленные файловые системы в виде дисков крайне опасно. Безопаснее по старинке, как у автора.
10. ayava 01.12.15 07:36 Сейчас в теме
надобно MD5 прикрутить, легко проверять на повреждения
11. comptr 30 01.12.15 08:16 Сейчас в теме
(10) ayava, я думаю, речь шла о целостности созданного архива при работающей 1С. MD5 тут ни к месту. Вот для проверки того, что целостность скаченной копии ранее созданного архива, MD5 ещё куда ни шло.
13. revned 6 23.09.16 12:32 Сейчас в теме
Мне проще использовать cobain backup. Больше года полет нормальный. Больше настроек. На ftp выкладывает, архивы делает.
15. bulas 211 24.04.18 12:26 Сейчас в теме
(13)Спасибо Алексей подсказал про cobain backup: действительно удобная программа для работы с FTP. Мой бат файл, с использованием ftp.exe, "капризничал".
14. 1cbit_tomsk 2 29.09.16 19:57 Сейчас в теме
Прикрутить бы ещё, что бы он с ФТПшникак удалял старые копии.
16. sultbec 9 11.11.20 20:48 Сейчас в теме
(14) перед выполнением архивирования можно выполнить скрипт в powershell
$DeistanationPath='ftp://server/path'
$User=''
$Password=''
$DeleteFileFromDeistanationDays=7

$FilesList = *()
  $ftp = [System.Net.FtpWebRequest]::Create($DeistanationPath)
  $ftp = [System.Net.FtpWebRequest]$ftp
  $ftp.Credentials = new-object System.Net.NetworkCredential($User,$Password)
  $ftp.UseBinary = $true
  $ftp.UsePassive = $true
  $ftp.Method = [System.Net.WebRequestMethods+Ftp]::ListDirectory
  $FTPResponse = $ftp.GetResponse()
  $ResponseStream = $FTPResponse.GetResponseStream()
  $FTPReader = New-Object System.IO.Streamreader -ArgumentList $ResponseStream
  while ($FTPReader.EndOfStream -ne $true)
  {
   try
   {
    $FileName = $FTPReader.ReadLine()
    $FilesList+=$FileName
   }
   catch
   {
    #Write-Debug $_
   }
  }
  $FTPReader.Close()
  #Получаем даты по каждому файлу и формируем новый список
  $FilesToDeleteList = *()
  foreach ($file in $FilesList)
  {
   $ftp = [System.Net.FtpWebRequest]::Create($DeistanationPath+$file)
   $ftp = [System.Net.FtpWebRequest]$ftp
   $ftp.Credentials = new-object System.Net.NetworkCredential($User,$Password)
   $ftp.UseBinary = $true
   $ftp.UsePassive = $true
   $ftp.Method = [System.Net.WebRequestMethods+Ftp]::GetDateTimestamp
   try
   {
    $FTPResponse = $ftp.GetResponse()
   }
   catch
   {
    continue
   }
   if ($FTPResponse.LastModified -lt [System.DateTime]::Now.AddDays((-1)*$DeleteFileFromDeistanationDays))
   {
    $FilesToDeleteList+=$file
   }
   $FTPResponse.Close()
   #$FTPResponse.Dispose()
  }
  
    $FilesToDeleteList
  #Производим удаление файлов
  foreach ($file in $FilesToDeleteList)
  {
   $ftp = [System.Net.FtpWebRequest]::Create($DeistanationPath+$file)
   $ftp = [System.Net.FtpWebRequest]$ftp
   $ftp.Credentials = new-object System.Net.NetworkCredential($User,$Password)
   $ftp.UseBinary = $true
   $ftp.UsePassive = $true
   $ftp.Method = [System.Net.WebRequestMethods+Ftp]::DeleteFile
   $FTPResponse = $ftp.GetResponse()
   $FTPResponse.Close()
   $FTPResponse.Dispose()
  }
 
Показать
Оставьте свое сообщение