Резервное копирование отдельных файлов средствами win 7 через планировщик заданий
Столкнулся недавно с такой дилеммой. Работу работаю на нетбуке, а дома использую стационарный компьютер, так вот, что бы не включать ноутбук ради пары файлов, решил устроить такое себе резервное копирование папки с рабочими доками. можно было бы поставить какой то софт для копирования, но для столь простой задачи тратить ресурсы маленького нетбука, считаю расточительством. Не долго думая, было принято решение использовать возможности Windows. А именно: «Планировщик заданий» и команду «xcopy«. Можно использовать утилиту copy но на мой взгляд, она функционально устарела. Говорю сразу, если ваши задачи сложнее чем просто копирование определенных файлов в другую директорию, то вам потребуются более сложные скрипты или готовые программы по резервному копированию. Все представленное ниже, соответствует Windows 7. На Windows XP могут отличатся параметры и расположения файлов и программ.
Настройка автоматического архивирования файлов
Сама настройка не сложная и вполне под силу даже начинающему пользователю. Для начала нам необходимо открыть Планировщик заданий.
Резервное копирование файлов по расписанию Планировщика заданий
Рассмотрим пример настройки копирования файлов по расписанию в Windows 10.
- Создаем папку куда будут помещаться копии выбранных файлов. Лучше создать такую папку на диске или разделе, где нет операционной системы. Иначе, в случае краха системы эта папка будет не доступна. Обычно такую папку создают на диске «D:». У меня много дисков, поэтому я создам такую папку на диске «F:».
Папку назову на латинице «arhiv».
Вы можете назвать её по-своему, но обязательно на латинице.
- Открываем «Поиск» и пишем в нем слово «планировщик». Выше должна появиться ссылка «Планировщик заданий».
Иконка «Поиск» находится на панели задач справа от кнопки «Пуск».
Видео «Пропал значок поиска в Windows 10»
- Откроется окно Планировщика заданий. Справа в окне «Действия» выбираем пункт «Создать простую задачу».
- В следующем окне в поле «Имя» напишем название нашей задачи. Пишем «Архив папки».
И ниже жмем кнопку «Далее».
Вы можете написать что-то свое. Это наименование ни на что не влияет. Оно необходимо, что потом эту задачу можно было найти в общем списке.
- В следующем окне необходимо установить периодичность задачи. Оставляем «Ежедневно». И опять жмем кнопку «Далее».
- В новом окне меняем только время, когда компьютер будет включен и программа сможет создать архив.
- На следующем шаге ничего не меняем, только жмем кнопку «Далее».
- И последний шаг. Жмем кнопку «Обзор» и находим запускающий файл (WinRAR.exe) архиватора WinRAR. Он находится:
C:\Program Files\WinRAR
В окошке «Добавить аргументы» пропишем такую строку:
a -r -ag -u -rr8 -y F:\arhiv\ C:\Bonus
- Ключ а задает архивацию файлов которые находятся в выбранной папке;
- Ключ —r задает архивацию вложенных папок;
- Ключ —ag добавляет к имени архива текущую дату;
- Ключ—u включает обновление архива;
- Ключ —rr8 добавляет служебную информацию для восстановления архива, если он повредится;
- Ключ —y включает автоматическое подтверждение запросов архиватора;
- F:\arhiv – это путь к папке архива, которую мы создали;
- C:\Bonus — это папка на диске С: под названием «Bonus» и путь к ней.
- И напоследок жмем кнопку «Готово».
Шаг 2. Добавляем задание в планировщик.
Для начала сделаем ярлык нашего скрипта и выкинем его, например, на рабочий стол. В параметрах ярлыка можно указать запуск минимизированным, что-бы не мешал работать.
Откроем Планировщик заданий В Win 7 он расположен ПУСК — Все программы — Стандартные — Служебные — Планировщик заданий. Или через Выполнить (на клавиатуре +R): %windir%\system32\taskschd.msc /s
Нежно нажимаем Создать простую задачу и пошагово настраиваем нашу задачу. После определения периодичности и времени запуска скрипта, в разделе Действие, нужно начать на «запустить программу«. Следующий этап — указать путь к нашему ярлыку. Это все. Теперь в указанное вами время будет запускаться наш скрипт и выполнять тихое копирование файликов.
Набросал ещё один маленький BAT скрипт для резервного копирование папки. Внесите свои данные и через scheduler настройте расписание резервного копирования.
Пример настройки расписания
В Task Scheduler настраиваем новое задание.
Выбираем пользователя, от имени которого будет выполняться резервное копирование. После сохранения задания нас спросят пароль от него. Ставим галку Run whether user is logged or not - запускать даже если юзер не залогинен.
В триггерах настраиваем расписание. У меня резервное копирование происходит раз в сутки.
Указываем ссылку на наш BAT файл.
Проверяем настройки. OK.
Теперь папка будет резервироваться раз в день. С настройкой NumFolders=10 в BAT файле мы будем хранить данные за последние 10 дней.
Если хотите хранить ежедневные и ежемесячные резервные копии - сделайте два BAT файла и два расписания резервного копирования в разные папки.
Каждый пользователь компьютера думает о том, как сделать так, чтобы самые ценные файлы сохранялись или дублировались автоматически в более надежном хранилище. Существует много способов хранения файлов. Мы же сегодня рассмотрим автоматическое архивирование по расписанию при помощи архиватора WinRAR и Планировщика заданий.
Ссылки
Шаг 1. Пишем исполняемый скрипт.
Начнем пожалуй с синтаксиса команды xcopy:
xcopy источник [ результат ] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [] [/n] [/o] [/x] [/exclude:файл1[+[файл2]][+[файл3]] [] [/z]
источник Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
результат Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию. /w Выводит предложение тыцнуть любую кнопку для выполнения.
Не буду выписывать все ключи, опишу только самые важные на мой взгляд:
Прочие полезности командной строки, подходящие для нашей задачи:
:: - Самый простой комментарий
pause - остановка выполнения скрипта, следует использовать для отладки, что бы успеть прочитать вывод команды.
@ - Этот символ отключит вывод команды на экран, при этом вывод результата выполнения команды останется. Следует поместить перед командой.
@echo off - Эта команда отключит вывод команд на экран на протяжении выполнения всего пакетного файла, при этом вывод результата выполнения останется. Ее следует разместить в начале файла.
И так создаем наш скрипт. Открываем текстовый редактор и пишем все команды согласно нашим потребностям. Пример ниже. После наполнения нужно сохранить файл с расширением .cmd или .bat
:: Копирование на флешку
@ xcopy D:\Folder H:\Folder_copy /c/h/e/r/y/v/q
:: Копирование в облачное хранилище
@ xcopy D:\Folder D:\YandexDisk\Folder /c/h/e/r/y/v/q /exclude:e.txt
pause
При таком оформлении на экран будет выведено минимально текста.
Если файлов у вас не много то можно убрать /q, тогда в колонку будут перечислены все скопированные файлы.
Сама суть двойного копирования в следующем:
Первая строка копирует на карту памяти нетбука. Ведь куда проще взять катрочку и переставить в комп, чем включать нетбук и копировать файлы.
Вторая строчка сохраняет на Яндекс.Диск, таким образом файлы можно просматривать даже на смартфоне. Для синхронизации можно использовать любой подобный сервис (DropBox, BoxNet, Skydrive, Google Drive…).
Есть допустим файлы или папки которые вам не надо копировать в целях конфиденциальности или еще каких других. Создаем текстовый файлик, например, как у меня — e.txt. В содержимом пишем согласно следующего формата:
\Folder\ - исключить папку
file.doc - исключить файл
.avi - исключить все файлы данного типа
Файл исключения должен быть рядом со скриптом, если он в другом месте то нужно указать полный адрес к файлу.
После завершения тестирования можно убрать pause и после выполнения окно само закроется.
Как открыть Планировщик заданий
- Открыть его можно через меню Пуск в средствах администрирования.
- Через Панель управления. Устанавливаем в просмотре «Крупные значки» и ниже находим и открываем «Администрирование» и находим там «Планировщик заданий».
- и в поле «Открыть» введите команду «tmsc» (без кавычек) и ниже нажмите кнопку «ОК».
Функции
- С помощью xcopy делает резервные копии папки.
- Каждый бэкап сохраняется в отдельную подпапку вида DD.MM.YYYY_hhmmmss.
- С помощью 7-Zip архивирует резервные копии.
- Удаляет старые резервные копии.
- DirName - название папки
- SourceDir - что бэкапим
- BackupDir - куда бэкапим
- NumFolders - сколько подпапок с бэкапами хранить
- a7z - путь к 7z.exe
Проверка работы автоматического архивирования файлов
Для того, чтобы проверить работу нашей задачи, проделаем следующее:
- Выделим в левой части Планировщика заданий запись «Библиотека планировщика»;
- Перейдем в центральную часть окна и найдем в ней нашу задачу «Архив папки» и выделим её мышкой.
- После этого переходим в правую часть окна под названием «Действия» и щелкнем мышкой по пункту «Выполнить».
- Теперь переходим в папку «arhiv» и проверяем созданный архив. Щелкаем по нему дважды и убеждаемся, что внутри находится папка «Bonus» со всеми файлами в ней.
Видео «Как настроить автоматическое архивирование файлов»
Таким простым способом можно настроить автоматическое архивирование файлов.
Вопрос резервного копирования волнует каждого специалиста, ответственного за сохранность вверенных ему бесценных служебных документов/баз данных/иных файлов. Для того, чтобы чувствовать себя более уверенно перед лицом различных вероятных форс-мажоров, необходимо периодически выполнять резервное копирование критически важных данных. Не менее актуальна проблема сохранения нажитого непосильным трудом и для домашних пользователей.
Вашему вниманию предлагается простой, но эффективный скриптик, помогающий решать данную проблему.
Имеем исходные условия:
Операционная система: MS Windows XP, 2003 и т.п.;
Объекты резервирования: Папки и файлы, находящиеся на локальных и сетевых дисках в объеме ~200 ГБ;
Бюджет: 0 руб.;
Количество специально-обученных сотрудников для настройки процесса: 1 чел.
Количество специально-обученных сотрудников для обслуживания процесса: 0 чел.
Задача: ежедневное полное резервное копирование данных, хранение заданного количества созданных бэкапов без участия оператора.
На просторах Сети можно найти довольно большое количество различных программ решающих подобную задачу. Согласно задачи и поставленных условий были найдены, установлены и протестированы в условиях приближенных к боевым следующие программы: Cobian Backup (9, 10), Toucan, Areca, FBackup, Backup2Net и программа резервного копирования Samsung Auto Backup (идет в комплекте с одноименным съемным диском).
И так, приступим. Сначала приведу полный текст скрипта без комментариев. Полный разбор с комментариями см. ниже.
@Echo Off
echo %date% %time% ***Start***
SetLocal EnableDelayedExpansion
Set $SRC=list_add.txt
Set $EXC=list_excl.txt
Set $DST=D:\backups
Set $PSW=password
Set $COMPR=1
Set $COPIES=7
C:\"Program Files"\7-Zip\7z.exe a -t7z -mhe=on "%$DST%\files%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.7z" @%$SRC% -scsWIN -p%$PSW% -mx=%$COMPR% -ssw -xr@%$EXC% >> log_7z.log
For /F "Delims %$DST%\%%i"
)
echo %date% %time% ***End***
Результатом ежедневной работы скрипта будет набор бэкапов нужных Вам данных, имеющий приблизительно такой вид:
dir d:\backups\
files2010-07-12_22-00-00.7z
files2010-07-13_22-00-00.7z
files2010-07-14_22-00-00.7z
files2010-07-15_22-00-00.7z
files2010-07-16_22-00-00.7z
Обещанный разбор с комментариями.
@Echo Off :: Отключение вывода текста скрипта
echo %date% %time% ***Start*** ::Вывод даты и времени старта скрипта
SetLocal EnableDelayedExpansion :: Команда изменяет работу с переменными в цикле.
В обычном случае, чтобы определить значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы бат-файла, следует использовать команду SetLocal EnableDelayedExpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же — таким, каким было до входа в цикл.
Далее для успешной работы предлагаемого скрипта необходимо задать следущие входные параметры (переменные):
$SRC=list_add.txt ::файл-список архивируемых данных
$EXC=list_excl.txt ::файл-список исключаемых файлов
$DST=D:\backups ::место хранения резервных копий
$PSW=password ::секретный пароль шифрования архива
$COMPR=1 ::степень сжатия данных архиватором 7zip (1=самое быстрое архивирование, 5=нормальное сжатие, 9=ультра-сжатие, 0=архивация без сжатия)
$COPIES=7 ::количество хранимых резервных копий
Следующая строка запускает архивацию посредством 7-Zip файлов и папок перечисленных в файле list_add.txt, кроме файлов, указанных в файле исключений list_excl.txt
C:\"Program Files"\7-Zip\7z.exe a -t7z -mhe=on "%$DST%\files%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.7z" @%$SRC% -scsWIN -p%$PSW% -mx=%$COMPR% -ssw -xr@%$EXC% >> log_7z.log
Разберем эту строку подробнее:
C:\«Program Files»\7-Zip\7z.exe :: Указывает место расположения исполняемого файла архиватора 7-Zip (точнее его консольной версии);
a :: это команда добавления файлов/папок в архив;
-t7z :: ключ задает тип создаваемого архива = 7z;
-mhe=on :: включает шифрование паролем заголовка архива и имен файлов/папок в архиве;
%$DST%\files%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.7z
Команда динамически формируем полный путь и имя файла архива вида «D:\backups\files2010-07-12_22-00-00.7z», где в имени присутствуют дата и время архивации;
@%$SRC% :: задает имя файла-списка архивируемых данных, вместо %$SRC% скрипт подставляет имя файла;
-scsWIN :: задает кодировку win для файла-списка;
-p%$PSW% :: ключ задает пароль для шифрования архива, вместо %$PSW% скрипт подставляет текстовую строку пароля;
-mx=%$COMPR% :: ключ задает степень сжатия архивируемых данных;
-ssw :: ключ разрешает архивацию файлов открытых приложениями на запись;
-xr@%$EXC% :: задает имя файла-списка данных, исключаемых из процесса архивации, r = означает, что надо исключать и подпапки, вместо %$EXC% скрипт подставляет имя файла;
Эта часть скрипта отвечает за автоматическое удаление уже ненужных архивов данных, в соответствии с количеством заданым переменной $COPIES.
Разберем подробнее. Автоматическое удаление реализуется путем организации цикла, в ходе которого перебирается набор имен (множество) файлов архивов (как оно формируется — см. чуть ниже строку DIR. )
В общем виде наш цикл имеет вид: for /F [«КлючевыеСловаРазбора»] переменная in (МножествоИменФайлов) do команда [ПараметрыКоманднойСтроки]
Ключ /F определяет, что цикл произведет разбор всех элементов множества «МножествоИменФайлов»;
«КлючевыеСловаРазбора» — указывают какие разделители используются между элементами разбираемого множества, в нашем случае — разделителя нет;
%%i — переменная i, которая содержит в каждый шаг итерации текущий элемент разбираемого множества (т.е. очередное имя файла в нашем случае).
Команда формирует набор (множество) имен файлов, содержащихся в папке заданной переменной $DST и соответствующих маске files. -??-??_??-??-. 7z, где знак вопроса обозначает любой символ в данной позиции; ключ /B задает вывод только имен файлов, а ключ /O:-N задает сортировку по имени (N) или в обратном порядке (-N), в нашем случае — порядок обратный.
Набор имеет вид:
files2010-07-01_22-00-00.7z
files2010-06-30_22-00-00.7z
files2010-06-29_22-00-00.7z
Обратите внимание на порядок сортировки элементов!
Do (. ) — в скобках содержится команда(ы), выполняемые в каждой итерации, в нашем случае:
Set /A $COPIES-=1 :: декремент переменной COPIES, выполняющей роль счетчика цикла;
If !$COPIES! LSS 0 DEL "%$DST%\%%i" :: команда проверяет условие $COPIES LSS 0 т.е. $COPIES, если истина, то следует исполнение команды удаления файла-архива с именем текущего элемента, таким образом количество хранимых копий архива не превысит заданное значение, в нашем примере $COPIES=7.
echo %date% %time% ***End*** ::Вывод даты и времени окончания работы скрипта
Также приведу, для примера, содержимое файла-списка list_add.txt:
M:\mail
U:\updates
Z:\Бухгалтерия
Z:\Отдел*
z:\Справка
Z:\Сисадмин
И файла исключений list_excl.txt:
2) Подробная справка по функциям консольной версии 7-Zip прилагается к архиватору.
И так к делу. Все буду проделывать на Windows 7 но действия совместимы на 100% и с такими операционными системами акак 2003, Vista, 8, 2008R2 (Только под Windows 2003 нужно установить Resource Kit Tools).
Архивация и Восстановление
1. Заходим в панель управления и находим там Архивация и Восстановление, запускаем и видим следующие
Выбираем в левом углу «Создать образ системы» после чего видим следующие
Выбираем любой вариант который вам по душе, но мой совет не выбирайте вариант сохранять образ системы на том же диске. Backup должен всегда храниться на другом источники и лучше всего на двух! После того как выбрали нажимаем далее и видим следующие окно которое нас информирует о том что будет сделано
Нажимаем кнопку «Архивировать» после того как образ создаться, создаем диск восстановления системы
Таким способом довольно простым сделали backup системы и всех установленных программ с их настройками на системном диске. После чего в будующем можно спокойно вставить загрузочный диск который мы создали и восстановить систему. Также вы можете настроить систему архивации, на автоматический режим на свое усмотрение. Далее я расскажу как делать backup информации на других дисках и отдельных папок с помощью стандартной утилиты которая входит в поставку приведенных в посте операционных систем, которая называется robocopy .
Robocopy.exe — Многопоточное копирование
Robocopy разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.
Итак, к делу. Cоздаем текстовый файл и пишем в нем следующие:
Что происходит а происходит вот что мы копируем зеркально файлы и каталоги с диска D из папки MyProject на диск E в папку Backup\MyProject которая находиться на внешнем USB диске. Файлы копируются те которые были изменены не происходит постоянная перезапись файлов. Также получаем Log файл где описано подробно что было скопировано а что нет и какие были ошибки.
Сохраняем файл и переименовываем его в любое понятное для вас название но заместо расширения .txt ставим .bat либо .cmd кому как угодно.
Далее идем в панель управления — администрирование — запускаем планировщик задач и создаем новую задачу даем ей имя, устанавливаем в триггерах время интервал запуска задачи в действиях указываем запуск нашего файла хххххх.bat или хххххх.cmd Теперь у нас происходит автоматический backup данных по нашему расписанию. Спим спокойно и не переживаем.
P.S Возможно многим покажется данная статья баяном, но я так не считаю данный метод меня уже не раз спасал от утери информации и восстановления системы. Да и людям другим помогало кто спрашивал у меня совета как это сделать. Написал данную статью дабы также объективно иметь возможность комментирование посты других участников и писать новые статьи по возможности которые будут помогать людям.
P.S.S По поводу Backup Windows XP хочу услышать от Вас господа совет но минуя Acronis по крайней мере 11 версию.
Читайте также: