Программы для бэкапов windows server

Программы для бэкапов windows server Хостинг

Выполнение задач по расписанию

Вы можете настроить расписание запуска задач программы резервного копирования Windows Server на определённое время, с точно определённым интервалом повторения от минут до месяцев, а также по системному событию (например, при подключении хранилища USB к серверу).

Узнать подробнее о резервном копировании по расписанию
.

Резервное копирование Windows Server по расписанию

Запуск программ до/после бэкапа Windows Server

Handy Backup позволяет ещё большей автоматизировать создание резервной копии Windows Server, например, за счёт запуска других программ или пакетов команд до или после выполнения задачи Windows Server backup.

Виды резервного копирования Windows Server в Handy Backup

Выбор методов резервного копирования Windows Server

Настройка задач резервного копирования (Windows Server backup) позволяет прямо из программы создавать дифференциальные, инкрементальные и смешанные копии
отдельных данных, хранить несколько версий, шифровать серверную информацию и т.д.

Восстановление Windows Server 2019, 2016, 2012, 2008 из резервной копии

Помимо восстановления образов удалённых дисков
и виртуальных машин, Handy Backup позволяет восстановить бэкап сервера 2008, 2012, 2012R2, 2016, 2019 на «голое железо» или на произвольную машину как образ жёсткого диска, с использованием стандартной утилиты восстановления HBDR.

Бэкап Windows Server может быть выполнен с помощью Handy Backup для получения резервной копии на самых разных современных носителях данных:

  • Локальные сетевые диски, примонтированные и удалённые диски.
  • Устройства NAS, сетевые компьютеры, серверы FTP, SFTP и FTPS.
  • Облачные сервисы через WebDAV (например, бэкап на OwnCloud
    ).
  • Облачные хранилища Яндекс и Google Диски, OneDrive, Amazon S3 и др.

Различные устройства для хранения бэкапов Windows Server

Поддержка операционных систем

Windows Server 2019

Windows Server 2016

Windows Server 2012

Windows 2008 Server

Смешанный инкрементальный бэкап

Смешанный дифференциальный бэкап

Централизованный бэкап данных сети

Данные для бэкапа

Отдельные файлы и папки

Письма из MS Outlook

Письма из Gmail

Бэкап электронной почты (Mail.ru, Yahoo! Почта, Рамблер)

Горячий бэкап (без остановки работы)

Отдельные разделы жесткого диска

Таблицы разделов жесткого диска

ODBC-совместимые базы данных

Базы данных 1С

Базы данных MySQL

Базы данных Microsoft SQL

Microsoft Exchange Server (почта, задачи)

Базы данных Oracle

Базы данных DB2

Базы данных Lotus Notes/Domino

Базы данных MariaDB

Бэкап виртуальных машин VMware

Централизованный бэкап всех данных сети

Место хранения копий

Жесткий диск (HDD)

Внешний жесткий диск (USB, Firewire и т.д.)

Удаленный сервер WebDAV

Удаленный сервер FTP

Удаленный сервер SFTP

Удаленный сервер FTPS

Удаленный сервер Яндекс Диска

Удаленный сервер Google Drive

Удаленный сервер Dropbox

Удаленный сервер Backblaze

Удаленный сервер Mail.ru Hotbox

Удаленный сервер Mail.ru Icebox

Удаленный сервер OneDrive

Удаленный сервер OneDrive for Business

Удаленный сервер облака S3

Удаленный сервер Amazon S3

Сервер Handy Backup Server Network

Автоматические бэкап по расписанию

Работа в режиме Windows Service

Бэкап открытых файлов в фоновом режиме

Маски для поиска файлов

Исключающие фильтры для файлов

Импорт/экспорт регистрационного статуса

E-mail оповещения о выполнении операций

Запуск других программ до и после операций

Отчеты о резервном копировании

Экспорт и импорт задач

Модуль Disaster Recovery

Выборочное восстановление файлов

Восстановление по расписанию

Восстановление в указанную директорию

Восстановление с USB-флешки

Синхронизация локальных файлов и папок

Одно- и двухсторонняя синхронизация

Автоматическая синхронизация по расписанию

Синхронизация с FTP-сервером

Синхронизация с SFTP-сервером

Синхронизация с FTPS-сервером

Синхронизация с сервером WebDAV

Синхронизация с Яндекс Диском

Синхронизация с Google Drive

Синхронизация с Dropbox

Синхронизация с Backblaze

Синхронизация с Mail.ru Hotbox

Синхронизация с Mail.ru Icebox

Синхронизация с OneDrive

Синхронизация с OneDrive для бизнеса

Синхронизация с Amazon S3

Синхронизация с облаком S3

ОС Windows Server
содержит средство резервного копирования, помогающее сэкономить на покупке стороннего программного продукта. Настройка Windows Server backup занимает минимум времени.

backup

Установка средства, используемого для выполнения резервного копирования

Для установки Windows Server backup необходимо выполнить последовательно действия:

  1. Откройте Диспетчер серверов. В ней на панели мониторинга необходимо нажать Добавить роли и компоненты
    .
  2. На вкладке Перед началом работы
    используйте Далее
    .
  3. Выберите Установка ролей или компонентов
    и жмите Далее
    .
  4. Установите переключатель Выберите сервер из пула серверов
    и найдите подходящий сервер, куда будет устанавливаться средство копирования. Жмите Далее
    .
  5. На вкладке Выбор ролей сервера
    нажимайте Далее
    .
  6. На вкладке Выбор компонентов
    необходимо выбрать Система архивации данных Windows Server
    и нажать Далее
    .
  7. На вкладке Подтверждение установки компонентов
    используйте кнопку Установить
    . Дождитесь завершения установки.
  8. Нажмите Закрыть
    , чтобы окончательно выйти из окна мастера, используемого для добавления ролей и компонентов.

Установка компонентов windows backup

Рис. 1. Установка компонентов

Создание копии

Перед настройкой расписания проводимой архивации в Windows Server backup нужно добавить еще один винчестер, его вы будете использовать для сохранения копий. Из соображений экономии не нужно добавлять SSD-диски
. Вполне достаточно будет обычных SAS-дисков
или SATA-дисков
(что еще дешевле). Впрочем, о стоимости копирования мы еще поговорим, главное, сперва правильно настроить Windows Server backup.

Откройте Диспетчер серверов
, из меню Средства
выберите команду Система архивации данных Windows Server
.

Запуск средства резервного копирования windows backup

Рис. 2. Запуск средства резервного копирования

Основное окно средства копирования показано на рис. 3. На данный момент резервная копия не создавалась.

Система архивации данных Windows Server windows backup

Рис. 3. Система архивации данных Windows Server

Выберите команду Расписание архивации
(данная команда будет доступна на панели справа после перехода в раздел Локальная архивация
на панели слева). Для настройки расписания в Windows Server backup следуйте следующим инструкциям:

  1. На вкладке Приступа к работе
    нажмите кнопку Далее
    .
  2. Выберите, что именно нужно архивировать. Рекомендуется делать копию сервера полностью, чтобы можно было без проблем восстановиться из резервной копии в случае сбоя (рис. 4). Программа сообщит, сколько дискового пространства понадобится.
  3. Установите время архивации. Windows Server backup настройка это позволяет. Как правило, одного раза в день вполне достаточно. Но при желании вы можете делать копии чаще. Просто выберите регулярность и подходящее время архивации (рис. 5).
  4. Выберите тип места назначения, чтобы настроить Windows Server backup (рис. 6). Рекомендуется производить архивацию на жесткий диск для архивов, то есть использовать первый вариант. С другой стороны, дополнительный винчестер стоит определенных денег. Если средств нет, можно произвести архивацию на этот же диск — тогда нужен второй вариант — Архивация на том
    . Но мы настоятельно рекомендуем выполнять архивацию на внешний диск для архивов.
  5. На странице Выбор диска назначения
    жмите Показать все доступные диски
    .
  6. Нажмите на диск, добавленный вами ранее (рис. 7). На нем должно быть достаточно места.
  7. Нажмите кнопку ОК
    . Вы вернетесь на страницу Выбор диска назначения
    . Нажмите на него, потом кнопку Далее (рис. 8).
  8. Затем ответьте Да
     на два последующих запроса.
  9. Просмотрите сводку. Если все нормально, жмите Готово
    .

Конфигурация windows backup

Время создания архива windows backup

Рис. 5. Время создания архива

выбор места хранения копий windows backup

Рис. 6. Где хранить копии?

Выбор диска назначения windows backup

Рис. 7. Выбор диска назначения

выбор диска назначения windows backup

Рис. 8. Выберите диск и нажмите Далее
.

Выбор диска назначения windows backup

После нажатия кнопки Готово
, начнется форматирование диска для архивации. Нужно дождаться завершения этого процесса. Затем мастер сообщит вам время первой архивации. Нажмите кнопку Закрыть
. Архивация успешно настроена.

форматирование диска windows backup

Рис. 10. Форматирование диска для архивации

Время первой архивации windows backup


Рис. 11. Время первой архивации

Восстановление из резервной копии

Для восстановления из копии нужно нажать команду Восстановление
на панели Действия
(см. рис. 3).

Сперва нужно определить, где находится архив — на этом сервере или в другом расположении (рис. 12).

12.png

Рис. 12. Выбор расположения архива

Выберите дату создания архива (рис. 13).

выбор даты архива windows backup

Рис. 13. Выбор даты архива

Далее нужно уточнить, что именно нужно восстановить. Можно восстановить файлы и папки, тома, приложения или же только состояние системы, где было выполнено резервное копирование Windows Server.

windows backup

Рис. 14. Что нужно восстановить

Если вы выбрали первый вариант, далее мастер предоставит вам возможность отметить файлы и папки, подлежащие восстановлению. На рис. 15 показано, что будут восстановлены папки ftp-root
, inetpub и  php
.

выбор файлов windows backup

Рис. 15. Выбор файлов и папок

Выберите, как нужно восстанавливать. Обычно нужно восстановить файлы и папки в исходное расположение, но вы можете использовать другую папку. Также выберите, что сделать с элементами резервной копии, которые уже есть в папке. Как правило, нужно выбрать Перезаписывать существующие версии восстановленными
.

Параметры восстановления windows backup

Рис. 16. Параметры восстановления

Нажмите кнопку Далее
. Просмотрите сводку и если все правильно, нажмите кнопку Восстановить
(рис. 17). Остается только дождаться процесса восстановления, а потом нажать кнопку Закрыть
(рис. 18).

Сводка по восстановлению windows backup

Рис. 17. Сводка по восстановлению

Процесс восстановления windows backup

Рис. 18. Процесс восстановления

Немного математики

Резервное копирование данных Windows Server не единственное возможное решение. Платформа Xelent
предлагает клиентам услугу по созданию резервных копий. Все, что вам нужно — включить создание резервной копии непосредственно в панели управления сервером. Больше никаких сложных настроек выполнять не нужно.

Читайте также:  Moreen helm

Стоимость услуги очень просто рассчитать, используя формулу Z = G * S * (N / 7), где G — стоимость услуги берется за 1 гигабайт, S — суммарный объем всех дисков сервера, N — глубина хранения копий. Например, стоимость 28 дней
хранения резервных копий сервера с дисковым объемом 70 Гб составит всего 840 рублей в месяц
 — доступная плата за безопасность данных и ваше спокойствие. Минимально за сервер придется заплатить всего 210 рублей
в месяц — за 7 дней хранения
.

С другой стороны, можно добавить еще один винчестер, который вы будете использовать как диск архивации. Но он тоже платный. Давайте посчитаем, что выгоднее.

В нашем самом простом случае, когда на сервере не было, по сути, реальных данных, его резервная копия заняла 31 Гб (см. рис. 4). Размер основного жесткого диска нашего сервера — 70 Гб. Если вы добавите еще один жесткий диск SAS такого же размера, то это обойдется вам в 350 рублей в месяц. Однако такой диск способен вместить только две копии. Для хранения семи резервных копий потребуется объем ~220 Гб. SAS-диск
такого размера обойдется в  1100 руб/мес
.

Можно, конечно, добавить SATA-диск
размером 200 Гб. На него поместится 6 полных резервных копий и он обойдется в  600 руб/мес
. Заметьте, мы получили такие суммы при глубине резервного копирования 7 дней или меньше.

Как видите, результат налицо — всего за 840 рублей в месяц можно получить резервное копирование длительностью 28 дней, или же всего за 210 рублей (7 дней), если вам нужна экономия. Для этого ненужно ни устанавливать какие-либо
компоненты, ни настраивать расписание, все, что нужно — это включить услугу резервного копирования прямо в панели управления сервером.

резервное копирование windows backup

Рис. 19. Включение резервного копирования

Время на прочтение

Здесь мы рассмотрим, как сделать систему дифференциального бэкапа «из коробки» (ну почти), с привлечением минимального количества внешних модулей, в лучших традициях UNIX-way.

Будем использовать 7za.exe \ 7z, а также UNIX-like утилиту pdate.exe, чтобы со временем нам было работать также удобно, как и в ламповом *NIX, а заменой bash нам будет «простонародный» BAT. Предыстория и подробности — под катом.

Предыстория

Все началось с истории про невнимательного и бесстрашного пользователя, открывающего приходящие по личной почте файлы откройменя.exe на рабочем компьютере. К сожалению, это оказалось не какой-нибудь посредственной малварью, а вполне обычным шифратором. Но, помимо файлов юзера, которые, конечно же, восстановлению не подлежат, оказалась задета одна крошечная, но важная шара, доступ к которой был у всех.

Взглянув на сие зашифрованное непотребство, я с благодарностью вспомнил про то, что каждый день у меня делается бэкап этой (и не только этой) шары встроенными средствами Windows Server 2003 SP2 x64. Но, полистав этот бэкап, я понял, что в плане резервного копирования средствами самой Windows не все так радужно. Во-первых, полный бэкап оказался недоступен, а значит восстановить cold-data (файлы, которые меняются очень редко) вряд ли получится. Во-вторых, восстановление из созданного инкрементального бэкапа оказалось задачей нетривиальной — за каждый шаг получалось восстановить только данные, которые были изменены, и ничего более. Получается, чтобы восстановить хотя бы все измененные данные (раз полный бэкап оказался утерян), то пришлось бы перебирать по очереди все бэкапы — не совсем то, что я ожидал от инкрементального бэкапа в таком случае.

Кто то из вас может сказать — надо было проверять работоспособность бэкапа, и да, так оно и есть. Но тот из вас, кто работает в торговле, может понять, куда может уходить время админа — да-да, они самые, онлайн-кассы.

Крепко задумавшись, я вспомнил свое первое знакомство с системой инкрементального копирования fsbackup за авторством Максима Чиркова www.opennet.ru/dev/fsbackup
— гибкость, простота, в то же время обилие возможностей и открытый формат хранения архивов (tar). Жаль, что система разработана под *NIX / Linux. Google также не ответил на мой вопрос про подобную систему под Windows. Самое полезное, что я нашел — это краткий гайд
хабровчанина antip0d
и пример скрипта
для резервного копирования. Именно материал по последней ссылке я и использовал для своего скрипта.

Собираем систему

В первую очередь, скачиваем последнюю стабильную версию
. На момент написания это 16.04. Наш бэкап будем хранить в 7z архиве: поддержка многопоточности, шифрованных/многотомных архивов, а скорость извлечения из 7z выше скорости упаковки в 10-20 раз!

UPD: Спасибо хаброжителю Taciturn
за поправку — вы также можете использовать 7z.exe, уже установленный в вашей системе. Функциональных различий между 7z и 7za я не выявил.

Нас интересуют:

7za.exe — автономная версия 7-Zip.

7za.dll — библиотека для работы с архивами 7z

7zxa.dll — библиотека для распаковки 7z архивов.

Для 64-битных ОС используем те же файлы из каталога x64.

К сожалению, ссылка из используемого мной материала на утилиту pdate никуда не ведет, единственная найденная мной версия

pdate v1.1 build 2007.12.06

© 2005-2007 Pavel Malakhov 24pm@mail.ru

Ссылка из встроенного мануала pdate ведет туда же, а именно — в никуда.

pm4u.opennet.ru/mysoft/pdate.htm

Мной была использована следующая структура каталогов:

D:\winfsbackup
— корневая директория скрипта и связанных файлов

D:\winfsbackup\7z
— библиотеки и исполняемый файл 7za

D:\winfsbackup\backup
— место хранения бэкапов (можно переназначить путем правки переменных, как и любые другие используемые файлы)

D:\winfsbackup\lists
— списки включаемых и исключаемых файлов. О них расскажу чуть позже

D:\winfsbackup\log
— логи

D:\winfsbackup\pdate

D:\winfsbackup\tmp
— устанавливает рабочий каталог для временного базового архива

D:\winfsbackup\winfsbackup.bat
— сам скрипт.

Логика работы

После обработки переменных скрипт смотрит блок :Main, где указывается логика работы бэкапа — в каком случае должен выполниться новый бэкап, а в каком случае — обновить существующий базовый архив. По умолчанию, новый архив создается в начале месяца, а все файлы из директории backup перемещаются в \backup\old, или если базового архива не существует.

Уже во время написания статьи я понял, что нужно добавить возможность обновления базового архива — упрощенный вариант «полный бэкап раз месяц + дифференциальный бэкапы к нему» целесообразно использовать для файловых обменников размером до ~250 Гб. Для моего файлообменника в 550 Гб с преобладанием мелких файлов скорость бэкапа оказалась неудовлетворительна (почти 55 часов). Справедливости ради стоит сказать, что это не может служить сколь нибудь достоверным замером производительности — в процессе бэкапа выяснилось, что некоторые файлы недоступны (привет chkdsk), а бэкап складывался в раздел удаленного сервера, который тоже был занят операциями дискового ввода-вывода.

   :Main
REM Здесь описаны условия, в каком случае будет выполняться полный \ дифференциальный бэкап, либо обновление базового бэкапа.

REM Базовое условие - создание полного бэкапа если он не существует
IF NOT EXIST %baseArch% GOTO BaseArchive

REM полный бэкап раз месяц + дифференциальныt бэкапы к нему
IF %dm% EQU 1 GOTO BaseArchive ELSE GOTO UpdateArchive

REM обновляем базовый архив в 1 день месяца
REM IF %dm% EQU 1 GOTO UpdateBase ELSE GOTO UpdateArchive

REM Ежеквартальный полный бэкап (2, 19, 36 неделя года)
REM IF NOT %wn%.%dw% EQU 02.5 GOTO UpdateArchive
REM IF NOT %wn%.%dw% EQU 19.5 GOTO UpdateArchive
REM IF NOT %wn%.%dw% EQU 36.5 GOTO UpdateArchive

REM Обновляем базовый архив, каждую субботу
REM IF %dw% EQU 6 (GOTO UpdateBase) ELSE (GOTO UpdateArchive)

REM А здесь можно разместить действие, которое выполнится если предыдущие условия не отработают.
REM Я стараюсь избегать подобного поведения
ECHO Warning! No one condition matching, check :Main block of script >> %Log%
GOTO End
  
  

Первые 2 условия включены по-умолчанию, и описывают полный бэкап раз месяц + дифференциальные бэкапы. Остальные условия альтернативны, то есть при включении одного нужно выключить другое, или изменить логику работы на свой вкус.

Переменные

dm, dw, wn
— соответственно день месяца, день недели и номер недели (в численном выражении).

verboseLevel
— режим «говорливости», выдает информацию о том, куда будет записываться архив, и прочее. Полезно, когда вносишь в структуру скрипта серьезные изменения.

tmpDir
— место сохранения временного файла. По умолчанию, 7-Zip строит новый базовый файл архива в том же самом каталоге, где и старый базовый файл архива. Определяя этот ключ, вы можете установить рабочий каталог, где будет построен временный базовый файл архива. После того, как временный базовый файл архива построен, он копируется поверх первоначального; затем временный файл удаляется.

Дифференциальный бэкап

По умолчанию, в дифференциальный бэкап помещаются файлы, которых нет в базовом архиве, а также более новые файлы. При желании, это поведение можно изменить. Описания ключей есть в стандартном файле справки 7z.

Читайте также:  CMS-хостинг для сайтов в Timeweb

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

Некоторые опции командной строки

-bsp2
— выводит строку с прогрессом выполнения в STDERR. S TDOUT 7z перенаправлен в лог, прогресс, естественно, туда не пишется. Эта команда выводит его в STDERR, для большей информативности.

-ssw
— упаковывает файлы, открытые для записи другим приложением. Если этот ключ не установлен, 7-Zip не включает такие файлы в архив.

-slp
— крайне полезная опция. Режим больших страниц увеличивает скорость сжатия. Однако, есть пауза в начале сжатия, в то время когда 7-Zip распределяет большие страницы в памяти. Если 7-Zip не может разместить большие страницы, он размещает обычные маленькие страницы. Кроме того, Диспетчер задач не показывает реальное использование памяти программами, если 7-Zip использует большие страницы. Эта особенность работает только на Windows 2003 / XP x64. Также нужно иметь права администратора для вашей системы. Рекомендованный размер оперативной памяти для этой особенности — 3 Гб или больше. если вы используете режим -slp
, ваша система Windows может зависнуть на несколько секунд, когда 7-Zip выделяет блоки памяти. Когда Windows пытается выделить большие страницы из оперативной памяти для 7-Zip, Windows может подвесить другие задачи на это время. Это может выглядеть как полное зависание системы, но затем ее работа восстанавливается, и, если распределение прошло успешно, 7-Zip работает быстрее. Не используйте режим -slp
, если вы не хотите, чтобы другие задачи быть «подвешены». Кроме того, бессмысленно использовать режим -slp
для сжатия небольших наборов данных (менее 100 МБ). Но если вы сжимаете большие наборы данных (300 Мб или более) методом LZMA с большим словарем, вы можете получить увеличение скорости на 5% -10% в режиме -slp
.

-mmt=on
— устанавливает режим многопоточности. Если у вас многопроцессорная / многоядерная система, вы можете получить увеличение скорости с этим ключом. 7-Zip поддерживает режим многопоточности только для сжатия LZMA/LZMA2 и сжатия/распаковки BZip2.

-ms=off
— отключает создание solid-архивов. Качество сжатия при этом, конечно же, падает, однако есть весьма весомые плюсы — вы можете периодически обновлять данные базового архива чтобы уменьшить размер дифференциальный бэкапов, и так как архив не является целостным, не нужно будет его дополнительно «пережимать». Non-solid архив более стоек к повреждениям, и время извлечения из него происходит заметно быстрее.

Include / exclude листы

По умолчанию определено 2 типа списка — список включаемых файлов / директорий ( include_general.txt
), и 2 списка исключений ( exclude_general.txt
, exclude_regexp.txt
).

Список включения также поддерживает UNC-пути. Для того, чтобы поместить файл / директорию в исключения, путь должен быть относительным.

Например, если директория для бэкапа E:\foo\bar, и мы хотим исключить вложенную директорию E:\foo\bar\somefolder, то в exclude_general.txt мы должны добавить bar\somefolder или bar\somefolder\

Путь без слэша в конце может относиться как к файлу, так и к директории.

В exclude_regexp.txt вносятся исключаемые по regexp файлы, которые просматриваются рекурсивно. * — последовательность произвольных символов,? — любой символ.

7-Zip не использует системный синтаксический анализатор подстановочных знаков, поэтому «любой файл» для 7 Zip это ‘*’, а ‘*.*’ — файл, имеющий расширение.

Ну и наконец, скрипт целиком:

   @ ECHO OFF
REM Sources were found on http://sysadminwiki.ru/wiki/Резервное_копирование_в_Windows
CD %~dp0
TITLE winfsbackup
MODE CON: COLS=120 LINES=55
ECHO Setting vars...
REM --- Definition block ---
SET verboseLevel=1
SET tmpDir=D:\winfsbackup\tmp
SET run_7z=D:\winfsbackup\7z\7za.exe
SET run_pdate=D:\winfsbackup\pdate\pdate.exe
FOR /F "usebackq" %%a IN (`%run_pdate% e`) DO (SET dm=%%a)
FOR /F "usebackq" %%a IN (`%run_pdate% u`) DO (SET dw=%%a)
FOR /F "usebackq" %%a IN (`%run_pdate% V`) DO (SET wn=%%a)
SET LogDir=D:\winfsbackup\log
SET Log=%LogDir%\general.log
SET dDir=D:\winfsbackup\backup
SET dlmDir=D:\winfsbackup\backup\old
SET baseArch=%dDir%\general.7z
SET IncludeList=lists\include_general.txt
SET ExcludeList=lists\exclude_general.txt
SET ExcludeRegexp=lists\exclude_regexp.txt
SET updArch_dw=%dDir%\day_general_%dw%.7z
SET updArch_wn=%dDir%\week_general_%wn%.7z

IF %verboseLevel%==0 GOTO Main
ECHO Verbose mode ON!
ECHO Today is %wn% week of year, %dw% day of week.
ECHO Full quarter backup will execute (if enabled) on 2, 19 and 36 week, friday.
ECHO Temporary directory is %tmpDir%
ECHO Now logging into %Log%
ECHO Current backup directory is %dDir%, older backups stored into %dlmDir%

:Main
REM Here discribed conditions - in which case script will make new backup, update older one, etc
REM You are free to change these conditions
REM Make sure you envisaged all possible cases
REM Actions here are not disigned to be active more than 1 at same time, excluding base condition
REM If you want multiple conditions, you should edit it

REM Base condition - full backup will be created if it is not exist
IF NOT EXIST %baseArch% GOTO BaseArchive

REM Command below turns on making full backup at 1'st day of every month, in other days - increments
REM IF %dm% EQU 1 GOTO BaseArchive ELSE GOTO UpdateArchive

REM This option enables updating full backup every month
IF %dm% EQU 1 GOTO UpdateBase ELSE GOTO UpdateArchive

REM Uncomment these 3 commands if you want to run full backup ~every quarter (2, 19, 36 week of year)
REM IF NOT %wn%.%dw% EQU 02.5 GOTO UpdateArchive
REM IF NOT %wn%.%dw% EQU 19.5 GOTO UpdateArchive
REM IF NOT %wn%.%dw% EQU 36.5 GOTO UpdateArchive

REM This option enables rewriting base archive every saturday with new files in order to decrease size of increments
REM IF %dw% EQU 6 (GOTO UpdateBase) ELSE (GOTO UpdateArchive)

REM Here you can place default action if conditions of previous ones were not executed.
%run_pdate% "Z --- \A\c\t\i\o\n \w\a\s\ \n\o\t \s\e\l\e\c\t\e\d\! >> %Log%
ECHO Warning! No one condition matching, check :Main block of script
GOTO End

:BaseArchive
ECHO Clear %dlmDir% and move data of previous month to that dir...
IF NOT EXIST %dlmDir%\nul MKDIR %dlmDir%
DEL /Q %dlmDir%\*
MOVE /Y %dDir%\* %dlmDir% 2> nul

%run_pdate% "====== Y B =======" > %Log%
%run_pdate% "Z --- \S\t\a\r\t \t\o \c\r\e\a\t\e \n\e\w \a\r\c\h\i\v\e" >> %Log%

ECHO Creating new backup %baseArch%
%run_7z% a %baseArch% -w%tmpDir% -i@%IncludeList% -x@%ExcludeList% -xr@%ExcludeRegexp% -bsp2 -ssw -slp -scsWIN -mmt=on -mx3 -ms=off >> %Log%
IF %ERRORLEVEL%==0 (
	%run_pdate% "Z --- \E\x\i\t \c\o\d\e \0 \- \a\r\c\h\i\v\e \s\u\c\c\e\s\s\f\u\l\l\y \c\r\e\a\t\e\d!" >> %Log%
	) ELSE (
		IF %ERRORLEVEL%==1 (
		%run_pdate% "Z --- \W\a\r\n\i\n\g\! \R\e\c\i\e\v\e\d\ \e\x\i\t \c\o\d\e \1" >> %Log%
			) ELSE (
				IF %ERRORLEVEL%==2 (
				%run_pdate% "Z --- \E\x\i\t \c\o\d\e \2 \- \F\A\T\A\L \E\R\R\O\R\!" >> %Log%
				) ELSE (
					IF %ERRORLEVEL%==7 (
					%run_pdate% "Z --- \E\x\i\t \c\o\d\e \7 \- \C\o\m\m\a\n\d \p\r\o\m\p\t \e\r\r\o\r!" >> %Log%
					) ELSE (
						IF %ERRORLEVEL%==8 (
						%run_pdate% "Z --- \E\x\i\t \c\o\d\e \8 \- \N\o\t \e\n\o\u\g\h \m\e\m\o\r\y" >> %Log%
						) ELSE (
							ECHO Recieved error 255 - user stopped running process or exit code unknown! >> %Log%
						)
					)
				)
			)
		)
	)
)
GOTO End

:UpdateBase
ECHO Refreshing base archive
ECHO ******* ******* *******  >> %Log%
%run_pdate% "Z --- \S\t\a\r\t \t\o \u\p\d\a\t\e \a\r\c\h\i\v\e" >> %Log%
%run_7z% u %baseArch% -up0q1r2x1y2z1w0 -w%tmpDir% -i@%IncludeList% -x@%ExcludeList% -xr@%ExcludeRegexp% -bsp2 -ssw -slp -scsWIN -mmt=on -mx5 -ms=off >> %Log%
IF %ERRORLEVEL%==0 (
	%run_pdate% "Z --- \E\x\i\t \c\o\d\e \0 \- \u\p\d\a\t\e \s\u\c\c\e\s\s\f\u\l\l\y \f\i\n\i\s\h\e\d" >> %Log%
	) ELSE (
		IF %ERRORLEVEL%==1 (
		%run_pdate% "Z --- \W\a\r\n\i\n\g\! \R\e\c\i\e\v\e\d\ \e\x\i\t \c\o\d\e \1" >> %Log%
			) ELSE (
				IF %ERRORLEVEL%==2 (
				%run_pdate% "Z --- \E\x\i\t \c\o\d\e \2 \- \F\A\T\A\L \E\R\R\O\R\!" >> %Log%
				) ELSE (
					IF %ERRORLEVEL%==7 (
					%run_pdate% "Z --- \E\x\i\t \c\o\d\e \7 \- \C\o\m\m\a\n\d \p\r\o\m\p\t \e\r\r\o\r!" >> %Log%
					) ELSE (
						IF %ERRORLEVEL%==8 (
						%run_pdate% "Z --- \E\x\i\t \c\o\d\e \8 \- \N\o\t \e\n\o\u\g\h \m\e\m\o\r\y" >> %Log%
						) ELSE (
							ECHO Recieved error 255 - user stopped running process or exit code unknown! >> %Log%
						)
					)
				)
			)
		)
	)
)
GOTO End

:UpdateArchive
ECHO Updtaing existing full backup
ECHO ******* ******* *******  >> %Log%
%run_pdate% "Z --- \S\t\a\r\t \t\o \u\p\d\a\t\e \a\r\c\h\i\v\e" >> %Log%
IF %dw%==7 (SET updArch=%updArch_wn%) ELSE SET updArch=%updArch_dw%

REM --- Check files existence ---
IF EXIST %updArch% DEL /Q %updArch%

REM --- Create incremental archive ---
<nul set /p strTemp=Updating %baseArch% to incremental %updArch% archive
ECHO.
%run_7z% u %baseArch% -u- -up0q0r2x0y2z0w0!%updArch% -w%tmpDir% -i@%IncludeList% -x@%ExcludeList% -xr@%ExcludeRegexp% -bsp2 -ssw -slp -scsWIN -mmt=on -mx5 -ms=off >> %Log%
IF %ERRORLEVEL%==0 (
	%run_pdate% "Z --- \E\x\i\t \c\o\d\e \0 \- \u\p\d\a\t\e \s\u\c\c\e\s\s\f\u\l\l\y \f\i\n\i\s\h\e\d" >> %Log%
	) ELSE (
		IF %ERRORLEVEL%==1 (
		%run_pdate% "Z --- \W\a\r\n\i\n\g\! \R\e\c\i\e\v\e\d\ \e\x\i\t \c\o\d\e \1" >> %Log%
			) ELSE (
				IF %ERRORLEVEL%==2 (
				%run_pdate% "Z --- \E\x\i\t \c\o\d\e \2 \- \F\A\T\A\L \E\R\R\O\R\!" >> %Log%
				) ELSE (
					IF %ERRORLEVEL%==7 (
					%run_pdate% "Z --- \E\x\i\t \c\o\d\e \7 \- \C\o\m\m\a\n\d \p\r\o\m\p\t \e\r\r\o\r!" >> %Log%
					) ELSE (
						IF %ERRORLEVEL%==8 (
						%run_pdate% "Z --- \E\x\i\t \c\o\d\e \8 \- \N\o\t \e\n\o\u\g\h \m\e\m\o\r\y" >> %Log%
						) ELSE (
							ECHO Recieved error 255 - user stopped running process or exit code unknown! >> %Log%
						)
					)
				)
			)
		)
	)
)

:End
ECHO Done!
%run_pdate% "Z --- \D\o\n\e" >> %Log%
ping localhost -w 1000 -n 5 > nul

  
  

Вместо окончания

Всегда есть люди, которые против подобных решений, и всеми руками-ногами «за» использование всяких акронисов и прочего «махрового энтерпрайза».

Читайте также:  Исправить неверную ошибку безопасности при запуске Thunderbird Net: простые решения

Я же считаю, что решение должно быть соразмерно поставленной задаче, а в моем случае задача — иметь в укромном месте резервную копию файлопомойки, которую можно быстро развернуть — именно этим меня и разочаровал ntbackup.

Собранный пример можно посмотреть на YandexDisk
.

Там же — zip-архив для скачивания.

Конструктивная критика, советы, и тем более, тестирование — welcome!

Спасибо за внимание! Всем долгого аптайма, стабильного линка, и конечно, бэкапов под рукой.

История-жиза произошла со мной вот прямо недавно, да чтоб у меня мои 49,5 отсохли, если вру. Благо свои истории я пишу только из своей жизни, настоящие, матерные и потому душевные, подписчики соврать не дадут. Может, эта история, где-то немножко приукрашенная, но в том-то и дело что совсем-совсем вот немножко и исключительно в целях художественной целостности.

В четверг меня моя подруга сердца пригласила в гости на ужин, на пару рюмок чая и на её новый фирменный гороховый суп, рецепт которого она вычитала в интернете недавно.

Ну, когда обоим по 33 годика, понятно, зачем и почему, благо она не замужем, я разведён. До супа не дошло, пораньше спать легли, тем более, что оба на работе уебались, а поужинать я успел ещё до приглашения. Так, хлопнули винишка и под сериальчик уснули.

Утречком она меня заботливо на работу собрала тем, что нагрузила в догонку два полуторалитровых судочка (бабайка, контейнер, где как называют) этого самого горохового крем-супа. Ну, не пропадать же добру, одну порцию я бахнул на обед, вторую на ужин, ещё прямо на работе. Супец оказался реально бомбический (вот только я ещё не знал насколько «бомбический»). Нежная кремовая гороховая текстура, всё разварено хорошенько в кашу, насыщенный вкус копчёностей и лёгкая нотка грибов. Ух бля! (спойлер).

Угадайте слово русского языка в котором 6 согласных букв подряд? Правильный ответ – «Взбзднуть»

Началось всё в автобусе. Ощущение, будто ты надуваешься как воздушный шар, а затем твоя задница тебе говорит практически человеческим голосом – «Вот теперь я не твоя задница, а гвардии сигнальный корнет-горнист кавалерийской роты Преображенского полка, ща подам сигнал к атаке, так чтоб слышала вся армия под Бородино!!».

Ехать мне 9 остановок, я протерпел 5. После чего вышел, иначе бы мой пердак протрубил команду наступления и «лежала вся маршрутка». Причём не от смеха, а тупо задыхаясь.

Кстати, времени уже к 11 ближе, почти темнота. Думаю – не беда, 4 остановки по улице по центру города пешком это 20-25 минут, заодно пропержусь по дороге. Сука. Закон подлости. Я топаю, тихонько пускаю многочисленных шептунов каждые 15 секунд, а ветерок нежно тихонько веет в спину и несёт за мной это зловонное облако. Прохожие (а их много, каникулы же и много красивых девушек-студенток) проходя мимо меня, потом почему то начинают тереть слезящиеся глаза, кашлять и издавать звуки, похожие на рвотные позывы. Ну да, ну да, подумаешь, топает куда-то первый заместитель Тифуса Вместилища Губительного Роя
Максимального Хуилы.

Когда звон в ушах прошёл, а я обратно обрёл способность соображать после контузии, то неплохо так приссыкнул. Потому как понял, что только что бросил вызов на бой греческому Зевсу Громовержцу, скандинавскому богу грома и молнии Тору, ну и славянскому Перуну Молниерукому. Причём всем троим одновременно. Причём в стиле – «Э, сюда идите, щщщщенки, все трое, ща я покажу кто тут Истинный Бог Грома!».

Пощупал для начала джинсы сзади. Вроде целые, не лопнули от того как я шарахнул. Руку под штаны засунул, вынул посмотрел, нюхнул – вроде не в говне. Значит добрая румяная столовская Тётя Жопа подливы не добавила. Ну хоть какая-то хорошая новость.

А дальше? А дальше закон подлости снова никто не отменял. Выхожу из арки и нос к носу со старшей по нашему дому сталкиваюсь.

— «Ой, это ты? А слышал? Это что байкеры так катаются?»

Добрёл наконец до дома. Красный от стыда и музыкально подпёрдывающий в тональности до-мажор четвёртую симфонию Чайковского. Думал, хоть дома попустит. Сожрал пачку активированного угля и одно широко рекламируемое средство от расстройства желудка и отравлений.

Но тут состоялся коварный заговор.

Потому что тем временем шёл диалог в моём кишечнике:

— Гороховый Супчик: ЗдорОво, Пивчанский! Видал как я его пробздеться заставил? Чуть нижняя клапанная затворка не лопнула, вот ржака!

— Пивчанский: Здоров, горОх! Отвечаю, ржака была!

— Гороховый Супчик: А давай его напару подъебём?!

— Пивчанский: А давай!

Рецепт узнал, сварю себе и им в подарочек ещё, когда к младшим братьям в гости поеду, /// Злобноебучее « Хе-Хе-Хе-Хе-Хе-Хе-Хе!!!» ///. Надо их подъебнуть, надо.

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

– Вкусный настолько, что аж за ушами трещит, пока третью тарелку не доешь – фиг остановишься.

— В холодильнике храниться долго, не портится и не теряет вкуса дня 4 запросто, легко разогревается без проблем в микроволновке.

— Орудие возмездия недругам под соусом благонравственной доброжелательности.

— Если жена на что-то обиделась и демонстративно не готовит – типо «Теперь готовишь себе сам!», после приготовленного и съеденного супчика жена либо добровольно, с песней и поблёвывая, сваливает на пару дней к маме, либо зарекается навсегда от такого способа манипулирования как «готовить сам себе будешь!». ( Но лично я полностью поддерживаю и сам практикую, когда в паре по возможности готовят оба, ну его нахер простреливать трусы насквозь, денег не напасёшься на новые).

— Можно померяться мощью с любым из известных в мире Богов Грома.

— Если Вы девушка – можете показать своему мужчине, кто тут умеет реально дать копоти, чтоб мужик не выёбывался и не подпёрдывал под одеяло больше никогда. Хотя возможен вариант, что вы напару одеяло вообще в стратосферу отправите через выбитые изнутри окна.

— Долго готовить. Реально долго. Часов 6-7. Крем-суп же из гороха и остальных растительных и мясных ингридиентов. Разваривать до состояния крема вот честно долго.

— Относительно недёшево. Нужен солидный кусок качественных копчёных свиных рёбрышек, не считая остального.

— Вы сами точно 100% заточите тарелочку. А потом вторую. Гарантирую. Главное потом в арку во дворах не заходите, у меня до сих пор контузия сказывается.

— На Венере, когда по неосторожности на жопной тяге Вы точно прилетите туда, то там очень уныло, безлюдно и дышать нечем без скафандра. Впрочем, как и в квартире нечем дышать после супчика, если ты без скафандра, точно так же, да.

— Пятилитровая кастрюля сжирается за полдня семьёй из 3 человек. Потом, к вечеру, глядя на вашу квартиру из котла в аду, немецкие фашисты задаются вопросом – «Как это мы не додумались до такого способа травления газом людей?»

— Несмотря на все последствия вас 100% попросят приготовить это средство массового газового поражения снова. А это опять долго. \\ Заиграл Радио Тапок «Атака Мертвецов» \\

— Если вдруг (чудеса, не было и не будет такого) – этот супчик никому не понравится или про него забудете, и он протухнет – вонища кисляком будет такая, что соседи сбегут, роняя кал в скоростном забеге, а весь дом провоняет кисляком так, что его сносить придётся.

Если хотите – рецепт в комментах, правда завтра к обеду выложу, поздно уже., спать хочу.

А суп, так-то, реально Ооооочень вкусный.

Оцените статью
Хостинги