- •Лабораторная работа №4
- •Shell-программирование: сигналы и прерывания.
- •Хранение файлов во внешней памяти.
- •Общие cведения о системе
- •Команда kill
- •Команда trap
- •Виды действий с сигналами прерываний :
- •Размещение команды trap в программе
- •Сигналы и прерывания: заключения
- •Выполнение команд в фоновом режиме.
- •Команда tar
- •Команда cpio
- •Использование команды find при резервном копировании
- •Задания.
Команда cpio
Назначение: Работа с архивами.
Синтаксис: два режима:
$ cpio –o[cvx] Генерация архива. Список файлов читается со со стандартного ввода. Архив пишется на стандартный вывод.
$ cpio –i[cmdtuvx] Восстановление из архива. Архив читается со стандартного
ввода.
Примеры:
Создание архива файлов в текущем каталоге:
$ find . | cpio –ocv > my_archive
$ find . |cpio –ocv> /dev/rmt/0m
Восстановление всех файлов из архива:
$ cpio –icdmv < my_archive
$ cpio –icdmv < /dev/rmt/0m
Опции:
|
-o |
-i |
Назначение опции |
|
-c |
-c |
Пишется заголовок в ASCIIформате |
|
- |
-d |
Пересоздается в нужном виде структура каталога |
|
- |
-m |
Остается текущая дата, соответствующая времени внесения изменений (важно для осуществления контроля за хранящимися версиями файлов |
|
- |
-t |
Вывод таблицы, описывающей содержимое архива |
|
- |
-u |
Безусловное восстановление (если файл уже существует, то указание этой опции приводит к перезаписи его содержимого) |
|
-v |
-v |
Выводится список скопированных файлов |
|
-x |
-x |
Обрабатываются специальные (приборные файлы) |
Примеры:
Чтение таблицы содержимого архива:
$ cpio –ict< /dev/rmt/0m
Восстановление одного файла:
$ cpio –icudm "filename" < /dev/rmt/0m
Восстановление всех файлов, чьи имена удовлетворяют заданному образцу:
$ cpio –icudm "*filename*" < /dev/rmt/0m
Использование команды find при резервном копировании
Назначение: Может создавать список
относительных маршрутных имен find .
абсолютных маршрутных имен find/home/user3
Синтаксис:
$ findсписок_маршрутных имен[выражение]
Задания.
1. Введите команду stty -a для проверки нажатой клавиши, которая связана с
последовательностью импульсов, обуславливающих прерывание.
2. Напишите shell-программу, которая будет выводить некие сообшения
на ваш экран. Запустите программу в фоновом режиме и сделайте так, что бы она не
реагировала на сигналы HUP, TERM,INT . Каким образом вы можете прекратить выполнение
этой программы?
3. Напишите программу write_them , посылающую сообщение каждому, кто входит в
систему, до тех пор,пока не нажаты клавиши <Ctrl+c>. Создайте файл mesg.out,
в котором будет храниться посылаемое вами сообшение, и укажите имя файла в
команде write, которая будет его передавать. По нажатии <Ctrl+c> должен
осуществиться выход из программы.
4. Создайте архив всех файлов, храняшихся в Вашем начальном каталогеHOME, имена которых начинаются с..
5. Создайте копию всей структуры Вашего начального каталогасверху вниз.
6. Удалите некоторый файл из вашего текушего каталога. Затем восстановите его из архива.
