Скрипты архивации

«Все пользователи делятся на две категории:
первые — которые пережили потерю своих данных
вторые — которым это еще только предстоит.«

(слоган якобы принадлежал APC, но достоверных подтверждений этому у меня нет)

Архивация xCopy

Резервное копирование файлов архивов на зеркало:

xcopy C:\Backup\*.rar D:\Backup\ /m /y /c

Резервное копирование документов на зеркало с подкаталогами и перезаписью без вопросов при ошибках:

xcopy C:\Documents\*.* D:\Backup\Documents\ /m /s /r /y /c

Ключи xcopy:

/d[:m-d-y] заменять измененные [не ранее даты]
/m - архивные со сбросом атрибута
/a - архивные без сброса атрибута
/k - копирует атрибуты
/s - копирование только не пустых каталогов
/r - перезапись файлов "для чтения"
/y - без интерактивных запросов
/c - продолжение копирования при ошибках
/n - использует короткие имена

Архивация xCopy возможна только для файлов, полный путь которых (включая литеру диска, путь и расширение) не превышает 259 символов!

Архивация RAR

Шаблон архивации ИБ 1С 7.7

c:\Progra~1\WinRar\rar.exe u IB2015 -r -m2 -dh -ag-YYYYWW -sca @IB2015.include -x@IB2015.exclude
 c:\Progra~1\WinRar\rar.exe u IB2015 -r -m2 -dh -ag-DD -sca @IB2015.include -x@IB2015.exclude
шаблон файла включений *.include
T:\ExtForms\*.*
T:\usrdef\users.usr
T:\*.dbf
T:\*.spl
T:\*.ocx
T:\*.dll
T:\*.cfg
T:\*.als
шаблон файла исключений *.exclude
*.cdx
*.tmp
Thumbs.db

Шаблон архивации файла ИБ 1С 8.x

c:\Progra~1\WinRar\rar.exe u IB2015 -m1 -dh -ep -ag-YYYYWW -y c:\1CIBs\IB2015\1Cv8.1CD
c:\Progra~1\WinRar\rar.exe u IB2015 -m1 -dh -ep -ag-DD -y c:\1CIBs\IB2015\1Cv8.1CD

Полезные опции

!!! Общий шаблон:

  • -m метод сжатия
  • -dh обработка совместно используемых файлов
  • -ep исключить пути из имен
  • ключ кодировки в файлах списков -sc
    • -sca списки в кодировке ANSI (Windows)
    • -sco списки в кодировке OEM (DOS)
    • -scu списки в кодировке Unicode
 -m4 -dh -ep1 -ag-YYYYMMDDHHMM
Опции сохранения пути в архиве

!!!:

  • -ep исключить пути из имен
  • !!!
-ag-YYYYMMDDHHMM
Опции динамического имени архива

Динамическое включение текущих даты и времени в имя архива:

  • создание текущего слепка на текущие дату и время
  • циклическое обновление дня месяца
  • обновление недельного архива
  • обновление месячного архива
-ag-YYYYMMDDHHMM
-ag-DD
-ag-YYYY-WW
-ag-YYYYMM
Сохранение версий

Сохранение в архиве версий обновляемых файлов:

  • сохраняет все версии
  • сохраняет фиксированное число версий
-ver
-ver5

Шаблон выгрузки 1С 8.x

Старый способ

Выгрузка файловой 1C 8.x ИБ

"C:\Program Files (x86)\1cv8\common\1cestart.exe" CONFIG /F"D:\1CIBs\APDEMO" /N"Администратор" /P"Пароль" /Out"C:\Temp\1c.log" /DumpIB"D:\Backup\APDEMO-%date%.dt"

Выгрузка серверной 1C 8.x ИБ

"C:\Program Files (x86)\1cv8\common\1cestart.exe" CONFIG /S"Server\APDEMO" /N"Администратор" /P"Пароль" /Out"C:\Temp\1c.log" /DumpIB"D:\Backup\APDEMO-%date%.dt"

Для выгрузки ИБ должна быть свободна (не использоваться ни одним пользователем).

Современный способ

Скрипт выполняет 3 операции:

  1. Завершает работу всех пользователей ИБ
  2. Запрещает работу с ИБ и выгружает данные в файл .dt
  3. Разрешает работу с ИБ
chcp 1251 

start /wait /d"C:\Program Files (x86)\1cv8\common\" 1cestart.exe ENTERPRISE /S ИмяСервера\ИмяБазы /N Логин /P Пароль /UCКодРазрешения /DisableStartupMessages /C ЗавершитьРаботуПользователей

start /wait /d"C:\Program Files (x86)\1cv8\common\" 1cestart.exe DESIGNER /S ИмяСервера\ИмяБазы /N Логин /P Пароль /UCКодРазрешения /DumpIB "D:\BuhCopy_%date:~-10%.dt" /DumpResult "D:\Read_%date:~-10%.txt"

start /wait /d"C:\Program Files (x86)\1cv8\common\" 1cestart.exe ENTERPRISE /S ИмяСервера\ИмяБазы /N Логин /P Пароль /UCКодРазрешения /C РазрешитьРаботуПользователей

exit

Шаблон копирования ROBOCOPY

полное зеркальное копирование директорий, файлов и разрешений:

robocopy /copyall /mir /xj С:Users D:Users/mir
  • /xj – очень важно!  Приказывает не следовать точкам соединения NTFS  (внутри Users на диске есть много символьных ссылок тоже), если не добавить то у
    вас будет множество проблем.
  • Убедитесь, что все файлы были скопированы (FAILED колонка = 0).

Архивация MS SQL Server

Шаблон скрипта архивации:

BACKUP DATABASE MyDB TO DISK = 'D:\Backup\mybackup.bak' WITH INIT, COMPRESSION

Шаблон скрипта автоматической архивации с динамическим именем архива:

Declare @datesuffix varchar(9) = FORMAT(GETDATE(),'-yyyyMMdd')
Declare @backupname varchar(100) = 'D:\Backup\mybackup'+@datesuffix+'.bak'
BACKUP DATABASE MyDB TO DISK = @backupname WITH INIT, COMPRESSION

Веб-папки WebDAV

Облачные сервисы Google Drive, Microsoft OneDrive, DropBox поддерживают работу с папками пользователя через расширение WebDAV.

  • Box.com https://dav.box.com/dav
  • OpenDrive.com – https://webdav.opendrive.com
  • Yandex Disk (15GB бесплатно, 42GB по акции)
    • https://webdav.yandex.com
    • https://webdav.yandex.ru
  • Google Drive (15GB) http://dav-pocket.appspot.com/docso (скрипт под Windows XP подключиться не смог)
  • Dropbox (платный) https://dav.dropdav.com/.
  • Otixo.com (2GB бесплатно) https://dav.otixo.com/

При использовании штатной утилиты синхронизации задается путь к папке отображаемой в облаке. Такая функциональность может оказаться недостаточной при использовании сложной структуры дисков и локальных папок. Помочь может применение ссылок, подробней описанное в статье «Ссылки NTFS«.

Подключение

Пример подключение корневой папки Яндекс.Диск протоколом WebDAV:

net use y: \\webdav.yandex.ru\ password /user:login

Пример подключение произвольной папки Яндекс.Диск:

net use y: \\webdav.yandex.ru\myfolder password /user:login

Подключение и взаимодействие с папками WebDAV осуществляется через WebFldrs. Ошибки в его работе исправляются пакетом webfldrs.msi (подробнее).

webfldrs.msi

Непосредственная архивация в WebDAV

Подключенная в системе Windows папка WebDAV доступна для файловых операций архиваторами в т.ч. из командной строки, но на практике запись файлов с размером даже 1MB нередко завершается ошибкой отложенной записи. Практика показала, что при архивации томами 64KB запись выполняется стабильно, хотя скорость архивации существенно снижается.

Дополнительные ключи rar-архивации из командной строки:

  • непрерывный многотомовый архив
  • многотомовый архив по 64Кб
  • добавление 10% данных для восстановления
-sv -v64k -rr10p

Архивация конфиденциальных данных в публичных и уязвимых хранилищах требует шифрования с паролем:

  • пароль для распаковки данных
  • пароль для получения списка файлов и распаковки данных
-pMyPassw0rd
-hpMyPa55word

Серверы архивации

Резервное копирование The Bat!

The Bat! прекрасно справляется с задачей архивации собственным штатными средствами, однако после восстановления из архива почтового ящика с включенной опцией «Оставлять письма на сервере» TheBat начинает повторно загружать все письма доступные на сервере так, будто никогда их не получал.

Это происходит по причине отсутствия в штатном архиве .tbk списка сообщений, которые TheBat уже загрузил. Этот список хранится в корне каждого ящика в файле ACCOUNT.M_R и представляет из себя текстовый файл с двумя колонками:

  1. вероятно, хранит день получения сообщения с 1.01.1970
  2. ID сообщения.
 ...
 17441 158188936911393413
 17449 158188936911393407
 17449 0cb0bc11b3c29cb47a82802a65007039
 17454 92f99e50ee521b06dca94e5066cc4119
 ...

Скрипт архивации:

продолжение в следующем выпуске...

 

Добавить комментарий

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