10 августа, 2014 | Автор:
Naik | Категория:
Скрипты |
Нет комментариев »
Иногда возникает необходимость в создании полной резервной копии какой-нибудь директории.
Можно, конечно, каждый раз вручную архивировать папку, присваивая название архиву и проставляя номер или дату резервной копии. Но это быстро надоедает. Предлагаю написать скрипт(bat), который будет автоматизировать эту работу.
Допустим, есть директория
D:\Projects\ProjectX, для которой нужно сделать резервную копию, заархивировав WinRAR'ом. Название архива будет содержать, кроме названия, еще и дату создания. Для этого нужно выполнить следующие шаги:
- Создадим любым текстовым редактором файл с названием projectx.bat.
Желательно создать специальную директорию для хранения подобных скриптов (Например, D:\Scripts\backups)
- Вставьте следующий код в файл
cls
set rar="C:\Program Files\WinRAR\Rar.exe"
set source_dir="D:\Projects\ProjectX"
set backup_dir="D:\Backup\ProjectX\projectx_"
%rar% a -r -ep1 -agYYYY-MM-DD[HHMM] %backup_dir% %source_dir%
cls - необязательная команда, которая очищает консоль
- Переменная rar хранит полный путь к утилите rar.exe
Переменная source_dir хранит полный путь к директории, для которой создается резервная копия
Переменная backup_dir содержит путь до директории, где хранятся резерный копии(D:\Backup\), поддиректории (ProjectX) и префикса названия файла архива (projectx_)
Теперь рассмотрим параметры архивирования, которые мы передаем утилите rar.exe:
a - команда, указывающая на добавление файлов в архив
-ep1 - опция, которая позволяет исключить базовый путь из имен файлов, но сохраняет внутреннюю иерархию директории
-agYYYY-MM-DD[HHMM] - генерирует название файла на основе текущей даты и времени
Последние два параметра передаваемые утилите - это путь до архива (backup_dir) и архивируемая директория (source_dir).
Теперь рассмотрим все в картинках:
Директория для архивирования:

Запускаемый скрипт:

Директория с резервными копиями:

Содержимое архива:

Содержимое директории:
Почему лучше использовать абсолютные пути в скрипте?
Во-первых, это позволит хранить скрипты в одном месте, а резервные копии в другом.
Во-вторых, можно запускать скрипты из любого места, не заботясь о текущей директории.
Созданный нами скрипт можно запускать по мере необходимости или запускать планировщиком по расписанию. Если всё же решили использовать в скрипте относительные пути, то при создании задания в планировщике не забудьте указать рабочую директорию скрипта.
Добавить комментарий