- •Лабораторная работа 1. Установка ос в виртуальных машинах.
- •Лабораторная работа 2. Файловые системы и диски.
- •Лабораторная работа 3. Управление файлами
- •Лабораторная работа 4. Управление пользователями и группами. Установка лимитов и квот.
- •Лабораторная работа 5. Резервное хранение данных. Программирование командных файлов.
- •Лабораторная работа 6. Управление процессами.
- •Лабораторная работа 7. Управление памятью.
Лабораторная работа 5. Резервное хранение данных. Программирование командных файлов.
Цель работы: получение практических навыков резервного копирования данных, программирования командных файлов.
Команды:
Резервное хранение данных:
backup – сохранение файловой системы, восстановление данных
cpio – архивирование данных
dump – дамп указанных частей объектных файлов (ext2/ext3)
restore – восстановление данных (пара dump/restore)
tar – архивирование данных
Утилиты:
- gzip, gunzip
-bzip2, bunzip2
- zip
Программирование командных файлов ( в оболочке Shell):
Командный файл - текстовый файл с правами на запуск.
В командном файле можно записать последовательность команд на исполнение.
Кроме этого можно написать небольшой скрипт.
Некоторые возможности по написанию скрипта:
Условный оператор "IF"
Оператор вызова ("CASE")
Оператор цикла с перечислением ("FOR")
Оператор цикла с истинным условием ("WHILE")
Оператор цикла с ложным условием ("UNTIL")
Можно писать свои функции.
Более подробную информацию можно получить - Программирование на Shell ( UNIX )
В каждой операционной системе есть более мощный скриптовый язык, основным для UNIX является PERL ( хотя есть и другие, JScript, PHP и Python ).
Задание
Поработайте с этими командами.
Напишите программу на Shell для резервирования каталога.
Сделайте автоматический запуск этого скрипта ( в /etc/crontab) , для создания ежедневной, еженедельной и ежемесячной копии. Перед сдачей лабораторной обязательно проверьте, как это работает на том компьютере, где вы будете сдавать эту лабораторную.
Используйте утилиты для архивации. Возьмите несколько файлов и запакуйте, а затем распакуйте эти файлы данными утилитами.
Пройдите по пунктам умений и посмотрите, что вы еще не делали: в случае необходимости проделайте.
Лабораторная работа 6. Управление процессами.
Цель работы: получение практических навыков управления процессами.
Команды:
/etc/crontab – файл содержащий, таблицу расписаний запуска заданий
& – запуск процесса в фоновом режиме
at – запускает программы в определенное время
atq – выводит список заданий, поставленных в очередь командой at
atrm – удаление задания из очереди команды at
bg – продолжение выполнения фонового процесса, если он приостановлен нажатием
fg – вывод процесса из фонового режима
jobs – показывает процессы, запущенные в фоновом режиме, либо приостановленные
kill – прекращение выполнения процесса по PID процесса
killall – прекращение выполнения процесса по имени процесса
nice – задает приоритет процесса перед его запуском
ps – выводит информацию о работающих процессах
renice – изменяет приоритет работающего процесса
ipcs – взаимодействие процессов (разделяемая память, семафоры, сообщения)
Запуск фонового процесса осуществляется так:
ps -x &
При загрузке системы, необходимые процессы, загружаются в фоновый режим, их называют "демонами". Они находятся в каталоге /etc/rc.d/init.d/.
Некоторые комбинации клавиш:
<Ctrl+Z> - приостановить выполнение задания
<Ctrl+C> - завершить выполнение задания
Связывание процессов с помощью каналов. Запуск нескольких команд с передачей выходного потока следующей программе, "|" означает передачу выходного потока от первой программы ко второй.
ps -ax | more
запускается команда ps -ax, и передает выходной поток программ more которая запускается на выполнение.
Перенаправление ввода/вывода. Запуск команды с записью выходного потока в файл
ps -ax > test.txt
ps -ax > test.txt - добавит в конец файла
Группы команд
command-1;command-2;command-3
{command-1;command-2} > test.txt
Задание
Поработайте с этими командами: запуская, запуская по времени, меняя приоритеты, уничтожая процессы.
Что нужно уметь:
- задавать задание на запуск процессов в определенное время, в определенную дату и с определенным приоритетом (в очереди на запуск), показывать этот список, удалять из списка
- конфигурировать файл /etc/crontab
- посылать сигнал на прекращение процесса по ID и по имени
- запускать процесс с конкретным приоритетом
- изменять приоритет конкретного процесса
- выводить информацию о работающих процессах
- запускать процесс в фоновом режиме, выводить из него
- передавать выходной поток другой программе
- записывать выходной поток процесса в файл
- выводить информацию о работающих процессах, с различным количеством столбцов и процессов
- выводить динамическую информацию о процессах, сортировать эту информацию по столбцам, убирать и добавлять столбцы, менять приоритет процесса, уничтожать процесс.
Отправьте примеры использования на проверку.
В своей виртуальной машине сделать:
- создать задание на запуск программы, минута, час, день месяца
- прописать в crontab, задание на запуск программы, минута, час, день месяца, месяц
К сдаче лабораторной предоставляются: примеры использования команд из пункта "Что нужно уметь" и умение работать с этими командами (выборочно нужно будет выполнить).