Бэкапы надо делать всегда. Особенно для серверов. Это аксиома. Существуют разные способы бэкапа - просто копирование, архивация, множество специализированного софта (в том числе, например, и штатный бэкап от Microsoft), работающего с дисками, лентами, МО и т.д. Но что делать, если сторонний софт устанавливать нельзя, а возможностей штатного не хватает? Например, хочется иметь бэкап некоторых ценных папок сервера, в автоматическом режиме, за, скажем, последнюю неделю? Писать свою софтину? Можно. Но не охота. Из пушки по воробьям. Охота обойтись просто скриптом. И в этом нам поможет хороший архиватор WinRAR , встроенный планировщик Windows и книга Джесси Торреса "Скрипты для администратора Windows ".
Итак, мне требуется:
Архивацией будет заниматься WinRAR , он же будет автоматически именовать файлы. Определять возраст и удалять старые файлы будет скрипт (VBScript ), а автоматизировать все я буду с помощью встроенного Планировщика Windows .
Основу скриптов составляют процедуры из книги Джесси Торреса
"Скрипты
для администратора Windows
" (а конкретно из главы 3
"Обслуживание файлов
"). Они были дополнены мной для реализации
моих задач.
Вот какие функции нам понадобятся (привожу код целиком):
Этот код помещаем в файл remove_old_backups.vbs .
Архиватор WinRAR обладает мощной поддержкой командной строки. В частности, он может формировать имя файла на основе пользовательского шаблона, включая в него разную служебную информацию, например, дату. Что нам, собственно говоря, и требуется. Кроме того, он умеет работать со списком файлов или директорий на архивацию, что сильно облегчает редактирование командного файла.
Я использую следующую командную строку для архивирования (прописана в файле make_daily.bat):
"c:\program files\winrar\winrar.exe" a -s -r -rr10p -dh -ed -m3 -ilogC:\DailyBackupScript\dailybackup.log -ag+YYYYMMDD X:\DailyBackup\backup
Разберем ее по составляющим:
Вся работа по созданию бэкапа строится на основе командных файлов (.bat-файлов). У меня их два:
Содержимое файла make_daily.bat (в одну строку):
@"c:\program files\winrar\winrar.exe" a -s -r -rr10p -dh -ed -m3 -ilogC:\DailyBackupScript\dailybackup.log -ag+YYYYMMDD X:\DailyBackup\backup %1
Содержимое файла backup_task.bat :
@cscript remove_old_backups.vbs call make_daily.bat @backup.lst
Для работы также необходимо создать файл backup.lst (обычный текстовый файл). Он должен содержать список директорий, которые включаются в бэкап. Каждая директория должна располагаться на отдельной строчке, например, так:
C:\Projects c:\VeryImportantProjects c:\Folder Name With Spaces\SubFolder
Обратите внимание, что имя директории-источника, содержащее пробелы, не обязательно заключать в кавычки, если вы пользуетесь файл-списком. Если же вы передаёте его напрямую, то кавычки обязательны. Не ставьте завершающий слэш - WinRAR этого не поймёт.
Планировщик можно вызвать через меню Start|Programs|Accessories|System Tools|Scheduled Tasks , или через Control Panel . Откроется папка Scheduled Tasks , в которую и надо добавить новую задачу. Это можно сделать следующим образом (я привожу только основные шаги).
Дважды щелкаем Add Scheduled Task, чтобы добавить новую задачу
Выберем наш bat-файл:
Зададим имя и периодичность задачи
Зададим время запуска
Зададим учетную запись и пароль, от имени которой будет выполняться задача. Обязательно!
Задача добавлена
Редактировать свойства задачи можно, щелкнув правой кнопкой мыши на иконке задачи в папке Sheduled Tasks и выбрав пункт меню Properties .
Вот мы и создали простейший, но мощный:) "бэкапер" (или бэкапщик? как правильно?) из подручных средств. Его можно расширять и настраивать, менять архиваторы, прикручивать
всякие проверки и т.д. И все это без использования сторонних продуктов и почти без
программирования.
Надеюсь, мой опыт окажется для вас полезным.
У ряда пользователей OS X возникают сложности при работе с RAR архивами. Кто-то их решает путем установки бесплатных утилит из AppStore, но есть и более правильное решение.
Вообще эта заметка для тех, кто не хочет грузить свой Mac лишним ПО и умеет пользоваться терминалом.
Автор архиватора WinRar на самом деле не обделил вниманием и другие OS. Версии для Linux, FreeBSD и Mac OS X доступны для скачивания на официальном сайте , просто у них нет графического интерфейса.
Скачиваем архив для OS X и распаковываем в любую удобную папку.
Для того, чтобы пользоваться командами для архивации rar и распаковки unrar , их нужно установить. Делается это следующим образом:
Команда переносит приложение rar в папку /bin системы: sudo install -c -o $USER rar /bin Команда переносит приложение unrar в папку /bin системы: sudo install -c -o $USER unrar /bin
или для El Capitan и выше:
Команда переносит приложение rar в папку /usr/local/bin системы: sudo install -c -o $USER rar /usr/local/bin Команда переносит приложение unrar в папку /usr/local/bin системы: sudo install -c -o $USER unrar /usr/local/bin
На этом все. Команды теперь будут доступны из любой директории, где бы вы не находились.
Проверить все ли хорошо можно просто выполнив в терминале rar или unrar . В результате Вы должны увидеть номер версии и другую информацию!
И все же, ниже мы собрали несколько типовых примеров использования архиватора через командную строку на OS X.
Создание архива каталога:
Rar a archive.rar folder/
Создание архива из нескольких файлов:
Rar a archive.rar file.jpg file.doc file.mov
Создание архива директории folder с паролем qwerty:
Rar a -pqwerty archive.rar folder/
Создание архива с паролем, шифрующим и список файлов:
Rar a -hpqwert archive.rar folder/
Создание архива без алгоритмов сжатия:
Rar a -m0 archive.rar folder/
Создание архива с максимальным сжатием:
Rar a -m5 archive.rar folder/
Распаковка архива в текущую директорию:
Unrar e archive.rar
Распаковка архива в отдельную директорию:
Unrar x archive.rar
На этом все. Спасибо за то, что прочитали до конца!
Обновлено 26 февраля, установка на OS X El Capitan и выше. Спасибо за комментарии e33 и neprokin!
Общее описание
Метод основан на сочетании возможностей Windows (назначенные задания) и архиватора WinRAR (управление из командной строки), WinRAR потребуется «необрезанный».
Настройки «Назначенного Задания» позволят установить:
Настройки WinRAR позволят: указать адрес архива, каталоги/файлы/списки для архивации. Уточнить состав архива по принципам: расширения файлов, время создания, наличие/отсутствие в архиве, «освежить» архив (обновить только файлы, которые в архиве есть), добавить файлы, вновь появившиеся по архивируемому адресу, удалить те, которые «пропали», впрочем, о возможностях WinRAR позже на примерах.
ВНИМАНИЕ! Если в настройках Winrar не указаны каталоги/файлы/списки для архивации, а указан только адрес архива: WinRAR займётся архивацией всей системы, и всего того, что доступно системе в данный момент. Это может привести к «нехорошему».
Проверено для : Windows 2000/2000 Server/XP/Server 2003/Windows 7/Server 2008.
Настройки на примерах
Описание по принципу: цель – способ решения, отклонения не описываю, только краткая справка в скобках. Уверен, на основе примеров Вы сможете составить именно Ваше задание. Итак:
ЦЕЛЬ : 1 раз в неделю архивировать все БД 1с, лежащие в одном каталоге. Задание должно добавлять в архив новое, удалять отсутствующее, статичные (неизменённые) файлы не трогать: обрабатываться будут только файлы: вновь созданные, изменённые, удалённые. На «автоматике» это будет выглядеть так:
Создаём в Windows новое "назначенное задание". Запускается мастер. Предлагает выбрать программу. Естественно, выбираем WinRAR . Пишем имя Задания, когда ему выполняться. Пошагово заполняем..., включите «Установить дополнительные…».
Что? Пишет, что работать не будет? Поэтому: открываем наше задание (входим в Панель Управления - Назначенные Задания), включаем флаг «Выполнять только при выполненном входе в систему», переходим на закладку «Параметры» и включаем «Разбудить комп…». Это надо для того, чтобы компьютер, оставленный в спящем режиме, «проснулся» для выполнения задания. Для запуска в назначенное время "разрешаем" компу использовать Спящий режим. Если по графику задание должно запуститься, к примеру, ночью, вечером перед этим комп не выключаем, а переводим в спящий режим. В нужный момент комп проснётся, выполнит, а может и выключиться после завершения, такая возможность есть в настройках WinRAR.
Итак, настраиваем WinRAR . Открываем задание, в первой строке «Выполнить» видим примерно:
C:\PROGRA~1\WinRAR\WinRAR.exe
Это полный путь запускаемой программы. Слово WinRAR может заменить эту строку, т.к. для Windows это УЖЕ команда.
WinRAR – заменитель.
В этом состоянии наше задание работоспособно, но оно только запустит программу WinRAR . Теперь настройки.
Настройки пишутся в параметре «Выполнить» после уже имеющегося (C:\PROGRA~1\WinRAR\WinRAR.exe) через пробел.
Общий синтаксис командной строки:
WinRAR – – //в этом примере «
Что требуется для нашего задания:
WinRAR u - as F :\ Arhiv \ Data _1 C . rar D :\ Data _1 C //выделил цветом сегменты строки. По цвету и комментарии.
u – команда. Обновляет файлы в архиве, обрабатывает только изменённые и добавляет новые.
-as – ключ. Удаляет из архива файлы, отсутствующие в источнике.
Таким образом, комбинация команды и ключа синхронизирует архив с исходными данными.
F :\ Arhiv \ Data _1 C . rar – это наш архив с адресом. Архив, хоть пустой, уже должен быть по указанному адресу.
D :\ Data _1 C – архивируемые данные. В данном случае – каталог.
ИТАК, порядок: команда – ключ/ключи – архив – файлы/@файл-список. Разделитель «_» (пробел).
В дальнейшем повторяться не буду. Только комментировать отличия.
ЦЕЛЬ : архивировать ценные данные (документы, избранное и пр.) ежедневно. Чтобы процесс не отвлекал, включает и выключает комп на автомате, добавлены 2 новых ключа. Отличие от 1-го задания в том, что данные находятся в разных каталогах. Придётся использовать файл-список. Файл-список – это текстовый файл, в котором:
-первая запись начинается с первого символа первой строки
-последующие записи начинаются с новой строки
-ни каких лишних символов, комментариев и пр.
Если указываете вместо адреса данных файл-список, учтите, в этом случае параметр (адрес файла) начинается с символа @ (собака).
В файл-список можно включать файлы, каталоги, выбрать файлы по расширению и пр.
Нам потребуется строка:
WinRAR u - as – dh – IOFF F :\ Arhiv \ Doc . rar @ C :\ SpisokArh . txt
-dh – позволяет архивировать открытые в данный момент файлы. Включил потому, что частенько компьютер отправляю в «спячку» с открытыми документами и программами (кроме 1с). При этом самое плохое – в архив пойдёт и несохранённая копия файла. А это не критично, т.к. при открытии такого архива компьютер «вспомнит» о несохранённых версиях. Что с ними делать – Ваше дело.
-IOFF – выключение компьютера после завершения архивации. Т.о., компьютер это делает совершенно самостоятельно. Одно НО: именно ВЫКЛЮЧЕНИЕ, а не переход в спящий режим. В связи с этим рассчитывайте размещение заданий во времени, если у Вас несколько заданий на ночь, используйте этот ключ только на последнем задании, да так, что-бы этот ключ не "тормознул" другие задания, которые не успели завершиться.
@ C :\ SpisokArh . txt – файл-список. Вот его текст :
C:\Documents and Settings\Admin\Избранное
C:\Documents and Settings\Admin\Рабочий стол\Закачки
Не буду описывать все вариации, которые использую, думаю, у Вас фантазии на большее хватит, я лишь намекнул. Читайте справку WinRAR , там полные списки ключей и команд, рекомендации по использованию.
Дополнительно
P . S .: Извиняюсь за скудность примеров: описал только самое наглядное. Дальше – дело Ваших потребностей и фантазии. Читайте справку WinRAR, раздел "Режим командной строки".
Синтаксис командной строки
WinRAR допускает управление из командной строки. Общий синтаксис командной строки таков:
WinRAR <команда> -<ключ1> -<ключN> <архив> <файлы> <@файл-список> <путь для извлечения\>
команда | Комбинация символов, определяющая действие, которое будет выполнять WinRAR. |
ключ | Ключи используются для определения специфических действий, степени сжатия, типа архива и пр. |
архив | Имя обрабатываемого архива. |
файлы | Имена обрабатываемых файлов. |
файл-список | Файлы-списки - это обычные текстовые файлы,
содержащие имена файлов для обработки. Каждое имя файла должно быть
указано на отдельной строке и начинаться с первой позиции строки. В
файл-список допускается помещать комментарии, признак начала
комментария - символы //. Например, для архивирования файлов *.txt
из папки c:\work\doc, файлов *.bmp из папки c:\work\image и всех
файлов из папки c:\work\misc можно создать backup.lst, содержащий
следующие строки:
c:\work\doc\*.txt//резервная копия текстов c:\work\image\*.bmp//резервная копия рисунков После этого для архивирования достаточно будет выполнить команду: winrar a backup @backup.lst В одной командной строке разрешается указывать как обычные имена или группы файлов для обработки, так и файлы-списки. Если не указаны ни файлы, ни файлы-списки, то подразумевается шаблон *.* (т.е. WinRAR обработает все файлы). |
путь для извлечения | Используется только с командами e и x и указывает папку, в которую нужно извлекать файлы. Если эта папка не существует, то она будет создана. |
Примечания
а) Если не указаны ни файлы , ни файл-список , то подразумевается шаблон *.* , т.е. WinRAR обработает все файлы.
б) Если не указано расширение архива, то WinRAR будет использовать формат архива по умолчанию, выбранный в профиле архивации по умолчанию, но если вы хотите указать тип архива явно, то это можно сделать добавлением к имени архива расширения RAR или ZIP.
в) Ключи, введённые в командной строке, имеют более высокий приоритет, чем соответствующие установки в диалоге конфигурации, т.е. используются параметры, заданные ключами.
г) Для команд C , E , S , T , RR , K и X в имени архива допускается использовать шаблоны, поэтому одной командой можно обработать сразу нескольких архивов. Более того, если вместе с этими командами указать ключ , то поиск архивов будет вестись и во всех вложенных папках.
д) Некоторые команды и ключи применимы только к архивам RAR, некоторые к архивам RAR и ZIP, а некоторые к архивам всех поддерживаемых форматов. Это зависит от возможностей, заложенных в формат архива.
е) Команды и ключи не зависят от регистра символов, поэтому вы можете набирать их как строчными, так и прописными буквами.
Синтаксис командной строки
WinRAR допускает управление из командной строки. Общий синтаксис командной строки таков:
WinRAR <команда> -<ключ1> -<ключN> <архив> <файлы…> <@файл-список…> <путь для извлечения\>
команда | Комбинация символов, определяющая действие, которое будет выполнять WinRAR. |
ключ | Ключи используются для определения специфических действий, степени сжатия, типа архива и пр. |
архив | Имя обрабатываемого архива. |
файлы | Имена обрабатываемых файлов. |
файл-список | Файлы-списки - это обычные текстовые файлы, содержащие
имена файлов для обработки. Каждое имя файла должно быть указано на
отдельной строке и начинаться с первой позиции строки. В файл-список
допускается помещать комментарии, признак начала комментария - символы
//. Например, для архивирования файлов *.txt из папки c:\work\doc,
файлов *.bmp из папки c:\work\image и всех файлов из папки c:\work\misc
можно создать backup.lst, содержащий следующие строки:
c:\work\doc\*.txt//резервная копия текстов c:\work\image\*.bmp//резервная копия рисунков После этого для архивирования достаточно будет выполнить команду: winrar a backup @backup.lst В одной командной строке разрешается указывать как обычные имена или группы файлов для обработки, так и файлы-списки. Если не указаны ни файлы, ни файлы-списки, то подразумевается шаблон *.* (т.е. WinRAR обработает все файлы). |
путь для извлечения | Используется только с командами e и x и указывает папку, в которую нужно извлекать файлы. Если эта папка не существует, то она будет создана. |
Примечания
а) Если не указаны ни файлы , ни файл-список , то подразумевается шаблон *.* , т.е. WinRAR обработает все файлы.
б) Если не указано расширение архива, то WinRAR будет использовать формат архива по умолчанию, выбранный в профиле архивации по умолчанию, но если вы хотите указать тип архива явно, то это можно сделать добавлением к имени архива расширения RAR или ZIP.
в) Ключи, введённые в командной строке, имеют более высокий приоритет, чем соответствующие установки в диалоге конфигурации, т.е. используются параметры, заданные ключами.
г) Для команд C , E , S , T , RR , K и X в имени архива допускается использовать шаблоны, поэтому одной командой можно обработать сразу нескольких архивов. Более того, если вместе с этими командами указать ключ , то поиск архивов будет вестись и во всех вложенных папках.
д) Некоторые команды и ключи применимы только к архивам RAR, некоторые — к архивам RAR и ZIP, а некоторые — к архивам всех поддерживаемых форматов. Это зависит от возможностей, заложенных в формат архива.
е) Команды и ключи не зависят от регистра символов, поэтому вы можете набирать их как строчными, так и прописными буквами.