четверг, 26 апреля 2012 г.

Как удобно создавать резервную копию данных с помощью WinRAR

Все прекрасно понимаю, что нужно создавать резервную копию данных, но почти никто этого не делает. Основная проблема - лень. Нужно ставить какие-то программы, запускать процесс... а ведь это так долго... В общем, куча невнятных отмазок :)

Так уж получилось, что будучи системным администратором, я люблю стандартные программы, которые есть везде или почти везде. К их числу я отношу WinRAR. Чтобы сделать резервную копию моих данных, я даю одну команду (а точнее запускаю файл с командой) и резервная копия создаётся или обновляется.

Во-первых, нам потребуются два текстовых файла, в которых будут находится каталоги, которые нужно добавить "append.txt":
e:\iPhone
d:\Subversion
d:\Бизнес
d:\ГУАП
d:\Мои документы
d:\Профили\Максим
d:\Наука
d:\Проекты
d:\Фотографии
e:\Программы

и которые добавлять не нужно "skip.txt":
d:\Профили\Максим\AppData\Local\Temp
d:\Профили\Максим\AppData\Local\Microsoft\Windows\Temporary Internet Files
Пути в этом файле - это подкаталоги каталогов, которые попали в первый список и их необходимо исключить.

А ещё нам потребуется файл "backup.cmd":
set TMP=f:\
set FLAGS=a -m5 -ms*.rar;*.zip;*.7z;*.msi;*.cab;*.wim;*.ipa;*.jpg;*.jpeg;*.gif;*.pdf;*.djvu;*.mp3;*.mp4;*.m4v;*.m4a;*.m4b;*.wmv -t -u -w%TMP% -rr3%
"c:\Program Files\WinRAR\winrar" %FLAGS% -as -x@skip.txt f:\backup.rar @append.txt
pause

Несколько слов о том, что там написано.

В переменной TMP (строка 1) хранится путь к временному каталогу. Этот каталог будет использоваться для создания временной копии архива. Важно, чтобы он располагался на жёстком диске (для скорости работы WinRAR) с достаточным количеством свободного места. В моём случае диск "f:\" это переносной винчестер, на котором я храню резервную копию.

Затем (строка 2) задаются параметры максимального сжатия, синхронизации архива с содержимым указанных папок и прочие опции. Рекомендую открыть справку по WinRAR и сделать так, как вам нужно (а заодно и понять, что делаю я).

После запускаем процесс создания резервной копии в файл "f:\backup.rar". Здесь есть два подводных камня.
  1. Если файл находится в каталоге содержащим пробелы, то полное имя файла следует заключать в кавычки. Например, "f:\at home\backup.rar".
  2. Если имеются русские буквы, то файл следует сохранить в кодировке 866 (OEM), иначе каталог не будет распознан интерпретатором командной строки. В общем, проще не использовать русских букв.

Команда "pause" нужна, чтобы не закрывалось окно. Могут возникнуть ошибки и так их будет проще отловить.

Скрипт лучше запускать на ночь (поскольку при большом количестве данных, это долгий процесс) и лучше под другим пользователем. Некоторые файлы могут быть открыты операционной системой и программами. В этом случае WinRAR сообщает об ошибке:
!   f:\backup.rar: Невозможно открыть d:\Профили\Максим\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db
    Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
!   f:\backup.rar: Невозможно открыть d:\Профили\Максим\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db
    Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

Ещё лучше запускать не только под другим пользователем, но и с правами администратора. Дело в том, что Windows Vista/7 разграничивает доступ к файлам для разных пользователей. Например, пользователь "Вася" без прав администратора не сможет посмотреть папки и файлы в домашнем каталоге пользователя "Маша". Но если запускать скрипт с правами администратора по правой кнопке нажатия мыши, то каталог запуска командного файла автоматически будет изменён на C:\Windows\system32. Поэтому окончательный вариант скрипта выглядит так (в кодировке OEM или cp866):
d:
cd \Администрирование\Скрипты\backup
set TMP=f:\
set FLAGS=a -m5 -ms*.rar;*.zip;*.7z;*.msi;*.cab;*.wim;*.ipa;*.jpg;*.jpeg;*.gif;*.pdf;*.djvu;*.mp3;*.mp4;*.m4v;*.m4a;*.m4b;*.wmv -t -u -w%TMP% -rr3%
"c:\Program Files\WinRAR\winrar" %FLAGS% -as -x@skip.txt "f:\Резервная копия\backup.rar" @append.txt
pause

Желаю удачи и отсутствия проблем в создании резервной копии.

2 комментария:

  1. Классная статья. единственное, что про ключи на Рар хочется от вас услышать. Я читал справку, но человеку не очень разбирающемуся не понятно что во второй строке backup.cmd написано.

    ОтветитьУдалить
  2. а что мешает их тупо скопировать?

    ОтветитьУдалить