Сбор сведений о системе и управление процессами

  • doc
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 59. Практическая работа по теме Сбор сведений о системе и управление процессами.doc

Практическая работа №5

Тема: Сбор сведений о системе и управление процессами.

Цель: закрепить навыки по выполнению сценариев

Время выполнения: 4 часа

Теоретический материал:

1)    Сценарий: Сбор сведений о системе

В данном сценарии изучаются команды, предоставляющие сведения о системе.

Начальные условия: Командная строка после входа в систему.

Определить имя текущей UNIX-системы с помощью команды uname -a

user@desktop ~ $ uname -a
Linux thinkpad 2.6.13-gentoo-r4 #1 Mon Oct 17 12:09:36 MSD 2005 i686 Intel(R)...

Здесь выводится полная версия системы, дата компиляции ядра и тип процессора.

Вывести содержимое каталога proc с помощью команды ls /proc:

user@desktop ~ $ ls /proc
1/     7/     8113/  8209/  9073/       dri/         modules
103/   7060/  8124/  8211/  9324/       driver/      mounts@
106/   7128/  8125/  8213/  9325/       execdomains  mtrr
185/   7693/  8131/  8215/  937/        fb           net/
186/   7770/  8135/  8319/  9376/       fb1/         partitions
...

Признаком операционной системы Linux является наличие каталога /proc, которая содержит псевдофайлы, предоставляющие системную информацию и позволяющие настраивать ядро.

Вывести текущие пользовательские сеансы с помощью команды who:

user@desktop ~ $ who
user   tty1         2005-10-24 13:17
user   pts/0        2005-10-24 13:19
user   pts/2        2005-10-24 23:59

Вывести список всех примонтированных устройств с помощью команды mount:

user@desktop ~ $ mount
/dev/hda6 on / type reiserfs (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw)
/dev/hda1 on /mnt/win type ntfs (ro,uid=1000,gid=100,nls=utf8)

Первый столбец — имя устройства, второй — точка монтирования, далее следует тип файловой системы и опции монтирования.

Вывести загруженность примонтированных дисков с помощью команды df -h:

user@desktop ~ $ df -h
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/hda6              24G   21G  3,4G  86% /
udev                  251M  180K  251M   1% /dev
/dev/hda1             9,4G  7,7G  1,7G  83% /mnt/win
none                  251M     0  251M   0% /dev/shm

Вывести информацию о всех выполняющихся процессах с помощью команды ps aux:

user@desktop ~ $ ps aux
USER     PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1  0.0  0.0   1432   480 ?        S    13:16   0:01 init [3]
root       2  0.0  0.0      0     0 ?        SN   13:16   0:00 [ksoftirqd/0]
root       3  0.0  0.0      0     0 ?        S<   13:16   0:00 [events/0]
..
user    8456  0.3  4.4  34932 22944 ?        S    13:24   2:15 emacs
user   22537  0.0  0.3   3720  1560 pts/3    Ss   22:37   0:00 /bin/bash
user    8839  0.0  0.1   2644   932 pts/3    R+   23:01   0:00 ps aux

Оставить в выводе предыдущей команды только системные процессы с помощью команды ps aux | grep -v user:

user@desktop ~ $ ps aux | grep -v user
USER     PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1  0.0  0.0   1432   480 ?        S    13:16   0:01 init [3]
root       2  0.0  0.0      0     0 ?        SN   13:16   0:00 [ksoftirqd/0]
root       3  0.0  0.0      0     0 ?        S<   13:16   0:00 [events/0]
...
root      6989  0.0  0.1   1672   704 ?        Ss   Oct25   0:00 /usr/sbin/syslog
root      7128  0.0  0.1   2020   716 ?        Ss   Oct25   0:00 /usr/sbin/fcron
      

Часть процессов, показанные в квадратных скобках, — это потоки ядра, исполняющие специальные функции. Можно выделить демонов — в столбце терминала они имеют символ «?». Например, системный журнал (syslog) или планировщик задач (cron).

Вывести иерархию процессов с помощью команды pstree:

user@desktop ~ $ pstree
init─┬─acpid
     ├─5*[agetty]
     ├─2*[artsd]
     ├─cpufreqd
     ├─dcopserver
     ├─events/0
     ├─fcron
     ├─gconfd-2
     ├─hcid
     ├─kaccess
     ├─kded───kded───kded
     ├─kdeinit─┬─artsd───artsd───artsd
     │         ├─kio_file
     │         ├─kio_imap4───kio_imap4
...

В вершине дерева стоит процесс init.

Рассмотреть поведение процессов интерактивно с помощью команды top.

2)  Сценарий: Запуск демонов

В данном сценарии рассматриваются демоны как процессы, не связанные ни с одним терминалом.

Начальные условия: Командная строка после входа в систему.

Если запустить команду в фоновом режиме и выйти из командной оболочки: например, find / -name "*.html" -exec grep -Hn "linux loader" \{} \; & и exit, то запущенная команда завершится по сигналу SIGHUP.

user@desktop ~ $ find / -name "*.html" -exec grep -Hn "linux loader"
      \{} \; &
[1] 9555
user@desktop ~ $ exit

Для того, чтобы программы неполучали сигнал SIGHUP, используется специальная команда nohup: nohup find / -name "*.txt" -exec grep -Hn "linux loader" \{} \; &

user@desktop ~ $ nohup find / -name "*.html" -exec grep -Hn "linux loader" \{} >> result\; &
[1] 9783
user@desktop ~ $ exit

Эта программа завершится корректно после окончания поиска.

3)        Сценарий: Изменение приоритетов выполняющихся программ

В данном сценарии изучается механизм приоритетов UNIX и команды для изменения приоритетов запускаемых процессов.

Начальные условия: Командная строка после входа в систему.

Каждый процесс в системе имеет свой уровень приоритета (в UNIX он называется «nice»), который можно увидеть с помощью команды ps –l — в столбце «NI».

user@desktop ~ $ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000 17223 17222  0  75   0 -   994 wait   pts/1    00:00:00 bash
0 R  1000 17485 17223  0  75   0 -   612 -      pts/1    00:00:00 ps

По умолчанию, приоритет процессов простого пользователя равен нулю.

Для запуска процесса с заданным приоритетом воспользуемся командой nice. Например, запустим создание архива с пониженным приоритетом: nice -n 10 tar -cjf libraries.tar.bz2 /usr/lib/.

user@desktop ~ $ nice -n 10 tar -cjf libraries.tar.bz2 /usr/lib/

Чтобы изменить приоритет уже запущенной программы используется команда renice. Например, для понижения приоритета заранее запущенного процесса архивации tar -cjf libraries.tar.bz2 /usr/lib & воспользуемся командой renice +10 -p 3442:

user@desktop ~ $ tar -cjf libraries.tar.bz2 /usr/lib &
[1] 3442
user@desktop ~ $ renice +10 -p 3442

Простые пользователи не могут повышать приоритет процессов, только понижать.

Практические задания:

1)           Сравните время создания корневого каталога с текущим временем системы.

2)           Получите список всех типов файловых систем, примонтированных в настоящий момент.

3)           Найдите три процесса, использующих самый большой объём памяти. Какой процент памяти они потребляют от общего объёма?

4)           Получите иерархию родительских процессов для текущей командной оболочки.

5)           Найдите, в каком файле в каталоге /proc хранится информация о системной памяти.

6)           С помощью сигнала остановки процесса и команды bg запустите три параллельных процесса архивации каталога /etc, /home и /tmp.

Контрольные вопросы:

1.     Что рассматривает сценарий  изменения приоритетов?

2.     Что рассматривает сценарий  запуска демонов?

3.     Какой тип имеет корневая файловая система?


Скачано с www.znanio.ru