Служба в резерве...

Долгими зимними вечерами, когда делать особо нечего, самое время подстраховать себя от недетских неожиданностей в будущем, которые могут случиться с важными данными. Дело это кропотливое, но крайне полезное - потом, когда винчестер неожиданно отойдет в мир иной, припасенный бэкап курсовой или реферата будет лучшим подарком к 23 февраля, Дню студента, Восьмому марта или следующему Новому году.

В чем же заключается подстраховка? В резервном копировании данных (а если быть более точным, то в резервном архивировании). Я расскажу о способе, который применяю сам и по понятным причинам считаю его лучшим. Первоначальная идея была такова: каждый день в назначенное время вордовские файлы с особо важной информацией должны архивироваться с паролем, затем новая версия архива должна копироваться на FTP-сервер в интернете. Таким образом, даже если с моим ноутбуком что-нибудь и случится, я все равно смогу продолжить работу за другим компьютером. Для воплощения этой идеи в жизнь мне потребовались три маленькие утилиты, которые непритязательны к системным ресурсам (за счет отсутствия интерфейса) и совершенно бесплатны. Вот их имена: nnBackup и nnCronLite (www.nncron.ru) и клиент FTP входящий в дистрибутив Windows.


Создание резервной копии

Начнем с nnBackup. Это крошечная (196 Кб) утилита командной строки, предназначенная для резервного копирования файлов и синхронизации содержимого каталогов. Поддерживает сжатие архивных данных по алгоритмам gz или zip. nnBackup позволяет использовать все распространенные методы резервного копирования. Мы будем использовать копирование данных в стек пронумерованных zip-файлов заданной глубины. Это самый надежный режим резервного копирования. Он позволяет создавать неограниченное количество точных копий исходных данных, которые помещаются в пронумерованные zip-файлы (стек архивов). Вы сами выбираете глубину стека - сколько копий данных собираетесь хранить. Каждая новая копия исходных данных помещается в zip-файл с соответствующим номером (от 1 до N), причем в zip-файле с номером 1 хранится самая последняя (самая свежая) копия источника. Как только количество копий превысит указанное значение (N), самая старая копия автоматически удаляется. В каждый из пронумерованных zip-файлов копируются все файлы из источника данных, в соответствии с заданными включающими и исключающими масками. Надо учесть, что существующие компрессионные библиотеки накладывают ограничение на размер создаваемого zip-архива: 2 Гб.

Поскольку nnBackup консольная утилита, то все аргументы в нее передаются через командную строку. Чтобы дать утилите понять, какой режим копирования мы собираемся включить, укажем ключ verz. Это значит, что мы собираемся использовать копирование данных в стек пронумерованных zip-файлов. Далее следует задать глубину стека -n 2. Потом, после ключа -i, надо указать исходный каталог (откуда берем данные), получается что-то вроде: -i e:\work\. Затем каталог-приемник: -o f:\backup\work\book\. Теперь надо указать маску, по которой будем выбирать интересующие нас документы: -m ch*.doc, ведь в каталоге наверняка будет полно других не таких важных файлов, которые только будут засорять архив и увеличивать время его создания. Поскольку архив будет храниться на FTP-сервере, к которому может получить доступ посторонний, при помощи ключа -pw установим на архив пароль: -pw 834386y561. Пароль лучше устанавливать длинный, чтобы, в случае чего, затруднить взлом.

 

Как видите, параметров довольно много, строка запуска резервного архивирования будет иметь такой вид: nnbackup.exe verz -n 2 -i e:\work\ -o f:\backup\work\ -m ch*.doc -pw 834386y561. Получилось громоздко. Чтобы сократить, запишем все параметры в текстовый файл (листинг 1), который передадим nnBackup в качестве аргумента: nnbackup.exe -f conf.txt.

Листинг 1. conf.txt

\ копируем в стек архивы
verz 
\ глубина
-n 2
\ исходный каталог:
-i "e:\work\book\"
\ приемный каталог:
-o "f:\backup\work\book\"
-m ch*.doc
\ маска
-pw 834386y561

Файл conf.txt следует сохранить в директории программы nnBackup. Запуск тоже следует осуществлять из директории программы nnBackup либо прописывать в командной строке полный путь к файлам nnbackup.exe и conf.txt, например: c:\nnbackup\nnbackup.exe -f c:\nnbackup\conf.txt.


Работа с FTP

Обратим внимание на малоизвестную стандартную утилиту Windows, она понадобится нам для копирования архивов на FTP-сервер. Запускаем консоль и вводим команду ftp, после этого попадаем в оболочку FTP-клиента Windows, о чем свидетельствует появление приглашения ftp>. Теперь можем вводить команды, а FTP-клиент будет их с радостью выполнять. Рассмотрим краткий список команд, которые нам понадобятся для осуществления задуманного:

  1. open - подключение к удаленному узлу по протоколу FTP;
  2. cd - изменение рабочего каталога на удаленном компьютере;
  3. bin - установка режима передачи файлов в двоичном формате;
  4. put - передача одного файла на сервер;
  5. bye - завершение сеанса FTP и выход.

Дабы познакомиться с FTP-клиентом поближе и научиться работать с ним, попробуем осуществить подключение к FTP-серверу в консольном режиме. Наверняка вам доводилось делать это ранее, используя Total Commander, Far или Internet Explorer, в командном режиме все выглядит несколько иначе. Вводим команду open 32.9.255.171 (это IP-адрес FTP-сервера), если сервер с таким адресом существует и поддерживает подключение по FTP, вам будет выдан сначала запрос на имя пользователя, а затем на пароль. Когда авторизация пройдена, самое время создать папку для хранения наших архивов, особо не мудрствуя, назовем ее просто backup (создается папка командой mkdir). Теперь заходим во вновь созданную папку командой cd backup. Осталось только скопировать нужный файл. Это и делаем, но сначала устанавливаем режим передачи файлов в двоичный формат командой bin без параметров. И теперь уже вводим put f:/backup/work/1.zip, где аргументом команды put выступает полный путь к копируемому файлу. По завершении копирования остается лишь попрощаться с дружелюбным сервером командой bye.

Чтобы клиент FTP совершал перечисленные действия автоматически, не задавая вопросов, следует составить для него сценарий. В листинге 2 представлен текстовый файл (назовем его goto.ftp и сохраним в каталоге c:\nnbackup), содержащий команды FTP, которые будут выполняться автоматически при запуске FTP-клиента.

Листинг 2. goto.ftp

open 32.9.255.171
имя_пользователя
пароль
cd backup
bin
put f:/backup/work/book/1.zip
bye

Чтобы передать данный файл на исполнение, в консоли пишем так: ftp -s:"c:\nnbackup\goto.ftp".


Работа в команде

Мы почти у цели. У нас есть две задачи: архивирование и последующее копирование на FTP-сервер. Осталось только запускать их в заданное время и в нужной последовательности. Эти задачи возложим на могучие плечи утилиты nnCronLite, младшего брата планировщика nnCron, о котором уже не раз говорилось на страницах "КВ". Почему nnCronLite, а не nnCron? Решающим здесь стал фактор экономии системных ресурсов, по остальным критериям nnCron подойдет даже лучше.

"Сердце" nnCronLite - файл cron.tab, в котором хранятся все необходимые программе данные: время старта приложения, периодичность выполнения, имя приложения и параметры его запуска. Это обычный текстовый файл, он может быть отредактирован в любом доступном текстовом редакторе. nnCronLite раз в минуту проверяет дату последней модификации cron.tab и, обнаружив обновление информации, автоматически перечитывает его.

Классический формат cron.tab таков: минуты часы номер_дня_в_месяце номер_месяца_в_году номер_дня_в_неделе путь_к_выполняемому_приложению. В листинге 3 приведен пример рабочего файла настроек планировщика nnCronLite, в котором прописан поочередный запуск nnBackup и FTP-клиента.

Листинг 3. cron.tab

#CRONTAB FILE 
# Classic crontab format:
# Minutes Hours Days Months WeekDays Command
# В 17 минут 17 часов каждый месяц (*) каждый рабочий день (1-5)
# запускаем архивирование средствами утилиты nnBackup,
# настройки которой прописаны в файле conf.txt
17 17 * * 1-5 c:\nnbackup\nnbackup.exe -f c:\nnbackup\conf.txt
# В 30 минут 17 часов каждый месяц (*) каждую пятницу (5)
# средствами утилиты ftp.exe производим копирование
# согласно сценарию, описанному в файле goto.ftp
30 17 * * 5 c:\windows\system32\ftp.exe -s:"c:\nnbackup\goto.ftp"

Обладателям Windows 2000, скорее всего, придется заменить в пути каталог windows на winnt.

Дмитрий БАРДИЯН,
x40@yandex.ru

Версия для печатиВерсия для печати

Номер: 

07 за 2006 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!