Наиболее доступный инструмент для резервного копирования - командная строка. Найти более-менее приличную реализацию резервного копирования в Windows-системах средствами CMD/BAT-файлов можно, воспользовавшись любым поисковиком. Однако часто нет необходимости накапливать и хранить все созданные архивы, достаточно лишь нескольких самых последних. В этом случае необходима реализация резервного копирования с поддержкой глубины архивации. Найти реализацию поддержки глубины архивации в таких скриптах уже гораздо сложнее.
Вашему вниманию - относительно простой скрипт (CMD-сценарий), реализующий резервное копирование с заданной глубиной архивации.
Скрипт предназначен для создания резервных копий путем упаковки в архив содержимого произвольного каталога. Помимо собственно поддержки глубины архивации в скрипте раеализовано сохранение новых резервных копий в каталоги, имена которых формируются на основе даты/времени резервирования. При выполнении архивации RAR будет пытаться открывать также совместно используемые файлы (бывает полезно, чтобы не заставлять пользователей обязательно выйти из программы; например, при резервировании файловых баз 1С). Удобнее всего использовать такой подход к резервированию данных, если прописать запуск скрипта в планировщик.
Содержимое скрипта:
SETLOCAL enabledelayedexpansion rem Глубина архивации (количество последних архивов, которые должны быть сохранены) SET ArcDepth=5 rem Путь к каталогу, в который будут складываться резервные копии SET DirName=My Backup"s rem Путь к каталогу с новым бэкапом (%DATE: =0% %TIME: =0% - замена пробелов в %DATE% и %TIME% на нули) FOR /f "tokens=1-7 delims=/-:., " %%a IN ("%DATE: =0% %TIME: =0%") do (SET NewBkDir=%DirName%\%%c.%%b.%%a_%%d.%%e.%%f.%%g) rem Путь к лог-файлу SET LogFile=%DirName%\%DirName%.LOG ECHO ***** НАЧАЛО %DATE% %TIME% ***** >> "%LogFile%" IF NOT EXIST "%DirName%" (MD "%DirName%" ECHO "%DirName%" - создан >> "%LogFile%") ECHO Создание нового каталога для бэкапа: >> "%LogFile%" IF NOT EXIST "%NewBkDir%" (MD "%NewBkDir%" ECHO "%NewBkDir%" - создан >> "%LogFile%") ELSE (ECHO "%NewBkDir%" - существовал ранее >> "%LogFile%") rem Блок создания новой резервной копии SET SrcData=D:\My Src SET ArcName=%NewBkDir%\MySrc.rar ECHO Архивация "%SrcData%" с помощью RAR >> "%LogFile%" rar a -m5 -md4096 -ep1 -ri1 -dh -ilog"%LogFile%" "%ArcName%" "%SrcData%" rem Соблюдение глубины архивации (должны остаться только последние %ARCDEPTH% каталогов) ECHO Удаление старых бэкапов: >> "%LogFile%" SET Index=0 rem DIR /AD /B /O-D "%DirName%" - получение упорядоченного по дате списка каталогов, начиная с самых новых FOR /f "tokens=1" %%i IN ("DIR /AD /B /O-D "%DirName%"") DO (rem Первые %ArcDepth% архивов пропускаем, остальные удаляем SET /a Index+=1 IF !Index! LEQ %ArcDepth% (echo "%DirName%\%%i" - оставлен >> "%LogFile%") else (RMDIR /S/Q "%DirName%\%%i" echo "%DirName%\%%i" - удален >> "%LogFile%")) ECHO ***** КОНЕЦ %DATE% %TIME% ***** >> "%LogFile%" ECHO. >> "%LogFile%" ECHO. >> "%LogFile%"
Поскольку используется консольная версия архиватора RAR, необходимо, чтобы для скрипта был доступен RAR.exe. Для новых локализованных версий архиватора помимо файла RAR.exe также желательно наличие файла RarLng.dll, а для зарегистрированных пользователей - еще и файла rarreg.key. Для обеспечения доступности можно, например, просто положить все нужные файлы в рабочий каталог скрипта.
Под глубиной архивации здесь подразумевается не промежуток времени, за который хранятся архивы, а количество последних хранимых архивов. При использовании интервала резервирования в 1 день (сутки) глубина резервирования в днях будет совпадать с количеством хранимых архивов.
В переменных, содержащих пути к файлам/каталогам, можно использовать и абсолютные, и относительные пути, а также пробелы.
В примере содержится только один блок непосредственного создания резервной копии (расположен после соответствующего комментария). Можно добавить несколько таких блоков один за другим, например, скопипастив имеющийся блок и изменив значения переменных SrcData и ArcName.
Резервные копии раскладываются в каталоги, имена которых содержат дату и время выполнения резервирования в следующем порядке: год, месяц, дата, часы, минуты, секунды, сотые доли секунды (справедливо для русских региональных настроек). Это необходимо для того, чтобы алфавитная сортировка списка резервных копий совпадала с сортировкой по дате/времени создания копий (то есть просто для удобства работы с копиями). В случае использования региональных настроек, в которых порядок следования элементов даты другой, для получения аналогичного эффекта необходимо изменить порядок токенов %%a-%%g в команде
SET NewBkDir=%DirName%\%%c.%%b.%%a_%%d.%%e.%%f.%%g
Проверка существования каталога с резервной копией перед его созданием нужна, если вдруг захочется из имени каталога убрать «лишнее» (например, сотые доли секунд) и запускать скрипт чаще, чем позволяет такое имя. В этом случае ошибки при выполнении не будет, но RAR честно перезапишет уже имеющиеся в каталоге архивы.
«Родная» кодировка для CMD-сценариев - OEM (866), а для Windows-версии архиватора RAR - ANSI (Windows-1251). В связи с этим лог-файл грешит некоторой неудобочитаемостью, если сценарий сохранить в родной для него OEM-кодировке. С одной строны, для себя я счел этот недостаток некритичным (в редакторе/просмотрщике Far Manager не трудно нажать F8 для смены кодировки), а с другой стороны ничто не мешает сохранить сценарий в кодировке ANSI (вывод в консоль командами ECHO в сценарии не используется - только в лог-файл, - поэтому пользователь никаких кракозяблов не увидит, зато лог будет нормально записываться в одной и той же кодировке). Буду благодарен, если предложите более корректный способ «подружить» эти кодировки.
Теги: командная строка Windows, резервное копирование, глубина архивации
Резервное копирование The Bat! позволяет сохранить копии писем из популярного почтового клиента на внешнем носителе. В The Bat! входит утилита бэкапа, но гораздо удобнее пользоваться для создания резервной копии The Bat! универсальными программами, например, Handy Backup.
Как сделать резервную копию Bat! с помощью Handy Backup?
Копирование файлов The Bat! в Handy Backup осуществляется с помощью стандартного плагина Computer . Чтобы создать задачу, автоматически выполняющую для The Bat! копирование каталога, пожалуйста, воспользуйтесь нижеследующей инструкцией.
- Откройте Handy Backup. Откройте мастер создания новой задачи с помощью кнопки или клавиш Ctrl+N.
- На Шаге 1 укажите, что создаёте задачу резервного копирования .
- Перейдите к Шагу 2 и откройте на левой панели группу Local and Network Drives.
- Дважды щёлкните мышью на названии плагина Computer . Откроется новое окно.
- Найдите рабочий каталог The Bat!
- Если это необходимо, отметьте "галочками" данные для бэкапа The Bat в каталоге.
- Нажмите ОК. Затем перейдите к Шагу 3, нажав “Далее”.
Совет: вы также можете настроить для The Bat! резервное копирование файлов по маске, нажав на Шаге 2 кнопку “Файловые фильтры” и выбрав в открывшемся диалоге маски имён файлов, которые хотите скопировать (так, внутренние файлы бэкапа Bat имеют маску имени *. tbk ).
- На Шаге 3 вы можете выбрать подходящее хранилище для резервной копии The Bat!
- Шаги 4 и 5 нужны для настройки дополнительных функций резервного копирования. Если вам нужны подробные описания этих шагов, обратитесь к Руководству Пользователя .
- На Шаге 6 вы можете автоматизировать запуск вашей задачи , настроив время и частоту повтора или выбрав события, приводящие к запуску.
- Пропустите Шаг 7, если вам не нужно запускать дополнительные программы до или после задачи (например, вы не хотите останавливать и перезапускать The Bat! при выполнении операции резервного копирования.
- На Шаге 8 дайте вашей задаче имя. Завершите работу мастера задач.
Как выполнить для The Bat! восстановление писем?
Для The Bat! восстановление каталога можно выполнить автоматически. Создайте в мастере задач задачу восстановления , на Шаге 2 выберите хранилище резервных копий The Bat! и найдите в нём нужный файл backup.hbi , содержащий всю информацию о восстанавливаемых данных.
Рекомендуемое решение для бэкапа почты The Bat! и восстановления из резервной копии
Скачать
Купить!
Версия 8.0.2
от 8 мая 2019
. 104 MB
Программа резервного копирования
Handy Backup. 1200
RUB
за лицензию
С создавайте резервные копии The Bat! на любые устройства хранения бэкапов. Бесплатный полнофункциональный пробный период - 30 дней!
Основные возможности бэкапа и восстановления почты The Bat!
Гибкие настройки
По сравнению со встроенной утилитой the Bat! Backup, Handy Backup предоставляет множество дополнительных функций: шифрование, сжатие, возможность производить для The Bat! копирование по сети , хранение нескольких версий бэкапа почты Bat, метки времени бэкапа и т.д.
Разнообразие хранилищ
Вы можете сами выбирать, где хранятся резервные копии The Bat, полученные с помощью Handy Backup. К вашим услугам локальные диски, внешние диски USB, устройства NAS, серверы FTP, SFTP и FTPS, облачные сервисы (например, бэкап на Яндекс.Диск , Google Диск, Backblaze и др.).
Копирование папок Bat с помощью Handy Backup может быть запущено в точно указанное время (с интервалом от минуты до нескольких месяцев), или по системному событию (вход в систему,
В почтовой программе The Bat! можно настроить автоматическое создание резервной копии данных, которое будет происходить в заданное время.
Способ 1
Чтобы включить автоматическое резервное копирование, необходимо перейти в меню Свойства -> Настройка -> Система и выбрать в разделе Резервное копирование Копировать каждые … дней , значение дней можно при этом изменить. Далее необходимо задать время начала создания резервной копии.
Нажмите на кнопку Дополнительно , чтобы перейти к настройкам автоматического резервного копирования.
В разделе Общее можно выбрать один из двух методов резервного копирования. Стандартный метод включает в себя создание файла резервной копии, содержащего все отмеченные для копирования данные. Автоматически созданный файл резервной копии имеет название autobackup.tbk . Нажав на кнопку Обзор , вы можете изменить путь сохранения данного файла. Чтобы использовать второй метод Дополнение к ранее созданному архиву , необходимо выбрать уже существующий файл резервной копии, нажав на кнопку Обзор . При этом автоматически созданный файл резервной копии будет включать лишь те данные, которые отсутствуют в выбранном архиве. В данном разделе можно выбрать, какие именно данные будут включены в резервную копию (Свойства почтового ящика, Почтовые папки, Адресные книги, Настройки пользователя, Прикреплённые файлы), а также отметить те почтовые ящики и адресные книги, которые вы желаете сохранить в архиве.
В разделе Дополнительные можно добавить Комментарий к файлу резервной копии и установить Пароль . Восстановить данные из копии, защищённой паролем, можно будет лишь после ввода данного пароля.
В разделе Папки вы можете отметить те папки, которые будут включены в архив. Для быстрого выбора папок можно воспользоваться ранее созданным Набором папок .
Для сохранения заданных настроек нажмите кнопку ОК .
Способ 2
Автоматическое резервное копирование можно настроить также в Планировщике .
Перейдите в меню Инструменты -> Планировщик (комбинация клавиш Alt+F11 ). В списке событий вызовите контекстное меню, нажав правой кнопкой мышки, и выберите Создать (горячая клавиша Insert ). Далее необходимо настроить событие:
В поле Описание укажите название события, которое будет отображено в первой колонке списка событий.
Далее укажите дату и время начала события. Длительность автоматического резервного копирования указывать не нужно, так как событие будет автоматически завершено по окончании создания резервной копии.
Убедитесь, что событие активно .
При активной опции Оповещать об этом событии вы получите предупреждение за определённое время до начала создания резервной копии. Активируйте данную опцию, чтобы автоматическое резервное копирование не помешало вашей работе в почтовом клиенте – во время создания резервной копии функции программы будут недоступны.
Если в заданное время почтовый клиент не был запущен, автоматическое резервное копирование выполняться не будет, однако если вы активируйте опции При старте сообщать о пропущенных событиях и Исполнять действия пропущенных событий , то при запуске программы автоматическое резервное копирование данных будет выполнено.
В разделе Действия нажмите кнопку Добавить и выберите действие Резервная копия .
В разделе Повторение вы можете задать условия повторения действия автоматического резервного копирования, выбрав опцию Повторять это событие каждые и соответствующее значение секунд/минут/часов/дней/недель/месяцев/лет.
В разделе Специальное можно задать более точную частоту выполнения автоматического резервного копирования.
Чтобы изменить настройки события автоматического резервного копирования, необходимо перейти в Планировщик , выделить соответствующее событие в списке, вызвать контекстное меню нажатием правой кнопки мышки и выбрать Свойства (горячая клавиша Enter ).
Сегодня мы узнаем про то, что такое bat файл и заодно создадим один из них.
Думаю, что многие, так или иначе, периодически создают (так называемые backup -ы) тех или иных файлов и папок.
Вроде все привычно и делать ничего особо сложного не надо: вставить флешку, открыть "Мой компьютер ", найти что надо скопировать, выделить, тыкнуть мышкой, выбрать "скопировать", перебраться в нужный каталог, тыкнуть "вставить" и тд.
Но зачастую все эти клики и лишние телодвижения несколько утомляют и отнимают ценное время, особенно при частых копированиях одних и тех же данных. В этой статье я расскажу как , а точнее написания такой штуки как bat файл .
Поехали.
Bat файл - что к чему, вводная
Для начала немного о том, что такое bat файл , зачем он нужен и с чем его (или их) едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии :
Пакетный файл (т.е bat файл, от англ. batch file ) - текстовый файл в MS-DOS, OS/2 или Windows , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.
После запуска пакетного файла, программа - интерпретатор (как правило COMMAND.COM или CMD.EXE ) читает его строка за строкой и последовательно исполняет команды.
Пакетный файл - аналог shell script в Unix -подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения - автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера.
Примерами таких операций могут служить - обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п.
Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for ), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного - 1 или большее значение).
Пакетные файлы в DOS имеют расширение.bat ; для других операционных систем они могут иметь другие расширения - например, .CMD в Windows NT и OS/2 , или .BTM в 4DOS или подобных оболочках.
С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.
Как создать bat файл и использовать его
Давайте подготовим небольшое тестовое поле, чтобы было на базе чего экспериментировать. Откройте мой компьютер и создайте на диске C:\ папочку test . Зайдите в неё и создайте в ней папку .
Накидайте туда файлов (штук 5-10 ) - фотки, документы и тд и тп (любых короче). Поле для экспериментов готово. Далее нам надо создать, собственно, сам bat файл по нажатию на который у нас будет происходить копирование папки C:\test\testcopy в, скажем, папку C:\test\backup . Создавать вторую папку (которая backup ) не надо - она будет появляться автоматически.
Создать bat очень просто. Жмем правой кнопкой мышки там где хотим его создать (расположение не важно - можно прямо на рабочем столе) и выбираем "Создать " - "Текстовый документ ".
Задаем созданному файлу название и открываем его блокнотом или любым другим текстовым редактором. Т.е. на данный момент мы имеем открытый текстовый файлик, который называется, допустим, копирование.txt .
Добавляем в файл команду, например, для копирования
Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводиться по средством консоли (cmd ) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:
xcopy C:\test\testcopy C:\test\backup /f /i /y /s
Разъясняю что тут к чему:
- xcopy - это сама команда;
- C:\test\testcopy - это источник, т.е. папка откуда копируются файлы и каталоги;
- C:\test\backup - это результат, т.е. место, куда будут скопированы файлы и каталоги;
- /f /i /y /s - дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).
Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.
Какие есть (т.е. те, что я указал в данном примере):
- /f - выводит имена исходных файлов и файлов-результатов в процессе копирования
- /i - создает новый каталог в случае, если тот отсутствует в конечном пути
- /y - перезаписывает файл в случае, если он уже есть
- /s - копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
Как по мне - это основной список параметров необходимых для "тихого" копирования, т.е. без лишних вопросов о перезаписи, создания каталогов и прочей шушеры. Касательно остального синтаксиса можно почитать, например, .
Меняем формат файла и пробуем его запустить
Сначала открываем "Мой компьютер ", там переходим "Сервис " - "Свойства папки " - "Вид " и снимаем галочку "Скрывать расширение для зарегистрированных типов файлов ".
Жмем "Применить " и "Ок ". Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем "Переименовать " и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).
В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):
Собственно, все, что нам остается - это запустить этот файл простым кликом по нему мышки.
Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:
Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на.txt и открыв любым текстовым редактором.
Послесловие
Как я уже сказал и Вы сами наверное осознали - использование подобного bat файл "а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.
При желании можно поставить запуск этого bat -ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup "ов.
Если есть какие-то вопросы или проблемы - спрашивайте. Как всегда помогу чем смогу;)
PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела "Автоматизация администрирования ".. так что можете собой гордится:)
- Опишу и приведу примеры создания бэкапов используя командную строку.
- “Подробно” распишу команду xCOPY и как применить WinRar в создании бэкапа.
- Создание папкиархива с именем: текущая дата.
Процитирую баш.орг.ру:
Год за годом все новые админы бэкапят серверные винты на логических разделах тех же самых винтов.
Резервное копирование с использованием xCOPY
Пример скрипта, копирующего файлы в каталог f:backupnew , при втором запуске переименовывает каталог new в old , создает заново каталог new и копирует файлы. Т.е. батника дает возможность хранить “двухдневные” бэкапы:
del “f:backupold” /s /q
Rmdir “f:backupold” /s /q
Rename “f:backupnew” “old”
Mkdir “f:backupnew”
Xcopy “D:123*.*” “f:backupnew*.*” /E /F /H /R /K /Y /D
Можно поступить иначе, например команда md %date:~0,2%.%date:~3,2%.%date:~6,4% создает папку, имя которой – текущая дата:
mkdir “f:backup%date:~0,2%.%date:~3,2%.%date:~6,4%”
xcopy “e:superBD*.*” “f:backup%date:~0,2%.%date:~3,2%.%date:~6,4%*.*” /E /F /H /R /K /Y /D
rem Должно работать и без mkdir, т.к. xcopy сам бы создал папку. Подстраховка =)
Поясню по используемым ключам XCOPY:
/E Копирует все подкаталоги, включая пустые.
/F Выводит имена исходных файлов и файлов-результатов в процессе копирования.
/H Включает в операцию копирования скрытые и системные файлы. По умолчанию системные файлы игнорируются.
/R Копирует файлы с атрибутом «только для чтения».
/K Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут.
/Y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
/D[:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
О дополнительных ключах xcopy можно почитать на
Резервное копирование с использованием WinRAR
del “f:backupold” /s /q
Rmdir “f:backupold” /s /q
Rename “f:backupnew” “old”
Mkdir “f:backupnew”
“C:Program FilesWinRARRar.exe” a -m5 -r -t -dh -idp f:backupnewbackup.rar “D:superBD*.*” >> f:backupnewbackup.log
Если прикрутить сюда вышеописанную %date:~0,2%.%date:~3,2%.%date:~6,4% , то
“C:Program FilesWinRARRar.exe” a -m5 -r -t -dh -idp f:backup.rar “E:superBD*.*” >> f:%date:~0,2%.%date:~3,2%.%date:~6,4%.log
Ren “f:backup.rar” “%date:~0,2%.%date:~3,2%.%date:~6,4%.rar”
log-файлы я стер
Подробнее о ключах запуска Rar.exe можно почитать в файле C:Program FilesWinRARRar.txt
После того как батник создан и проверен – можно создать задание на автоматический запуск, например ночью, когда юзвер спит . Жми пуск – выполнить – вводи control schedtasks – жми ентер . Откроется планировщик заданий, там проще некуда.
Удачи!
З.Ы. Не бэкапьте на логических разделах тех же самых винтов.