- •Федеральное агенство связи
- •1. Использование командного интерпретатора для работы с файлами
- •1.1. Структура файловой системы FreeBsd
- •1.2. Работа с файлами
- •1.2.1. Работа с обычным текстовым файлом
- •1.2.2. Работа с каталогами
- •1.2.3. Работа со ссылками
- •1.3. Задание на лабораторную работу
- •4. Контрольные вопросы
- •2. Архивирование и сжатие файлов
- •2.1. Архивирование
- •2.2. Cжатие файлов
- •2.3. Задание на лабораторную работу
- •2.4. Контрольные вопросы
- •3. Управление учётными записями пользователей и правами доступа к файлам
- •3.1. Концепция пользователей и групп
- •3.2. Учетные записи пользователей
- •3.3. Группы пользователей
- •3.4. Владельцы файлов и права доступа к файлам
- •3.5. Задание на лабораторную работу
- •3.6. Контрольные вопросы
- •4. Использование команд для фильтрации и обработки текстов
- •4.1. Основные команды
- •4.3. Контрольные вопросы
- •5. Программирование на языке командного интерпретатора
- •5.1. Командные интерпретаторы
- •5.2. Синтаксис языка Bourne shell
- •5.3. Задание на лабораторную работу
- •5.4. Контрольные вопросы
- •6. Мониторинг производительности, управление процессами и автоматизация заданий
- •6.1. Мониторинг производительности
- •6.2. Управление процессами
- •6.3. Запуск заданий по расписанию
- •6.4. Задание на лабораторную работу
- •7. Монтирование файловых систем и мониторинг их использования
- •7.1. Монтирование и демонтирование файловых систем
- •7.2. Мониторинг использования файловых систем
- •6.4. Задание на лабораторную работу
- •7.4. Контрольные вопросы
- •8. Установка и настройка операционной системыFreeBsd
- •8.1. Установка и настройка виртуальной машины
- •8.2. Установка и настройка FreeBsDна виртуальной машине
- •8.3. Задание на лабораторную работу
- •8.4. Контрольные вопросы
- •Список литературы
- •Содержание
6.2. Управление процессами
Предположим, что неправильно написанная программа тормозит работу всей системы. Несложно установить идентификатор этого процесса с помощью утилит topилиps. Для остановки процесса используется командаkill. Синтаксис ее таков:
kill [-sig] <идентификатор процесса>, где
sig ‑ номер сигнала. Sig = 15 означает программное (нормальное) завершение процесса, номер сигнала 9 ‑ уничтожение процесса, а 1 ‑ прерывание и перезапуск. По умолчанию sig = 9. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.
Программа killне просто прерывает процессы. Она представляет собой сигнальный механизм, посредством которого процессы могут передавать команды друг другу.
Приоритет выполнения процесса можно поменять с помощью команды renice. Установить уровень приоритетности процесса на этапе его запуска можно с помощью командыnice. Приоритет процесса в FreeBSD представляет собой целое число в диапазоне от -20 до 20, причем наиболее высокое значение -20. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Увеличить приоритет процесса может только администратор системы.
Примечание:в Linux номер приоритета находится в диапазоне от 0 до 39, где значение 0 представляет собой наивысший приоритет.
Примеры:
renice -5 1836- команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5.
renice --5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным -5.
nice -10 ls -lустановка номера приоритета, командеls -lравным 10.
6.3. Запуск заданий по расписанию
В ОС Unix существует возможность запускать программы пользователя в указанное им время. Для этого используется программа cron(CommandRunON).
Сronявляется непрерывно работающим фоновым процессом (такие процессы в Unix называютсядемонами) и проверяет свои входные файлы (crontab-файлы) каждую минуту.
Существует глобальный файл crontab (/etc/crontab) и каталог (/var/cron/tabs), в котором пользователи могут создавать собственные файлыcrontab.
Настройка cron
Для начала нужно создать сценарий, который будет запускаться по расписанию, например /home/user/script.sh. Этот файл должен иметь права на чтение и выполнение (r+x) для владельца файла.
Далее необходимо выполнить команду crontab -e. Откроется текстовый редактор vi, где можно вводить текст задания для cron. Задания пишутся по одному в строке, после которой нажимается клавиша Enter. В начале строки находятся пять обязательных полей для указания периодичности выполнения задания, а затем следует команда или файл скрипта, который нужно запускать:
поле1 поле2 поле3 поле4 поле5 команда
Значения первых пяти полей:
минуты — число от 0 до 59;
часы — число от 0 до 23;
день месяца — число от 1 до 31;
номер месяца в году — число от 1 до 12;
день недели — число от 0 до 7 (0–Вс, 1–Пн, 2–Вт,…, 7–Вс).
Для каждого конкретного параметра можно задать несколько значений через запятую. Например, если в поле «часы» написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа. Можно задать интервал —4-9будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно. Символ '*' означает «все возможные значения». Например, указание '*' в поле «часы» будет означать «запускать каждый час». Символ '/' служит для указания дополнительной периодичности задания. Например, '*/3' в поле «часы» означает «каждые три часа».
Примеры:
#Выполнять скрипт /home/user/script.shкаждые три часа #во вторник и в пятницу.
0 */3 * * 2,5 /home/user/script.sh
# Выполнять задание в 18 часов 7 минут 13 мая если это #пятница
7 18 13 5 5 /home/www/myscript.sh
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.sh
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.sh
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.sh
crontab–l‑ просмотр установленных файловcrontab;
crontab-r‑ удаление своего файлаcrontab.
Для однократного запуска задания по времени предназначена команда at. Более подробно о нейможно узнать в документации.