Программа для записи на серию USB-дисков
Операционная система: FreeBSD 6.
Язык программирования: Perl
Название программы: usbwriter
Что необходимо:
1. Одновременная запись ISO-образа на USB-диски.
2. Проверка записи.
3. Запись статистики в лог-файл.
Программе передаются следующие параметры:
1. ключ -f – полный путь и имя файла-образа
2. ключ -n – необходимое количество записей
3. ключ -s – необходимый размер носителя (m – мегабайт , g – гигабайт)
4. ключ –с – 5-ти разрядное 16-ричное число (magic number)
# usbwriter –f /usr/home/temp-microsoft-present.20070209.iso –n 200 –s 512m –с 00AB9
В процессе работы: программа определяет число доступных USB-портов и обозначает их жёлтым цветом, ожидает вставки носителя, определяет его уникальный номер и размер, и сверяет с необходимым размером носителя, производит запись и проверку.
Программа записывает в лог-файл следующие параметры (через знак табуляции):
1. Временная метка после извлечения носителя : YYYYMMDDHHMMSS
2. Magic number: 00AB9
3. Уникальный номер носителя : SD512_21F09FBD110807
4. Имя образа без пути к нему : temp-microsoft-present.20070209.iso
5. Время записи в секундах : 256
6. Время проверки в секундах : 48
7. Порядковый номер носителя : 22222 (от 1 до количества необходимых записей)
8. Результат записи: success (success или fail)
Например:
…………………………
20070209141122 00AB9 SD512_21F09FBD110807 temp-microsoft-present.20070209.iso 256 48 22222 success
20070209141130 00AB9 SD512_21F09FBD110809 temp-microsoft-present.20070209.iso 256 48 22223 success
20070209141130 00AB9 SD512_21F09FBD1108A5 temp-microsoft-present.20070209.iso 256 30 22224 fail
20070209141130 00AB9 SD512_21F09FBD110900 temp-microsoft-present.20070209.iso 256 48 22224 success
20070209141130 00AB9 SD512_21F20FBD110901 temp-microsoft-present.20070209.iso 256 48 22225 success
…………………………
Все операции (ожидание, проверка носителя на совместимость с образом, запись, проверка записи) должны сопровождаться отображением на экране в псевдографике (в виде нумерованых полосок, изменяющих цвет в зависимости от состояния USB-порта). Номер полоски должен соответствовать номеру USB-порта (1-й порт = 1, 2-й порт = 2 и т.д.).
Цвета:
1. Ожидание – жёлтый
2. Проверка - мигающий бело-зелёный
3. Запись – зелёный
4. Проверка записи – синий
5. Готовность для извлечения - мигающий бело-синий
6. Ошибка (запись, проверка) - мигающий бело-красный
7. Неработающие порты - серый
8. Несоответствие носителя – красный.
Также программа должна прочитать последнюю строчку лог-файла, для того, чтобы определить, сколько записей ещё осталось, если имя образа совпадает с последним в лог-файле. Если нет – должна начать новую серию.
Программа также должна выводить на экран:
1. имя образа
2. необходимое количество записей (required) : 5 знаков (1-99999)
3. количество успешных записей (successfull): 5 знаков (0-99999)
4. количество записей, которое необходимо сделать (left): 5 знаков (1-99999)
5. Индикатор записи серии в виде 3-х-значного числа (1-100%) и полоски (белого и зелёного цвета).
После нажатия F10 система прекращает запись и другие операции не дожидаясь окончания записи и других операций на текущие носители.