WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 7 |

«Ubuntu® Linux® TOOLBOX 1000+ Commands for Ubuntu and Deblan Power Users Christopher Negus Franois Caen 81C8NT8NNIAL 1807. ...»

-- [ Страница 4 ] --

$ df - h Отображает и формацию о дисковом пространс тве в удобной для восприя тия форме Used Mounted on Use% Ava i l Fi l esystem Si ze 47% 7. 6G 3. 4G 3. 9G /dev / sda в ом 99М 15% /boot /dev / sda l 14М 501М 0% /dev / s hm 50 1М Tmpfs О 59% /home 352G 197G 137G /dev / sda 5722608 3007 068 66% /mnt /mymount / /thompson/chri s Поскольку в файловых системах ext существует множество файлов inode, соз­ данных во время выполнения команды mkfs, вы можете перед вычислением объема занимаемого остальными файлами пространства вычислить только объем файлов inode, при условии, что у вас на диске хранится много небольших файлов. Чтобы проверить объем файлов inode, воспользуйтесь параметром i : Получение информации об использовании файловой системы $ df · hi Mounted on I Use% I nodes I U sed I F ree Fi l esystem 6% 1. 9М 108К /dev/ sda2 2. ОМ Если вы используете файловые системы, смонтированные для сетевого исполь­ зования (например, Samba или NFS), они также будут указываться в возвращаемой командой df информации. Чтобы ограничить объем отображаемой командой d f информации данными о локальных файловых системах, выполните следующую команду:

Отображае т дисковое прос транс тво. занимаемое $ df · hl толь ко локаль ными файловыми сис темами Чтобы добавить в список тип файловой системы, используйте параметр - Т:

$ df · hT Добавляет в список информацию о типе файловой сис темы Fi l esystem Туре Si ze Used Ava i l Use% Mounted on /dev/ sda7 ехtЗ 8. 8G 5. 5G 2. 9G 66% Чтобы определить объем дискового пространства, занимаемого отдельными файлами или каталогамJJ, используйте команду du. Следующая команда была вы­ полнена от имени пользователя frаnсоis:

$ du · h /home/ Отображает обьен занимаемого ка талогон /hame пространс тва du : ' / home/chri s ' : Permi s s i on deni ed 4. 0К / home/ franco i s / Ma i l 52К /home/ francoi s 64К /home/ Из отображенной информации видно, что доступ к одному из каталогов (в дан­ ном случае /home/chri s ) был закрыт из соображений безопасности. В следующих примерах показано, как с помощью учетной записи суперпользователя обойти систему прав пользователей и получить верные результаты. Наиболее хорошо это видно, если для отображения отчета использовать параметр - s :

$ d u · sh /home Обычному поль зова телю закрыт доступ к домашним ка тапоган других поль зова телей du : ' / home/chri s ' : Permi s s i on deni ed du : ' / home/ horati ol99 ' : Permi s s i on den i ed 64К /home # du · sh /home С помощью уче тной записи суперполь зова теля вы може те вывес ти о тчет об исполь зовании мес та на жесткон диске /home 1. 6G С помощью параметра - с вы можете указать только несколько конкретных каталогов, а затем вывести общий результат:

$ sudo du · sch /home /var Отображае т отчет для одного и всех ка талогов / home 1. 6G l l lM /var 1. 7G tota l С помощью параметра ехс 1 ude вы можете исключить из поиска файлы, отожде­ ствляемые с образом. В следующем примере файлы-образы дисков (имеющие 166 Глава 7. Админи стр и рова ние файловых систем расширение ISO) не учитываются в результатах определения свободного места на диске:

$ sudo du - sh - - excl ude- ' *. i so ' /home/chri s Исключае т файлы образов ISO / home/chri s 588М Кроме того, вы можете определить количество проверяемых уровней дерева каталогов. Чтобы в результатах теста учитывать вложенные каталоги, установите параметр - - ma x - depth в значение больше 1:

$ sudo du ·h - - max - depth-1 /home Определяет исnоль зование дискового прос транс тва до первого уровня вложенных ка талогов l. бG / home/ch ri s 52К / home/ francoi s l. бG / home $ sudo du · h - - max - depth-2 /home Определяет исполь зование дискового пространс тва до в торого уровня вложенных ка талогов 4. 0К / home/ franco i s / Ma i l 52К / home/ francoi s / home l. бG П рогра мма управпен ия логическими томами ( LVM) Программа управления логическими томами является приложеннем операционных систем Linux, предназначенным для того, чтобы помочь вам справляться с изме­ няющимися потребностями, связанными с управлением дисковым пространством.

Настроив свои жесткие диски как тома LVM, вы можете получить невероятную гибкость в управлении дисковым пространством по мере изменения своих потреб­ ностей. Кроме того, LVM позволяет фиксировать мгновенное состояние системы (этот параметр обычно можно встретить в SAN (сеть устройств хранения данных) предприятий).

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

Используя LVM2, вы можете определять группы томов (vg), логических томов (lv) и физических томов (pv), а также управлять ими. Каждый логический и фи­ зический том разделяется на логические и физические составляющие соответ­ ственно.

Основное при использовании LVM создание необходимых групп томов и ло­ гических томов, а затем назначение экстентов (небольших фрагментов дискового пространства) в тех участках, где они нужны. В отличие от старых схем разбиения дисков, в которых вам приходилось создавать резервные копии данных, изменять параметры разделов, а затем возвращать данные на измененные разделы, при ис Получение информации об использовании файловой системы пользовании LVM вы можете просто добавлять в необходимые места неиспользо­ ванные экстенты.

Чтобы использовать LVM, вы должны установить программный пакет lvm2.

LVM поставляется с набором команд, которые могут быть использованы для ра­ боты 'с томами LVM. Изучив материал следующего подраздела, вы сможете боль­ ше узнать о командах LVM.

ВНИМАНИЕ -------­ Во избежание порчи жестких дисков компьютера во время изучения LVM мы рекомендуем вам вы­ полнять приводимые далее примеры на второстепенных съемных запоминающих устройствах. На­ пример, для выполнения данных команд мы использовали недорогое запоминающее USВ-устрой­ ство объемом 32 Мбайт (в /dev/sdb}.

Соэдание томов LVM Для начала, чтобы создать физические разделы на том запоминающем устройстве, на котором вы хотите создать позже логические разделы, воспользуйтесь командой fd i s k. В данном случае используется запоминающее USВ-устройство объемом 32 Мбай'I, смонтированное в каталоге /dev/ sdb:

Выполняет команду для управления $ sudo fdi sk /dev/sdb разделами диска Comma nd (m for hel p ) : р Отображает список (Ущес твующих разделов ( таких не т ) Di sk /dev/sdb : 32 МВ. 321 12128 bytes 1 heads. 62 sectors /track. 1 0 1 1 cyl i nders Units cyl i nders of 62 * 512 3 1744 bytes = = Dev i ce Boot Sta rt End Bl ocks Id System Command (m for hel p ) : n Создает новый раздел Corпna nd acti on е extended р pri ma ry pa rt i t i on ( 1 - 4 ) Делае т данный раздел основным р Назначает разделу номер Parti ti on number ( 1 - 4 ) : Fi rst cyl i nder ( 2 - 1 0 1 1. defa u l t 2 ) : Enter Usi ng defau l t va l ue Last cyl i nder or +s i ze or +si zeM or +si zeK ( 2 - 1 0 1 1. defa u l t 1 0 1 1 ) : Enter Usi ng defaul t v a l ue 1 0 1 Command ( m for hel p ) : t Определяе т тип раздела Sel ected pa rti ti on Нех code ( type L to l i st codes ) : ВЕ Код L VМ-раздела Cha nged system type of pa rt i t i on 1 to 8е ( L i nux LVM ) Command ( m for hel p ) : р Отображае т информацию о новом разделе Di sk /dev/ sdb : 32 МВ. 321 12128 bytes 1 heads. 62 sectors / t rack. 1 0 1 1 cyl i nders Uni ts cyl i nders of 62 * 512 31744 bytes = = Dev i ce Boot Sta rt End Bl ocks Id System L i nux LVM /dev/ sdЫ 2 1011 31310 8е 168 Глава 7. Администрирование файловых систем Прежде чем продолжать, убедитесь, что были произведены правильные изме­ нения в правильном разделе! Если все верно, создайте новую таблицу разбиения:

Command (m for he1 p ) : w The pa rt i t i on tаЫ е has been a 1 tered !

Ca 1 1 i ng i oct1 ( ) to re - read pa rt i ti on tаЫ е.

Sync i ng d i s k s.

Вернувшись в консоль, воспользуйтесь комаНдой s fd i sk для просмотра схемы разбиения жесткого диска:

Выводит список L VМ-разделов $ sudo s fdi sk - 1 /dev/sdb Di sk /dev / sdb : 1 0 1 1 cy1 i nders. 1 heads. 62 sectors/track Un i ts cy 1 i nders of 31744 bytes. Ы ocks of 1024 bytes. count i ng from О = #cyl s #Ьl ocks Dev i ce Boot Sta rt End Id System /dev/sdЫ 1 1010 101 31310 Ве L i nux LVM О /dev/ sdb2 О О О Empty /dev / sdb3 О О О О Empty 1 dev 1 sdb4 О О. О О Empty После этого назначьте раздел 1 dev 1 sdЫ в качестве нового физического тома LVM и воспользуйтесь командой pvs для просмотра информации о существующих LVМ-томах:

$ sudo pvcreate /dev/ sdЬl Делает носи тель sdЫ физ ическим тоном L VM Phys i ca 1 vo1 ume " /dev / sdЫ " succes s fu 1 1 y c reated $ s udo pvs V i ew phys i ca l LVM pa rt i t i ons VG Fmt Att r PV PSi ze PF ree 1 dev 1 sdЫ vgusb 1 vm2 28. 00М 20. 00М а Теперь создайте группу томов vgusb, воспользовавшись командой vgc reate, и отобразите текущие группы томов:

Создае т груnпу тонов vgusb $ sudo vgcreate vgusb /dev/ sdЬl Vol ume g roup " vgus b " succes s fu1 l y c reated $ sudo vgs Отображает текущие группы тонов #PV #SN #LV VG Att r VSi ze Vfree wz - - n - 28. 0 0М 28. 00М Vgusb 1 О О Для создания нового LVM -раздела размером 1 О Мбайт из группы томов vgusb воспользуйтесь командой 1 vcreate. Затем с помощью команды 1 vs просмотрите информацию о логическом томе, а с помощью команды vgs определите объем из­ менившегося свободного места:

$ sudo l vcreate - - si ze lOM - - name l vm_ul vgusb Round i ng up s i ze to fu1 1 phys i ca 1 extent 12. 00 МВ Log i ca l vo1 ume " 1 vm_u 1 " c reated Отображает информацию о логическом тоне $ sudo l vs Att r LSi ze Ori g i n Snap% Move Log Сору% VG LV 1 vm_u 1 vgusb -wi - a - 12. 00M Показывае т. ч то у вас ес ть 16 Мбай т свободного мес та $ sudo vgs #PV #LV #SN Att r VSi ze VFree VG wz - - n Vgusb 1 1 О 28. 00М 16. 00М Получен ие информации об использовании файловой системы Чтобы создать на LVM -разделе файловую систему ехtЗ, выполните следующую команду:

$ sudo mkfs. extЗ /dev/mapper/vgusb · l vm_ul mke2fs 1. 38 ( 30 - Jun - 20 0 5 ) F i l esystem l a bel = OS type : Li nux 8l ock s i ze=1024 ( l og=O ) Fragment s i ze=1024 ( l og=O ) 3072 i nodes. 12288 Ы ocks 614 Ы ocks ( 5. 00% ) reserved for the s uper user Fi rst data Ы осk= Maxi mum fi l esystem Ы ocks= 2 Ы ock g roups 8192 Ы ocks per g roup. 8 192 fragments per g roup 1536 i nodes per g roup SuperЫ ock backups stored on Ы ocks :

Wri ti ng i node taЫ es : done Creat i ng j ourna l ( 1024 Ы ocks ) : done Wri t i ng superЫ ocks and fi l esystem accounti ng i nformat i on : done Thi s fi l esystem wi }l Ье a utomat i ca l l y checked every 35 mounts or 180 days. whi chever comes fi rst. Use tune2fs - с o r - i to overri de.

Теперь файловая система ехtЗ создана и том LVM готов к использованию.

Ис поп ьэование томов LVM Чтобы приступить к использованию нового тома, представленного /dev /ma ppe r / vgusb - l vm_u 1, создайте точку монтирования ( /mnt / u 1 ) и смонтируйте этот том.

Затем для Проверки имеющегося свободного места воспользуйтесь командой df:

$ sudo mkdi r /mnt/ul Создает точцу нон тирования $ sudo mount ·t ехtЗ /dev/mapper/vgusb - l vm_ul /mnt/u1 Мон тирует тон $ df -m /mnt/ul Проверяет объен дос тупного дискового прос транс тва Fi l esystem 1M - Ы ocks Used Ava i l a Ы e Use% Mounted on /dev/mapper/vgus b - l vm_u 12 2 10 11% /mnt / u На данном этапе файловая система содержит только каталог 1 ost+found:

$ l s /mnt/ul l ost+found Скопируйте крупный файл в файловую систему. Например, скопируйте одиn из файлов ядра из каталога / boot в /mnt/ u 1 :

$ е р /boot/vml i nuz · * /mnt/ul/ Копируе т крупный файл в Jmnt lul Показывае т. ч то ка талог lmnt/u $ df ·m /mnt/ul инее т объен 4 Мбай т Fi l esystem 1M-Ы ocks Use.d Ava i l a Ы e Use% Mounted on /dev /ma pper/ vgus b - l vm_u 12 4 9 27% /mnt / u 170 Гла ва 7. Адми истр и рова ние файловых систем Сверьте информацию о скопированном файле с его md5sum и сохраните полу­ ченную контрольную сумму для дальнейшего использования:

$ md5sum /mnt/ul/vml i nuz - 2. 6. 20 - 1. 2316. fc5 Сверяет информацию с md5sum 8d0dc0347d36ebd3f6f2b49047e1 f525 /mnt /u 1 / vml i nuz - 2. 6. 20 - 1. 2316. fc Увеличен ие тома LVM Допустим, вы исчерпали доступное свободное место и вам необходимо расширить объем тома LVM. Чтобы это сделать, демонтируйте том и воспользуйтесь коман­ дой 1 v res i ze. После этого с помощью команды e2fsck проверьте файловую систему и выполните команду res i ze2fs, чтобы изменить размер файловой системы ехtЗ данного тома:

$ sudo umount /mnt/ul Демон тируе т тон $ sudo l vres i ze · · si ze lбН /dev/vgusЬ/l vm_ul Изменяет размер тона Extend i ng l og i ca l vol ume l vm_u 1 to 16. 0 0 МВ Log i c a l vol ume l vm_u 1 s ucces s fu l l y res i zed $ sudo e2 fsck · f /dev/vgusЬ/l vm_ul e2fsck 1. 40 ( 12 - J u l - 2007 ) Pa s s 1 : Chec k i ng i nodes. Ы ocks. a nd s i zes Pass 2 : Check i ng d i rectory st ructure Pass 3 : Check i ng d i rectory connecti v i ty Pass 4 : Check i ng reference counts Pass 5 : Check i ng group summa ry i nformati on / dev/ vgusЬ/ l vm_u 1 : 12/3072 fi l es ( 25. 0% non - cont i guous ). 3379/ 1 2288 Ы ocks $ sudo resi ze2 fs /dev/vgusЬ/l vm_ul lбН Изменяет размер файловой сис темы res i ze2fs 1. 38 ( 30 - Jun - 2005 ) Res i zi ng the fi l esystem on / dev / vgusЬ/ l vm_u 1 to 16384 ( 1k ) Ы ocks.

The fi l esystem on /dev / vgus Ь/ l vm_u 1 i s now 16384 Ы ocks l ong.

В приведеином примере и размер тома, и размер файловой системы был увели­ чен до 1 6 Мбайт.

После этого снова смонтируйте том, проверьте объем доступного дискового пространства и сверьте его с созданным ранее md5sum:

$ sudo mount -t ехtЗ /dev/mapper/vgusb - l vm_ul /mntlul Зaнoвo мон тирует тон $ df - m /mnt/ul Показывае т. ч то исполь зовано 4 Мбай т из 1 6 Мбайт F i l esystem 1M - Ы ocks Used Ava i l a Ы e Use% Mounted on /dev /mapper/vgus b - l vm_u 16 4 13 20% /mnt l u l $ md5sum /mnt/ul/vml i nuz - 2. 6. 20 · 1. 2316. fc5 Заново проверяет md5sum 8d0dc0347d36ebd3f6f2b49047e1 f525 /mnt / u 1 / vml i nuz - 2. 6. 20 - 1. 2316. fc Теперь смонтированный том занимает 16 Мбайт вместо 10 Мбайт.

У меньшен ие размера тома LVM Вы также можете использовать команду l v res i ze, если хотите уменьшить объем существующего LVM -тома. Как и в предыдущем случае, перед изменением раз Резюме мера тома размонтируйте его, а затем выполните команды e2fsck (чтобы проверить файловую систему) и res i ze2fs (для уменьшения размера тома):

$ sudo umount /mnt/ul $ sudo e2fsck - f /dev/vgusЬ/l vm_ul fsck 1. 38 ( 30 - J un - 2005 ) e2fsck 1. 38 ( 30 -Jun - 20 0 5 J The fi l esystem s i ze ( accord i ng t o t h e s uperЫ ock ) i s 16384 Ы ocks The phys i ca l s i ze of the dev i ce i s 8192 Ы ocks Pass 1 : Checki ng i nodes. Ы ocks. and s i zes /dev / vgusЬ/ l vm_u1 : 12/3072 fi l es ( 8. 3% non - conti nguous. 353 1 / 1 6384 Ы ocks $ sudo resi ze2 fs /dev/vgusЬ/l vm_ul 12М Изменяе т разнер файловой сис тены res i ze2fs 1. 38 ( 30 - Jun - 2005 ) Res i zi ng the fi l esystem on /dev / vgusЬ/ l vm u1 to 12288 ( 1k ) Ы ocks.

The fi l esystem on /dev / vgus Ь/ l vm_u 1 i s now 12288 Ы ocks l ong.

$ sudo l vresi ze - - si ze 12М /dev/vgusЬ/l vm_ul WARN I NG : Reduc i ng act i ve l og i ca l vol ume to 12. 00 МВ TH I S МАУ DESTROY. YOUR DATA ( fi l esystem etc. ) Do you rea l l y want to reduce l vm u1? [y/ n J : у Reduc i ng l og i c a l vol ume l vm u 1 to 8. 0 0 МВ Log i ca l vol ume l vm_u1 s uccessful l y res i zed Заново мон тируе т тон $ sudo mount -t ехtЗ /dev/mapper/vgusb - l vm_ul /mnt/ul $ df -m /mnt/ul Показывае т. ч то исполь зовано 4 Мбай т из 12 Мбайт 1M-Ьl ocks Used Ava i l a Ы e Use% Mounted on Fi l esystem /dev/mapper/vgus b - l vm_u 12 4 9 20% /mnt / u Теперь смонтированный том занимает 1 2 Мбайт вместо 1 6 Мбайт.

Удапение логических томов и групп LVM Чтобы удалить логический LVМ-том из группы томов, используйте команду l v remove:

$ sudo l vremove /dev/vgusЬ/l vm_ul Do you rea l l y want to remove act i ve l og i c a l vol ume " l vm-u 1 " ? [y/ n ] : у Log i ca l vol ume " l vm_u1 " succes sful l y removed Для удаления целой группы LVM -томов используйте команду vg remove:

$ sudo vgremove vgusb Vol ume g roup " vgusb" s uccess ful l y removed Существует гораздо больше способов работы с LVM, ознакомиться с которыми вы можете в статье cLVM Н OWTO• (http://tldp.org/HOWТO/LVM-HOWТOI).

Р ез ю м е Создание файловых систем в Linux и управление ими является очень важной частью системного администрирования. Linux поддерживает некоторые классические 172 Глава 7. Администрирование файловых систем типы файловых систем (ext2, ехtЗ, reiserfs и др. ), а также позволяет создавать и управлять файловыми системами Windows (VF АТ, NTFS и т. д.) и традицион­ ными и специальными типами файловых систем Linux и UNIX (minix, jfs и xfs).

С помощью таких команд, как fd i sk и pa rted, вы можете разбивать пространство жесткого диска. Среди приложений, предназначенных для работы с файловыми системами, можно отметить утилиты для их создания ( mkf s ), просмотра и измене­ ния атрибутов файловой системы (tune2fs и mpe2fs ), монтирования и демонтиро­ вания файловых систем (mount и umount) и проверки на наличие ошибок и повреж­ денных секторов (badЫ ocks и fsck). Чтобы получить информацию о занимаемом файлами и каталогами пространстве файловой системы, используйте команды df и du.

Соэда н ие рез ервн ы х 8 коп и й и работа со съе м н ы м и носи тел я м и Раньше резервное копирование данных в Linux, как правило, осуществлялось пу­ тем сжатия и архивирования данных с последующей записью полученного архива на ленту. В последние годы количество утилит для архивирования, способов сжа­ тия и видов копируемых данных существенно возросло. Архивирование с исполь­ зованием ленты было вытеснено Другими способами резервного копирования, такими как сетевое резервное копирование, копирование на другие жесткие диски, а также на компакт-диски, DVD или другие недорогие съемные носители.

В данной главе подробно рассматриваются приложения, используемые для резервного копирования и восстановления важных данных. Первая часть главы посвящена использованию таких основных приложений резервного копирования, как tar, gzip и rsync.

Резе рвное ко п ирова ни е данны х в архивы Если вы раньше работали в Windows, то вам, скорее всего, приходилось использо­ вать такие приложения, как WinZip или PKZIP, сжимающие группы файлов в один.

В Linux для помещения групп файлов в один архив ( ta r) и сжатия этого архива для последующего эффективного хранения ( gz i р, bz i р2 и 1 zop) предлагаются разные инструменты, однако с помощью дополнительных параметров команды ta r вы мо­ жете выполнять эти две операции совместно.

Создани е резе рвных архивов с помощь ю и н а рум е нта tar Команда t a r, выступающая в качестве ленточного архиватора, относится к прило­ жениям ранних систем UNIX. Хотя первоначальным носителем, на который запи­ сывала,сь информация с помощью t a r, была еще магнитная лента, t a r и сегодня используется для создания архивов, которые впоследствии могут быть записаны на различные носители.

Команда t a r способна выполнять большое количество функций, что отражено в десятках ее параметров. Однако в основном ta r используется для создания 174 Глава 8. Соэдание резервных копий и работа со съемными носителями резервных архивов ( с), извлечения файлов из архива ( - х), выявления различий между архивами ( - d) и обновления файлов в архиве ( - u). Кроме того, с помощью этой команды вы можете добавлять файлы в существующие архивы ( - r или А), удалять файлы из них ( - d), а также отображать содержимое архива ( - t).

ПРИМЕЧАНИЕ -------­ Хотя команда tar входит в состав практически всех систем UNIX и Uпux, на многих системах она используется по-разному. Например, операционная система Solaris не поддерживает использование параметра -z для управления архивами TAR в формате gzip, зато команда Star (ess-tar) поддержи­ вает доступ к контрольным спискам (ACLs) и меткам (для обеспечения расширенных прав доступа при использовании Samba).

В процессе создания ТАR-архива вы можете добавлять параметры для сжатия полученного архива. Например, для сжатия архива в формат bzip2 укажите пара­ метр - j, а для сжатия в формат gzip - параметр - z. По определению, обычные файлы tar имеют расширение Т AR, в то время как сжатые архивы - ТAR. BZ (сжат с помощью bzip2) или TAR.GZ (сжат с помощью gzip ). Если же вы сожмете файл вручную с помощью утилиты lzop (www. lzop.org), то полученный архив будет иметь расширение ТAR.LZO.

Файлы Т AR, помимо использования для резервного копирования, являются популярным способом распространения исходных кодов и бинарных файлов про­ ектами по разработке программнаго обеспечения. Именно поэтому вы вправе рас­ считывать, что на любой системе Linux и UNIX будут приложения, необходимые для работы с файлами tar.

ПРИМЕЧАНИЕ -------­ Особенность работы с командой tar связана с тем, что она была создана еще до возникновения стандартов использования параметров. Хотя вы можете добавлять параметры для tar с помощью дефиса, это не всегдв является обязательным условием. Поэтому вы вполне можете встретить ко­ манду tar, например tar xvf, без дефиса, обозначающего ввод параметра.

В качестве классического примера использования команды ta r может служить комбинирование устаревших параметров и каналов для сжатия информации:

$ tar с *. txt 1 gzi p - с > myfi l es. tar. gz Создает архив. сжинает его и воз вращает Приведенный пример, который вы можете найти в документации к старым системам UNIX, демонстрирует выполнение стандартного двухшагового процесса.

Команда ta r создает в текущем каталоге архив из всех текстовых ТХТ -файлов (с), затем направляет выход команде gzi p и выводит результат на stdout ( - с), а уже после этого направляет информацию в файл myfi 1 es. ta r. gz. Стоит отметить, что ta r является одной из немногих команд, которая не требует использования знака дефиса ( - ) для добавления параметра.

Новые версии ta r, используемые на современных системах Linux, способны создавать архивы и сжимать информацию в рамках одной операции:

Из ТХТ-файлов создает файл tar.

$ tar czf myfi l es. tar. gz *. txt сжа тый с помощью gz ip Резервное копирование данных в архивы $ При создании архива о тображает более tar czvf myf1 1 es. tar. gz *. txt подробную информацию textfi 1 el. txt text fi 1 е2. txt Обратите внимание, что в приведеиных примерах имя архива (myfi 1 es. ta r. gz) должно следовать сразу за параметром f команды t a r (он определяет имя будуще­ го архива) - иначе выход tar будет направлен в stdout (другими словами, на экран вашего монитора). Параметр z указывает, что для сжатия необходимо использовать программу gzip, а параметр v позволяет отображать более подробную информацию о процессе сжатия.

Кроме того, с помощью команды ta r (и при желании gunzi p) вы можете распа­ ковывать архивы. Выполнить эту операщt:ю можно в один или два этапа:

gunz i p - с щyf1 1 es. tar. gz 1 tar х $ Распаковывает архивы ZIP и TAR $ Распаковывае т архивы ZIP и TAR gunzi p щyf1 1 es. tar. gz : tar xf щyf1 1 es. tar Чтобы выполнить ту же операцию в одно действие, введите следующую ко- · манду:

$ tar xzvf щyf1 1 es. tar. gz textf1 1 el. txt textf1 1 e2. txt В результате ее выполнения будут распакованы и скопированы в текущий ка­ талог заархивированные ранее ТХТ -файлы. Параметр х используется для извле­ чения файлов, z - для распаковывания, параметр v расширяет объем отображае­ мой информации, а параметр f указывает, что следующий параметр является именем обрабатываемого архива (myfi 1 es. ta r. gz).

:: пользование приложени й для сжатия Сжатие является важным этапом при резервном копировании файлов. Сжатые файлы занимают меньше места на носителях (компакт-диске, DVD, магнитной ленте и т. д.) или сервере, используемом для хранения резервных копий файлов.

Кроме того, для копирования таких файлов на носитель или передачи их по сети требуется меньше времени.

Сжатие, с одной стороны, сохраняет много пространства на носителях и сокра­ щает время передачи файлов на сервер, но, с другой стороны, может значительно увеличить нагрузку на центральный процессор. Для примера вы можете озна­ комиться с процедурой аппаратного сжатия данных с использованием ленты (www. amanda.org/docs/faq.html#id3460 16).

В приведеиных выше примерах вместе с ta r использовалась команда gzi р. Тем не менее tar может работать и со многими другими Приложениями для сжатия.

В Ubuntu tar работает с утилитами gzip и bzip2. Третьей включенной в данное ру­ ководство утилитой для сжатия является команда 1 zop, которая может использо­ ваться с ta r несколько иначе, чем остальные две. Если выстроить эти приложения в порядке от самого быстрого, но обеспечивающего наименьшую степень сжатия к самому медленному, но обеспечивающему наилучшее сжатие, то получится сле­ дующая последовательность: lzop, gzip и bzip2.

176 Глава 8. Создание резервных копий и работа со съемными носи телями Если вы архивируете и сжимаете большое количество информации, это может занять значительное время. В этом случае вам стоит иметь в виду, что команда bzi р тратит на сжатие примерно в десять раз больше времени, чем 1 zop, а сжимает луч­ ше только в два раза. Однако каждая команда позволяет использовать различные уровни сжатия, что несколько уравнивает соотношения степени сжатия и времени, затрачиваемого на него.

Чтобы использовать команду t a r вместе с bzi p2, используйте параметр - j :

$ tar cjvf щyfi es. tar. bz2 *. txt Создае т архив и сжина 7 т его с помощью bz ip Используя параметр - j, вы можете и распаковывать сжатые с помощью bzip файлы (так же, как при использовании параметра - х с командой t a r):

$ tar xjvf щyfi l es. tar. bz2 Из влекает файлы. распаковая их с помощью bz ip Утилита lzop несколько меньше совместима с tar. Для ее использования вам потребуется установить пакет lzop. Чтобы вьmолнить сжатие с помощью команды lzop, воспользуйтесь параметром - - use- compress - program:

$ sudo apt - get i nstal l l zop $ tar - - use - compress - program-l zop - cf myfi l es. tar. l zo *. txt $ tar - - use •compress - program-l zop - xf myfi l es. tar. l zo В данных примерах команда использует синтаксис, обратный старому синтак­ сису команды ta r, располагая параметр перед командой. В остальных примерах мы использовали современный синтаксис команды ta r, не требующий использования параметра.

ПРИМЕЧАНИЕ -------­ Вы также можете столкнуться со сжатыми файлами в формате RAR. Этот формат популярен в сетях с равноправными узлами и защищен авторскими правами, поэтому не имеет какого-либо широ­ ко распространенного в Uпux приложения для работы с файлами RAR. В Ubuпtu, чтобы получить возможность работать с командами для файлов в формате RAR, установите программные пакеты uпrar и rar.

Команда gzip Как уже было отмечено, вы можете любую команду сжатия использовать отдель­ но (в отличие от команды ta r). Ниже приведено несколько примеров использова­ ния команды gzi р, позволяющих создавать сжатые файлы gzip и работать с ними:

$ gzi p myfi l e Сжинае т щyfi le и переиненовывае т его в myfi le. gz Следующая команда выполняет те же действия, но отображает более подроб­ ную информацию о ходе выполнения:

$ gzi p - v myfi l e Сжинает myfi le и о тображает более подробную информацию myfi l e : 86. 0% - - repl aced wi th myfi l e. gz $ gzi p - tv щyfi l e. gz Проверяе т целостнос ть файла gz ip · myfi l e. gz : ОК $ gzi p - l v myfi l e. gz Отображае т подробную информацию о файле gz ip rat i о method c rc date t i me compressed uncompressed uncompressed name 86. 0% defl a Of27d9e4 J u l 10 04 : 48 46785 myfi l e Резервное копирование данных в архивы Для сжатия всех файлов в каталоге воспользуйтесь любой из следующих команд:

$ gzi p · rv mydi r Сжинае т все файлы в ка талоге repl aced wi th myd i r / fi 1 e1. gz myd i r/fi 1 e1 : 39. 1% rep1 aced wi th myd i r / fi 1 e2. gz myd i r/fi 1 e2 : 39. 5% Обеспечивае т наибольшую скорос ть.

$ gzi p · 1 myfi l e но наименьшую с тепень сжа тия $ gzi p · 9 myfi 1 e Обеспечивает наиненьщую скорос ть.

но наибольщую с тепень сжа тия Для определения уровня сжатия добавьте дефис перед соответствующей циф­ рой (от 1 до 9). Как следует из приведеиного выше примера, число - 1 соответству­ ет наиболее высокой скорости и наименьшей степени компрессии, а число - 9 наименьшей скорости и наибольшей степени компрессии. Уровнем по умолчанию для gzip является б. Команда 1 zop использует меньшее количество уровней: 1, 3 (по умолчанию), 7, 8 и 9. Уровни сжатия команды bzi р2 действуют иначе.

Для распаковки файла gzip используйте команду gunzi р и один из следующих примеров:

Распаковывает файл myfi l e. gz $ gunzi p · v myfi l e. gz и переиненовывает его в myfi le myfi l e. gz : 86. 0% - - rep1 aced wi th myfi 1 e $ gzi p · dv myfi l e. gz То же самое Хотя приведеиные примеры демонстрируют процесс упаковки обычных фай­ лов, те же параметры могут использоваться и для сжатия файлов tar.

Команда bzip Команда bzi р2 позволяет достигать максимальной, по сравнению со всеми осталь­ ными приводимыми в данной главе командами, степени компрессии. Ниже пред­ ставлены некоторые примеры использования команды bz i р2:

$ bzi p2 myfi l e Сжинает файл и переиненовывает его в щyfi 7e. bz $ bzi p2 · v myfi l e То же. но выводит более подробную информацию myfi 1 e : 9. 529 : 1. 0. 840 bi ts/byte. 89. 51% sa ved. 334045 i n. 35056 out.

Распаковывае т файл и переиненовывае т его в щyfi l e $ Ьunzi p2 myfi l e. bz $ bzi p2 · d myfi l e. bz2 То же $ bunzi p2 · V myfi l e. bz2 То же. но выводит более подробную информацию myfi l e. bz2 : done Команда lzор Использование команды 1 zop отличается от использования gzi р и bzi р2. Данная команда лучше подходит для случаев, при которых скорость сжатия важнее его степени. Когда 1 zop сжимает содержимое файла, она оставляет исходный файл не­ тронутым (если вы не используете параметр - U), однако создает новый файл с рас­ ширением LZO. Вы можете воспользоваться любым из следующих примеров ис­ пользования команды lzop для сжатия файла myfi 1 е:

$ l zop · V myfi l e Сохраняе т myfi le и создает сжа тый myfi le. lzo compres s i ng myfi 1 e i nto myfi 1 e. 1 zo $ l zop · U myfi l e Удаляет myfi l e. но создае т сжа тый myfi l e. lzo 178 Глава 8. Соэдание резервных копий и работа со съемными носител ями Чтобы после создания файла myfi 1 е. 1 zo проверить, отобразить или распако­ вать его, воспользуйтесь любой из следующих команд:

Проверяет целос тнос ть сжа того файла $ 1 zop - t myfi l e. l zo ·$ l zop - - i nfo myfi l e. l zo Отображает заголовок каждого вложенного файла Отображает информацию о сжа тии для каждого $ l zop - 1 myfi l e. l zo вложенного файла method compres sed uncompr. rati o uncompressed_name LZOlX - 1 59008 99468 59. 3% myfi 1 е Отображает содержимое сжа того файла $ l zop - - l s myfi l e. l zo (аналогично команде ls - 7 ) $ cat myfi l e 1 l zop > x. l zo Сжинае т s tandin · и направляет его в s tdout Сохраняет файл щyfi l e. lzo и распаковывает его $ l zop - dv myfi l e. l zo в щyfi l e В отличие от gz i р и b z i р2, команда 1 z o p не имеет соответствующей команды для распаковки архивов. Для распаковки файла просто добавьте к команде 1 zop пара­ метр - d. Если передать команде 1 zop список из файлов и имен каталогов, то она сожмет все файлы, пропустив при этом каталоги. В полученном запакованном файле сохранятся все параметры исJtодных элементов: имена, права доступа и подпи­ си даты и времени.

П росмотр, объед инение и добавпение файлов в архивы tar До сих пор с помощью t a r мы только создавали и распаковывали архивы, однако данная команда поддерживает также параметры, позволяющие просматривать со­ держимое архивов, объединять их, добавлять файлы в существующие архивы и удалять файлы из архива.

Чтобы просмотреть содержимое архива, воспользуйтесь параметром - t:

$ tar tvf myfi l es. tar Отображае т список вложенных в ТАR -архив файлов - rw - r - - r - - root / root 9584 2007 - 07 - 05 1 1 : 20 : 33 textfi 1 e 1. txt - rw- r - - r - - root/ root 9584 2007 - 07 - 09 1 0 : 23 : 44 textfi 1 e2. txt $ tar tzvf myfi l es. tgz Отображает файлы архива gz ip Если архив сжат с помощью команды 1 zop и назван myfi 1 е. ta r. 1 zo, то вы може­ те отобразить содержимое этого tarjlzор-файла следующим образом:

$ tar - - use- compress - program-l zop - t f myfi l es. tar. l zo Отображае т содержимое архива LZO Для объединения одного файла tar с другим предназначен параметр -А. Сле­ дующая команда добавляет содержимое a rchi ve2. t a r к архиву a rchi ve1. tar:

$ tar ·Af archi vel. tar archi ve2. tar Чтобы добавить один или несколько файлов в существующий архив, восполь­ зуйтесь параметром - r. В следующем примере файл myfi 1 е добавляется в архив a rchi ve. t a r:

$ tar rvf archi ve. tar mуfi l е Добавляет файл в архив tar Резервное копирование файлов через сеть С помощью специальных символов вы также можете добавить несколько фай­ лов в архив:

$ tar rvf archi ve. tar *. txt Добавляет несколь ко файлов в архив tar Удапение фа йлов из архивов tar Если у вас н а жестком диске имеется файл арх;

ива tar, то в ы при необходимости можете удалить некоторые файлы из этого архива. Отметим, что данный способ нельзя использовать для удаления файлов архивов tar, записанных на магнитной ленте. Ниже приведен пример удаленив файлов из архиsа tar:

$ tar - - del ete fi l el. txt - f щyfi l e. tar Удаляет fi lel. txt из myfi le. tar Резервное копирование фа йлов ч е рез сеть После выполнения резервного копирования файлов и помещения их в архив что вы будете делать с полученным архивом? Первой причиной, по которой необходи­ мо сделать резервную копию этого архива, является вероятность, например, выхода из строя жесткого диска, в случае чего вам потребуется восстанавливать файлы из резервной копии. Сохранить резервные копии можно следующими способами:

О скопировав резервные копии на съемные носители, например ленту, комиакт­ диск или DVD (как было описано ранее в этой главе) ;

скопировав их на другой компьютер сети.

О Скорость и надежность сетей, а также низкая стоимость жестких дисков боль­ шой вместимости и безопасность, связанная с перемещением данных за пределы рабочего места, делают популярным резервное копирование через сеть. Для вы­ полпения эффективного и безопасного резервного копирования личных данных или данных небольшого офиса может быть достаточно сочетания нескольких про­ стых команд. Подобный подход очень хорошо характеризует философию UNIX, заключающуюся в объединении нескольких простых программ с целью выполне­ ния ими более сложных задач.

Хотя практически любая команда, способная копировать файлы по сети, может осуществить резервное копирование на удаленный компьютер, некоторые утилиты особенно хорошо справляются с этой задачей. С помощью инструментов OpenSSH, таких как ssh и scp, вы можете настроить безопасную и зашифрованную передачу резервных архивов.

Приложепия наподобие команды rsync могут сохранять ресурсы, копируя только файлы (или части файлов), измененные со времени последнего резервно­ го копирования. С помощью таких команд, как u n i son, вы можете осуществлять резервное копирование файлов как в Windows, так и в операционных системах Linux.

' В следующих подразделах описываются способы резервного копирования дан­ ных по сети на другие компьютеры.

180 Глава 8. Соэдание резервных копий и работа со съемными носителями ПРИМЕЧАНИЕ -------­ Кроме того, приложением, которое может вас заинтересовать, является команда rsпapshot (yum install rsnapshot) (www. rsnapshot.org), которая может работать совместно с rsync и создавать еже­ часные, ежедневные, еженедельные и ежемесячные ( параметр времени настраивается) копии фай­ ловой системы. Для сохранения копий файловой системы используются жесткие ссылки, которые впоследствии можно синхронизировать с измененными файлами.

У становить данное приложение можно с помощью слдующих команд:

$ sudo apt - get i nstal l rsnapshot $ sudo apt - get i nstal l sshfs Резервн ое копирование архивов tar через ssh Пакет OpenSSH (www.openssh.org) предоставляет набор приложений для безопас­ ного удаленного входа в систему, удаленного выполнения и удаленного копирова­ ния файлов через сетевые интерфейсы. Настроив два компьютера на совместное использование шифров-ключей, вы сможете обмениваться файлами между этими машинами без необходимости вводить параль при каждой попытке передачи дан­ ных,· что позволит вам создавать коды для автоматического резервного копирова­ ния данных из SSH -клиента на SSH -сервер.

Используя команды OpenSSH и работая на центральной системе Linux, вы можете собирать резервные копии данных с машин-клиентов. Следующая ко­ манда выполняет команду ta r на удаленном клиенте (для архивирования и сжа­ тия файлов ), направляет поток данных на стандартный выход и использует ко­ манду s s h для локального размещения резервных копий данных посредством ta r:

$ mkdi r щуЬасkuр : cd щуЬасkuр $ ssh francoi s@serverl ' tar cf - myfi l e* ' 1 tar xvf francoi s@serverl ' s pas sword : ****** myfi l el myfi l e В пр иведенном примере все файлы, начинающиеся с my fi 1 е, копируются из рабочего каталога пользователя francois на serverl и помещаются в текущий каталог.

Заметьте, что с левой стороны канала создается архив, а с правой стороны файлы из архива перемешаются в текущий каталог (запомните, что s s h переписывает локальные файлы, если таковые существуют, и именно поэтому в примере мы создали пустой каталог).

Чтобы выполнить обратное действие и скопировать-файлы с локальной систе­ мы на удаленную, необходимо сначала выполнить команду tar, а затем для поме­ щения файлов в выбранный каталог на удаленном компьютере использовать команду сd:

$ tar cf - myfi l e* 1 ssh francoi s@serverl \ ' cd /,home/ francoi s /myfol der : t a r xvf ' francoi s@serve rl ' s password : ****** myfi l e l myfi l e Резервное коnирование файлов с помощью rsync В следующем примере мы не распаковываем файлы tar на передающей стороне, а записываем резуJIЬтаты в файлы TGZ:

$ ssh francoi s@serverl ' tar czf · myfi l e* ' 1 cat > myfi l es. tgz $ tar cvzf · myfi l e* 1 ssh francoi s@serverl ' cat > myfi l es. tgz ' В первом примере файлы из рабочеrо каталога пользователя francois, хранящие­ ся на serverl и начинающиеся на myfi 1 е, заnаковываются в архив Т AR, который затем сжимается, после чего уже запакованные файлы направляются в файл myfi 1 es. tgz на локальной системе. Во втором примере выполняется обратное дей­ ствие: из локального каталога выбираются все файлы, начинающиеся на myfi 1 е, и направляются в файл myfi 1 es tgz, находящийся на удаленной системе.

.

Приведеиные в этих примерах команды удобно использовать для копирования файлов через сеть. Помимо сжатия, они позволяют использовать на ваш выбор разЛичные параметры tar, такие как инкрементные параметры резервного копиро­ вания.

Резе рвное копировани е фа йлов с по м о щ ь ю rsync Команда rsync поддерживает большое количество параметров для резервного ко­ пирования. У никальной данную команду делает алгоритм, позволяющий сверять на основании контрольных сумм небольшими блоками локальные и удаленные файлы и передавать только отличающиеся блоки. Этот алгоритм настолько эффек­ тивен, что используется и в других программах резервного копирования.

Команда rsync может использоваться перед удаленным командным процессо­ ром (ssh) или посредством запуска демона rsync d в конце сервера. В следу,ющем примере rsync используется через консоль ssh для получения зеркала каталога:

$ rsync · avz · · del ete chri s@serverl : /home/chri s/pi cs/ chri spi cs/ Приведеиная команда предназначена для отражения в локальной системе структуры удаленного каталога ( J home/chri s / pi cs/). Параметр -а выполняет коман­ ду в режиме архивации (рекурсивного копирования всех файлов из удаленного каталога), параметр - z сжимает файлы, а - v детализирует возвращаемую информа­ цию. Параметр - - de 1 ete указывает команде rsync на необходимость удалять любые файлы на локальной системе, которые больше не сущестуют на удаленной.

Для непрерывного пошагавого резервного копирования с помощью команды rsync выполните следующую команду:

# mkdi r /var/backups # rsync · · del ete · backup \ \ · · backup · di r-/var/backups/backup · ' date +%д' · avz chri s@serverl : /home/chri s/Personal / \ /var/backups/current · backup/ При запуске приведеиной команды все файлы из каталога / home/chri s / Persona на удаленном компьютере serverl копируются в локальный каталог / v a r / backups /, 182 Глава 8. Соэдание резервных копий и работа со съемными носителями предназначенный для хранения текущих резервных копий. Все изменяющиеся файлы копируются в каталог с соответствующим дню недели названием, например / v a r /backups/ backup - Monday. По окончании недели будет создано семь каталогов, отражающих все произведенные за это время изменения.

Другой хитростью для выполнения циклического резервного копирования является использование вместо многочисленных копий файлов жестких ссылок.

Этот процесс осуществляется в два этапа и заключается в циклическом сдвиге файлов с последующим выполнением команды rsync:

# rm - rf /var/backups/backup · ol d/ # mv /var/backups/backup · current/ /var/backups/backup · ol d/ # rsync · · del ete · · l i nk - dest=/var/backups/backup - ol d - avz \ chri s@serverl : / home/chri s/Personal / /var/backups/backup - current/ В предыдущем примере текущий резервный каталог заменяется предыдущим посредством удаления резервных копий прошлой недели и замены их резервны­ ми копиями текущей недели. Если любой из файлов, скопированных из лично­ го удаленного каталога и расположенных на компьютере server1, существовал при предыдущем резервном копировании, то при Запуске посредством команды rsync с параметром - - 1 i nk - dest нового резервного копирования будет создана жесткая ссылка, связывающая файлы в текущем и старом резервных катало­ гах.

С помощью жестких ссылок между файлами в старом и текущем резервных каталогах вы можете сэкономить много места на диске. Так, если у вас в обоих каталогах есть файл fi 1 е 1. txt, то, отобразив файлы inodes следующим образом, вы можете убедиться, что оба файла являются одним физическим файлом:

$ l s. ;

/var/backups/backup*/ fi l el. txt 260761 / v a r / backups / backup - c u rrent/ fi l e1. txt 260761 / v a r / backups/backup - o l d / fi l e 1. txt Команда unison Хотя команда rsync и является удобной для осуществления резервного копирова­ ния с одного компьютера на другой, однако это предполагает, что данные изме­ няются только на компьютере, с которого осуществляется резервное копирование.

В случае же если у вас есть два компьютера и они оба изменяют один файл, а вам необходимо синхронизировать эти файлы, придется использовать приложение unison.

Часто возникает необходимость работать с одними и теми же документами одновременно на ноутбуке и настольном компьютере. На этих компьютерах могут даже быть установлены разные операционные системы, однако, поскольку unison является межплатформенным приложением, оно позволяет синхронизировать файлы, находящиеся и на системах Linux, и на системах Windows. Чтобы исполь­ зовать приложение unison в Ubuntu, вам потребуется установить одноименный программный пакет (выполните из учетной записи команду s udo и a pt - get i nsta l l uni son ).

Резервное копирование файлов с помощью rsyпc С помощью uni son вы сможете создать учетные записи двух суперпользователей, тем самым обеспечив два пути си н хронизации. Эти учетные записи могут быть как локальными, так и удаленными:

$ uni son /home/ francoi s ssh : // francoi s@serverl// home/ fcaen $ uni son /home/ francoi s /mnt/backups/ francoi s · homedi r ПРИМЕЧАНИЕ -------­ Убедитесь, что на обоих компь ютерах установлена одинаковая версия uпisoп.

Для осуществления резервного копирования команда uni son позволяет исполь­ зовать как графические, так и консольные приложения. По умолчанию использу­ ется графическая версия. Тем не менее, если у вас не запущен оконный менеджер или если у вас unison запущен без графической оболочки, то это может вызвать некоторые ошибки в работе программы. Чтобы запустить unison в режиме команд­ ной строки, воспользуйтесь параметром - u i text:

$ uni son /home/ francoi s ssh : / / francoi s@serverl//home/ fcaen · ui text Contacti ng server...

franco i s@serverl " s pas sword :

Look i ng fo r cha nges Wa i t i ng for cha nges from server Reconci 1 i ng cha nges 1 оса 1 serverl newfi 1 e > memo. txt [ f] у --- Propagat i ng updates После этого утилита utility сравнит две учетные записи суперпользователей и для каждого зафиксируемого изменения попросит определить вид требуемого действия. В приведеином выше примере на локальной системе был обнаружен новый файл memo. txt. От пользователя требуется определить, хочет ли он продол­ жать выполнение обновления (в этом случае файл memo. txt будет скопирован с ло­ кального компьютера на serverl). Чтобы принять обновления, введите у.

Вы также можете добавить к команде параметр - a uto, чтобы утилита выполня­ ла предусмотренные по умолчанию действия, не запраш)Jвая подтверждения пользователя на их выполнение:

$ uni son /home/ francoi s ssh : // francoi s@serverl//home/ fcaen - auto Более подробную информацию вы можете получить, ознакомившись с МАN­ страницей, посвященной uni son. Кроме того, воспользовавшись параметром he 1 р, вы можете просмотреть полный список используемых командой u n i son парамет­ ров, а с помощью параметра - doc а 1 1 - постранично отобразить руководство по uni son:

$ uni son · hel p Отображает список паране тров un i son $ uni son · doc al l 1 l ess Выводит руководство по un i son Если вам часто приходится синхронизировать учетные записи суперпользова­ теля, создайте профиль, основанный на заготовленных настройках. В графическом 184 Глава 8. Соэдание резервных копий и работа со съемными носител ями режиме это можно сделать на экране по умолчанию. Профили же хранятся в ка­ талоге -/. un i son/ в текстовых Р RF-файлах, которые могут быть совсем прос­ тыми:

root / home/ francoi s = root ssh : / / francoi s@serverl / / home / fcaen = Если настройки хранятся в профиле fc - home. prf, то можете активизировать его с помощью следующей команды:

$ un;

son fc - home Резервное ко n ировани е дан н ых на съемные носители Вместительность компакт-дисков и DVD, а также низкая цена на эти виды носи­ телей сделали их популярными для резервного копирования данных с компьюте­ ров. Используя приложения, входящие в большинство операционных систем Linux, вы можете собирать файлы в виде образов для их последующего резервного копи­ рования на компакт-диски или DVD.

Приложепия командной строки, такие как mk i sofs (создает и записывает об­ разы на компакт-диски) и cdrecord (создает и записывает образы на комиакт­ диски и DVD), стали наиболее популярными для осуществления резервного копирования на компакт-диски и DVD. На сегодняшний день существует мно­ жество графических вариантов этих приложений, которые вы также можете ис­ пользовать в качестве утилит для резервного копирования. Например, среди приложений G U I для подготовки и записи CDjDVD можно назвать КЗЬ (за­ писывает компакт-диски и DVD в KDE) и Nautilus (файловый менеджер для GNO M E с возможностью записи компакт-дисков). Среди других GUI-приложе­ ний, предназначенных для записи компакт-дисков, можно отметить gcombust, X-CD- Roast и graveman.

Команды для создания образов файловых систем и их последующей записи и хранения на компакт-дисках или DVD описаны далее.

Создан ие резервн ы х образов Большинство компакт-дисков и DVD с данными, поскольку они создаются с ис­ пользованием стандарта IS09660, применяющегося для форматирования инфор­ мации на этих дисках, читаются и в операционных системах Windows, и в опера­ ционных системах Linux. Поскольку большинство современных операционных систем вынуждено хранить большее количество информации о файлах и каталогах, чем включает в себя стандарт IS09660, для этого стандарта с целью увеличения максимального объема хранимой информации были разработаны дополнительные расширения.

Используя команду mk i sofs, вы можете осуществлять резервное копирование файлов и структуры каталогов из любой точки файловой системы Linux, а ЗfТем создавать образ IS09660. Этот образ может включать в себя следующие типы рас­ ширений.

Резервное копирование файлов с помощью rsyпc О Общий протокол Использования системы (SUSP) - это записи, отмеченные в протоколе обмена Rock Ridge. Записи SUSP могут содержать UNIX -подобные атрибуты, такие как права собственности, поддержка длинных имен файлов и специальные файлы (такие как идентификаторы накопителя и символьные ссылки).

О Joliet - в каталоге с записями joliet записываются длинные имена файлов, чтобы они могли использоваться в Windows.

О Иерархическая файловая система (HFS) - расширение, которое позволяет образу ISO восприниматься в виде файловой системы HFS, являющейся исход­ ной для компьютеров Macintosh. Аналогичным образом благодаря использова­ нию данной файловой системы могут быть добавлены ветви данных и ресурсов, чтобы они были доступны для чтения на компьютерах Мае.

При создании файла-образа ISO цеобходимо учитывать, в какой именно систе­ ме в конечном итоге будет осуществляться доступ к резервируемым с помощью команды mk i sofs файлам ( Linux, Windows или Мае). Созданный образ может ис­ пользоваться разными спосоами, однако чаще всего он используется для записи на компакт-диск или DVD.

Помимо того, что приложение mkisofs может быть использовано для полного или частичного создания файловых систем Linux с целью их последующего ис­ пользования юi съемных носителях, оно позволяет создавать Live CD/DVD.

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

ПРИМЕЧАНИЕ -------­ Хоrя mkisofs все еще может использоваться на Ubuпtu, онавсе чаще заменяется командой geпisoimage.

Она является производной от mkisofs, которая была частью программнаго пакета cdrtools (http:// cdrecord. Ьerlios.de). Развитие genisoimage выполнялось в рамках проекrа cdrkit (www.cdrkit.org).

Поскольку большинство пользователей Linux хранят свои личные файлы в ра­ бочих каталогах, наиболее распространенным способом использования команды mk i sofs является резервное копирование всей информации, хранящейся в дереве каталогов ниже каталога /home.

Ниже представлено несколько примеров использования команды mk i sofs для создания образа ISO из всех файлов и каталогов, расположенных ниже катало­ га /home:

$ cd /tmp $ sudo mki sofs - о home. i so /home Создает базовый образ $ s udo mk i sofs - о home2. i so J - R /home Добавляе т расширения Jo l i et Rock R i dge -о Добавляет расширения HFS $ sudo mki sofs homeЗ. i so - J - R - hfs /home При выполнении последней команды вы увидите следующее предупреждение:

gen i soi mage : Warni ng : no Appl e/Uni x fi l es wi l l Ье decoded/ma pped В каждом из трех приведеиных выше примеров все файлы и каталоги, располо­ женные ниже каталога 1 home, добавляются в образ ISO (home. i so ). В первом примере 186 Глава 8. Соэдание резервных копий и работа со съемными носителями не использовалось расширений, поэтому имена всех файлов конвертиравались в стиле DOS (формат 8.3). Во втором примере использовались расширения jоliеt и Rock Ridge, поэтому в системе Linux или Windows имена файлов и права досту­ па к ним будут выглядеть так же, как и в исходной системе Linux. В последнем примере создается образ, читаемый файловой системой Мае.

ПРИМЕЧАНИЕ -------­ Операционная система Мае OS Х также способна определять расширения Rock Ridge и Jollet.

С помощью следующих команд вы можете добавлять к образу различные ис­ точники:

Добавляе т несколько $ mki sofs ·О home. i so ·R ·J musi c/ docs/ \ ка талогов /файлов chri s. pdf /var/spool /mai l $ mki sofs · о home. i so · J · R \ Присоединяе т файлы к ветви с образом - graft · poi nts Pi ctures/•/usr/ share/pi xmaps/ \ /home/chri s В первом примере показаны различные файлы и каталоги, объединенные и по­ мещенные в корень образа ISO. Во втором примере содержимое каталога /va r/pi cs присоединяется к каталогу /home/ chri s/ Pi ctures, в результате чего на компакт-дис­ ке с образом в каталоге / P i ctures будет находиться все содержимое каталога / us r / sha re/ pi xma ps.

ДобаВJiение информации в заголовок образа ISO позже может определить содержимое этого образа, что особенно полезно, если образ сохраняется или рас­ пространяется через сеть, то есть без использования физического диска. Вот не­ сколько примеров:

Добавляет информацию в заголовок ISO $ mki sofs ·о /tmp/home. i so ·R ·J \ · р www. handsonhi story. com \ - puЫ i sher " Swan Вау Fol k Art Center" \ · V "WebBackup " \ · А " mki sofs " \ · vol set " 1 of 4 backups, Jul y 30, 2007 " \ /home/chri s В данном примере параметр Р обозначает ID создателя образа ISO, который · может содержать номер телефона, почтовый адрес или адрес сайта, через который с ним можно связаться. С помощью параметра pub 1 i sher вы можете добавить до · 1 2 8 символов информации о создателе образа (например, название компании или организации). Параметр V указывает I D тома, который является важной инфор­ · мацией, поскольку на многих операционных системах Linux именно он использу­ ется для монтирования компакт-диска после его запуска. Например, на основании информации, содержащейся в приведеиной выше командной строке, компакт-диск в Ubuntu и других системах Linux будет монтирован в каталог /med i a / WebBackup.

Параметр А может быть использован для обозначения приложения, с помощью · которого создается образ ISO. Параметр - vol set может содержать строку с инфор­ мацией о настройке образов ISO.

Резервное копи рование файлов с помощью rsyпc После создания образа ISO и перед его записью на диск вы можете проверить образ и убедиться, что ко всем файлам, содержащимся на диске, может быть осу­ ществлен доступ. Проверку можно произвести следующими способами:

Отображает имя тона $ vol name home. i so WebBackup $ i soi nfo -d · 1 home. i so Отображае т информацию за головка CD- ROM i s i n I SO 9660 format System i d : L I NU X ' Vol ume i d : WebBackup Vol ume set i d : Al l Webs i te mater i a l on Novembe r 2. PuЬl i sher i d : Swa n Вау Fol k Art Center Data prepa rer i d : www. ha ndsonhi story. com Appl i cati on i d : mk i sofs Copyri ght F i l e i d :

Abst ract Fi l e i d :

Bi Ьl i ograph i c Fi l e i d :

Vol ume set s i ze i s : Vol ume set sequence number i s : Logi cal Ы осk s i ze i s : Vol ume s i ze i s : Jol i et wi th UCS l evel 3 found Rock Ri dge s i gnatures vers i on 1 found При создании файла образа вы можете отобразить и большее количество вве­ денной в командную строку mk i sofs информации. Если образ необходимо опубли­ ковать, то определите на компакт-диске месторасположение файла, закрепляюще­ го авторские права (параметр - copyri ght ), абстрактного файла ( параметр - abst ract) и файла библиографии ( параметр Ьi Ь 1 i о). Убедившись, что заголовок содержит · всю необходимую информацию, попробуйте получить доступ к файлам ISО-об­ раза, для чего смонтируйте его:

Создает точку нон тирования $ sudo mkdi r /mnt/myi mage sudo mount - о l oop home. i so /mnt/myi mage Циклически мон тирует !50 -образ $ l s - 1 /mnt/my1 mage Проверяет содержимое !50-образа $ Демон тируе т образ после $ sudo umount /mnt/myi mage выполнения операции Помимо выполнения проверки на наличие доступа 1\ файлам и каталогам образа ISO, убедитесь, что подписи даты и времени, права собственности и доступа ука­ заны верно. Позже эта информация может оказаться полезной, если понадобится восстановить прежнюю информацию.

а пись образов Команда cd record является наиболее популярным в среде Linux консольным при­ ложеннем для записи образов на компакт-диски и DVD. После создания ISО-об­ раза (как было описано ранее) или получения его другим способом (например, после загрузки установочного компакт-диска или Live CD из Интернета) cd record позволяет быстро записать этот образ на диск.

188 Глава 8. Соэдание резервных копий и работа со съемными носителями ПРИМЕЧАНИЕ ----- 8 Ubuпtu вместо команды cdrecord используется команда wodlm, созданная на баэе кода cdrecord и поддерживающая те же параметры. Если вы попробуете выполнить команду cdrecord, то в этой версии Ubuпtu, скорее всего, запустится wodim. Если у вас возникнут проблемы с этой утилитой, свяжитесь с проектом CDRkit (http://cdrkit.org).

Создание ISО-образов компакт-дисков и DVD выполняется абсолютно одина­ ково, за исключением того, что образ DVD может быть значительно больше, чем образ компакт-диска, поэтому проверьте объем имеющихся у вас в наличии носите­ лей. Компакт-диски обычно имеют объем 650 Мбайт, 700 Мбайт или 800 Мбайт, тогда как мини-СО вмещают 50 Мбайт, 1 80 Мбайт, 1 85 Мбайт или 1 93 Мбайт.

Однослойные DVD имеют объем 4,7 Гбайт, тогда как на двухслойные DVD поме­ щается до 8,4 Гбайт.

ПРИМЕЧАН ИЕ -------­ Имейте в виду, что производители CD/DVD при расчете вместимости носител ей размер одного мегабайта принимают равным 1000 Кбайт вместо 1024 Кбайт. Чтобы проверить, поместится ли ISо­ образ на имеющийся у вас носитель, выполните команду du --si home.iso, позволяющую отобразить размер образа (вместо используемой обычно команды du -sh).

Перед началом записи на компакт-диск или DVD убедитесь, что ваш привод поддерживает запись CD/DVD, и укажите путь к носителю. Для этого восполь­ зуйтесь параметром - - scanbus команды cd reco rd:

Выводит список приводов. не поддерживающих $ cdrecord - scanbus функцию записи scsi busO :

O DVD - ROM SD - 616E 0, 0, 0 0 ) o SAМSUNG ' F503 ° Remova Ы e CD- ROM о о 0.0.0 1) * 0. 0. 0 2) * Отображает список приводов. ко торые могут $ cdrecord - scanbus записыв а ть компакт -диски или D VD scsi busO :

0, 0. 0 0 ) o L ITE - ON O DVDRW SOHW - 1633S o O BSOC O RemovaЫ e CD - ROM о 0.0.0 1) * 0. 0. 0 2) * Первый из приведеиных примеров отображает привод CD/DVD, поддержи­ вающий только чтение и не записывающий диски ( DVD-ROM и C D - ROM).

Команда, приведеиная во втором примере, отображает привод, который способен осуществлять запись на компакт-диски или DVD ( DVD- RW). Вставьте носитель, на который хотите произвести запись, в привод. Ниже приведены примеры команд cd record, позволяющих записывать образы на компакт-диски или DVD:

$ cdrecord - dummy home. i so Проверяет привод перед записью Выполняет з апись образа на компакт -диск.

$ cdrecord - v home. i so о тображая деталь ную информацию (нас тройки по умолчанию ) Резервное копирование файлов с помощью rsyпc $ cdrecord - v speed-24 home. i so Ус танавливае т скорос ть записи При невозможнос ти ч тения дорожки $ cdrecord - pad home. i so добавляет 15 нулевых секторов $ cdrecord - eject home. i so Из влекает CDIDVD после завершения записи Определяе т привод по имени устройства $ cdrecord /dev/cdrw home. i so (може т о тличаться ) $ cdrecord dev-0, 2, 0 home. i so Определяет привод по имени SCSI Команда cd record позволяет также записывать мульmсессионные CD/DVD:

Открывает муль тисессйю $ cdrecord - multi home. i so $ cdrecord - msi nfo Проверне т номер сессии для следующего прожига Usi ng /dev/cd rom of unknown capabi l i t i es 0, $ mki sofs -J R -о new. i so \ Создает еще один !50-образ для записи · Задает на чаль ную точкv и определяе т новые - С 0, 93041 /home/chri s/more данные для $ cdrecord new. i so Записывает новые данные на существующий компакт -диск Вы можете использовать параметр - mu l t i до тех пор, пока не заполните весь диск. Для последнего прожига, чтобы закрыть сессию записи компакт-диска, не используйте параметр - mu l t i.

Создание и запись DVD Используя команду g rowi sofs, вы можете совмещать два этапа создания диска: груп­ пировку файлов в образ ISO (mk i sofs ) и запись этого образа на DVD (cd record ).

Помимо экономии времени, команда g rowi sofs позволяет оставлять сессию записи открытой (по умолчанию) до тех пор, пока вы самостоятельно ее не закроете.

Ниже представлены примеры использования команд g rowi sofs для работы с мультисессиями:

Под го тавливае т и выполfiяет $ growi sofs - Z /dev/dvd - R -J /home/chri s запись образа на D VD Добавляет файлы к образу $ growi sofs - Z /dev/dvd - R - J /home/francoi s $ growi sofs М /dev/dvd-/dev/zero Закрывае т сессию · Если вы хотите воспользоваться дополнительными параметрами при записи образа ISO, то можете просто добавить в командную строку параметры команды mk i sofs (например, обратите внимание на использование параметров - R и -J в пре­ дыдущих примерах).

Если вы хотите записать с помощью команды growisofs образ DVD, восполь­ зуйтесь параметром - dvd - compat:

Записывает образ 150 на D VD $ growi sofs - dvd - compat Z /dev/dvd-i mage. i so · Выполнение нескольких мультисессионных записей DVD с помощью парамет­ ра - dvd - compat может повысить совместимость с другими приводами DVD.

190 Глава 8. Соэда ние резервных копий и работа со съемными носителями Рез ю м е В операционных системах Linux и предшествующих им системах UNIX резервное копирование данных осуществлялось посредством комбинирования команд, каж­ дая из которых выполняла определенный набор функций. Резервное копирование важных данных и сегодня может выполняться таким же образом, однако сейчас уже существует множество приложений, выполняющих эти операции безопаснее и эффективнее.

Утилита для ленточного архивирования (команда tar), ранее используемая для резервного копирования данных на магнитную ленту, расширила свои основные функции. Поскольку практически во всех операционных системах Linux и UNIX присутствует утилита tar, то именно она стала стандартом программнога обеспе­ чения для упаковки и резервного копирования данных. Существуют различные способы передачи и хранения полученных архивов.

Для перемещения резервных копий данных на другие компьютеры сети вы можете использовать службы удаленного исполнения OpenSSH (такие как ssh), а также приложение rsync, с помощью которого вы можете экономить системные ресурсы, копируя только изменившиеся файлы (или их части).

Невысокая стоимость компакт-дисков и DVD сделала эти носители популяр­ ными для резервного копирования личных данных или данных небольтого офиса.

Команда mk i sofs может создавать из скопированных резервных данных файловые системы в формате IS09660, воспринимаемом многими операционными система­ ми ( Linux, Windows или Мае). После создания с помощью команды mk i sofs ISО­ образа он может быть записан на компакт-диск или DVD посредством команды cd reco rd или g rowi sofs.

П ровер ка 9 за п у ще н н ы х п ро ц есс ов и у п ра вл ен ие и м и В Linux любая запускаемая программа выполняется в виде процесса, отображае­ мого в таблице процессов Linux. Linux располагает всеми необходимымц прило­ жениями для просмотра и изменения процессов, выполняющихся в системе.

Для просмотра информации о запущенных процессах наиболее удобны коман­ ды ps и top, для которых существуют десятки параметров, позволяющих отобра­ жать необходимую информацию о процессах.

Кроме того, в Linux существует команда pgrep, которая может помочь в поиске необходимого процесса.

Существуют также такие команды, как n i ce и ren i ce, используемые для повы­ шения или уменьшения уровня использования ресурсов процессара тем или иным процессом. Вместе с тем вы можете изменять статус процесса на фоновый ( коман­ да bg) и приоритетный (команда fg).

Одним из способов изменения выполняемых процессами действий или полно­ го их завершения является отправление процессам определенных сигналов.

Используя команды k i 1 1 и k i l l а 1 1, вы можете отправлять процессам сигналы по их PID или именам соответственно. Вы можете отправлять процессам и другие сигналы, заставляющие их выполнять, например повторную проверку конфигура­ ционных файлов или продолжать выполнение ранее остановленного процесса.

Для составления расписания выполнения команд или работы с процессами, которые не являются частью вашей текущей сессии работы с консолью, вы можете использовать командь at и batch. Для запуска команд в установленное время пред­ назначены утилиты cron и anacron. Кроме того, вы можете перемещать тексты колов (или символьные ссылки на них) в каталог /etc /cron. hourl y (а также cron. d a i l y, c ron. week l y или cron. month l y).

Отобра жени е а кт ивных п роцессов Для отображения списка запущенных в данный момент в системе процессов, как правило, используются команды ps и top. Команда ps выводит информацию (в ви­ де обычного списка) о запущенных в данный момент процессах. Команда же top ориентирована на работу с экраном и отображает постоянно обновляющийся 192 Глава 9. Проверка запущенных процессов и управление ими список запущенных команд, сортируя его по указанным критериям (уровень исполь­ зования времени центрального процессора, оперативной памяти, UID и т. д.).

Коман да ps В каждой операционной системе Linux (а также во всех системах, провзводных от UNIX, таких как BSD, Мае OS Х и др.) присутствует команда ps, однако с годами появилось множество версий данной команды, незначительно отличающихся от начальной версии некоторыми параметрами. Поскольку команда ps появилась вместе с первыми системами UNIX, в ней используется нестандартный ввод пара­ метров (например, в некоторых случаях вам потребуется использовать перед па­ раметром знак дефиса).

Различные примеры команд, приведеиные в данной главе и демонстрирующие способы использования команды ps, применямы как к Ubuntu, так и к большин­ ству других систем Linux. Ниже представлено несколько примеров, которые вы можете использовать для отображения процессов текущего пользователя (в табл. 9. приведено описание отображаемых командой ps столбцов):

$ ps Отображае т в консоли процессы текvщего поль зова теля TIME PID CMD ТТУ bash 00 : 00 : 0 pts / 00 : 0 0 : pts / 3438 ps $ ps u chri s Отображае т все процессы. запущенные поль зова телем · chr i s (с тандар тный вывод ) PID ТТУ Т I МЕ COMМAND tty 1 О : 00 sta rtx tty1 xi n i t 0 : tty 1 0 : 06 gnome - sessi on Отображае т все процессы. запущенные поль зова телем $ ps ·U chri s u chri s (с учетом исполь зования CPUIMEM) %CPU %МЕМ VSZ USER PID RSS ТТУ STAT START Т I МЕ СОММАND 0.0 0.0 4328 852 tty1 S+ Aug 14 0 : 0 0 /Ьi n / s h sta rtx chri s chri s 2689 tty 1 S+ Aug 14 О : 00 xi n i t О.О О.1 2408 Aug 14 0 : 06 gnome - sess i on 0.0 1.1 220 16 496 tty 1 S chri s Отображает все процессы. запущенные поль зова телем $ ps fu chri s · chri s (с учетом РР ID )' T I ME UID CMD PID P P I D С ST IME ТТУ 2645 О Aug14 tty 1 0 0 : 00 : 0 0 /bi n / s h / u s r / X 1 1R6/ bi n / st a rtx chri s 2678 О Aug 14 tty1 xi n i t /etc / X 1 1 / xi n i t / xi n i t rc 00 : 00 : chri s 2689 О Aug 14 tty1 /usr/bi n /gnome - sessi on chri s 2710 00 : 00 : Отображае т все процессы. запущенные поль зова телем $ ps Fu chri s · chr i s (с учетом SZ и PSR ) UID PPID С S Z RSS PSR ST IME ТТУ T I ME CMD PID chri s 2678 2645 О 1082 852 О · Aug 14 tty1 00 : 0 0 : 00 /bi n / s h sta rtx chri s 2689 2678 О 602 488 О Aug 14 tty1 00 : 0 0 : 00 xi n i t chri s 2710 2689 О 5504 5440 О Aug 14 tty 1 00 : 0 0 : 09 gnome - ses s i on Отображение активных п ро цессов В данных примерах отображаются некоторые процессы, запущенные в сеансе оконного менеджера GNOME. В первом примере выполняется команда ps, запущен­ ная из окна терминала, поэтому в данном окне вы видите только процессы текущей консоли. В других примерах демонстрируются способы отображения различной информацию о процессах (примеры, демонстрирующие порядок формирования вы­ ходной информации команды на основе индивидуально заданных параметров, будут приведены позже). Описания столбцов ps приведены в табл. 9. 1.

Ниже показаны примеры использования команды ps для отображения каждо­ го выполняемого в системе процесса:

Отображает каждый выполняемый процесс $ ps е · CMD P I D ТТУ П МЕ i ni t 00 : 00 : 0 1?

mi g rat i on/ 00 : 00 : 0 2?

ksoft i rqd / 00 : 0 0 : 3?

$ p s el Отображает более подробную информацию о каждом · выполняемом процессе Т I МЕ PID P P I D С PRI N I ADDR SZ WCHAN ТТУ CMD F S UID о о 75 о - 534 о ?

4 s 0 0 : 00 : 0 1 i ni t о 1 о -40 о- ?

2 00 : 0 0 : 00 mi g rati on/ 1 s о 1 о 94 19 - о- ksoft i rqa / ?

3 0 0 : 0 0 : 1 s Выводит полную информацию о каждом $ ps ef · выполняемом процессе P P I D С SТ IME ТТУ Т I МЕ CMD PID UID О Aug05 ? 0 0 : 00 : 0 root 1 i ni t [5] О root 00 : 00 : 00 [mi grat i on / 0 ] 2 О Aug05 ?

О Aug05 ? [ksoft i rqd/ 0 ] 0 0 : 00 : root 3 Отображае т расширенную информацию $ p s eF о каждом · выполняемом процессе ТТУ CMD PSR SТ I ME UID P P I D С SZ RSS PID ПМЕ о 534 о о ?

Aug root 1 00 : 0 0 : 0 1 i ni t [5] о о о о Aug05 ? [mi grat i on / 0 ] 00 : 0 0 : 0 root 2 о о о Aug о [ k soft i rqd/ 0 ] root 3 00 : 0 0 : 0 1 ?

Выводит информацию о каждом выполняемом $ ps ах процессе в сжа том с тиле В STAT РID ТТУ T I ME COMМAND Ss 1 ? 0 : 01 i ni t [5] S 0 : 00 [mi grat i on / 0 ] 2 ?

SN 0 : 00 [ k soft i rqd/ 0 ] 3 ?

Отображает информацию о каждом выполняемом $ ps aux процессе в полном с тиле В PID %CPU %МЕМ VSZ RSS TTY STAT START T I ME COMМAND USER 1 0.0 0.0 2136 556 ? Ss Aug05 0 : 0 1 i n i t [ 5 ] root 2 0.0 0.0 О О? S Aug05 0 : 0 0 [mi g rati on/ O J root 3 0.0 0.0 О О? SN Aug05 0 : 0 0 [ k soft i rqd / 0 ] root 194 Гла ва 9. Проверка за пущенных процессов и управление ими Отображае т информацию о каждом выполняемом.

$ ps auwx процессе в полнон стиле 850 и расширеннон форна те $ ps auwx Выводит информацию о каждом выполняемом процессе в полнон с тиле 850 и неограниченной шириной Некоторые процессы могут заtiускать собственные процессы. Например, веб­ сервер создает множество процессов httpd, которые ожидают запросов на сервере.

Используя различные параметры команды ps, вы можете отображать процессы в иерархическом порвдке (в виде дерева):

Отображает процессы в иерархическон порядке $ ps · ejH на основании IO процессов или сессий P I D PG I D S I D ТТУ T I ME CMD 1 1 1 ? 00 : 00 : 0 1 i ni t 2 1 1 ? 00 : 0 0 : 0 0 mi grat i on / 2043 2043 2043 ? 00 : 0 0 : 0 0 sshd 00 : 00 : 00 s shd 2549 2549 2549 ?

2551 2549 2549 ? 00 : 00 : 0 0 sshd 2552 2552 2552· pts / 0 00 : 0 0 : 0 0 bash 7760 7760 7760 ? 00 : 0 0 : 00 httpd 7762 7760 7760 ? 0 0 : 00 : 00 httpd 00 : 00 : 00 httpd 7763 7760 7760 ?

$ ps axj f Отображае т процессы в иерархическон порядке в с тиле P P I D P I D PG I D S I D ТТУ TPG I D STAT U I D T I ME COMМAND О О - 1 Ss 0 : 01 i ni t [5] 1 1 1?

О -1 S 0 : 00 [mi grat i on / O J 1 2 1 1?

О - 1 Ss 0 : 0 0 /usr/ sbi n / s shd 1 2043 2043 2043 ?

О - 1 Ss 0 : 0 0 \_ sshd : chri s [ pri v ] 2043 2549 2549 2549 ?

-1 S 500 0 : 00 1 \_ sshd : chri s@pts 2549 2551 2549 2549 ?

2551 2552 2552 2552 pt s / 0 8398 Ss 500 0 : 0 0 1 \_ - bash О - 1 Ss 0 : 0 0 / us r/ sbi n / httpd 1 7760 7760 7760 ?

-1 S 7760 7762 7760 7760 ? 48 0 : 00 \ - / us r/ sbi n / httpd -1 S 48 0 : 00, /us r/sbi n/ httpd 7760 7763 7760 7760 ?

$ ps · ef · forest Отображает процессы в иерархическон порядке в виде леса T I ME CMD P I D P P I D С ST IME ТТУ UID 1 О О Aug05 ?

root 0 0 : 00 : 0 1 i n i t [ 5 ] 1 О Aug05 ? 00 : 00 : 00 [mi g rat i on / 0 ] root 1 О Aug05 ?

root 3 00 : 0 0 : 0 0 [ k soft i rqd / 0 ] 1 О Aug05 ?

root 2043 0 0 : 0 0 : 00 / us r/ sbi n / s shd 2549 2043 О Aug 16 ?

root 0 0 : 00 : 00 \_ sshd : chri s [pri v ] 2551 2549 О Aug 16 ? 0 0 : 00 : 0 0 1 \_ sshd : chri s@pt s / chri s 2552 2551 О Aug 16 pt s / 0 00 : 0 0 : 0 0 1 \_ - bash chri s 1 О 1 8 : 27 ?

root 7760 00 : 0 0 : 00 / us r/ sbi n / httpd 7762 7760 О 18 : 27 ?

apache 0 0 : 0 0 : 00 \ - / us r / sbi n / httpd 7763 7760 О 18 : 27 ?

apache 0 0 : 00 : 0 0, / us"r/sbl n / httpd $ pstree Отображает процессы в алфави тнон порядке в виде дерева i n i t - + - Xorg 1 - at - spi - reg i st ry 1 - atd 1 - audi td - + - a ud i spd 1 ' - { a ud i td } Отображение активных процессов 1 - sshd - + - sshd - - - sshd - - - bas h - - - pst ree 1 1 - sshd - - - sshd - - - bash - - - s u - - - ba sh · - sshd - - - sshd- - - bash - - - su - - - bash - - - s u - - - ba sh - - - v i m Показанные примеры демонстрируют различные способы отображения процес­ сов в иерархическом порядке. Чтобы сравнить некоторые одинаковые процессы, отображающие различную информацию, текст выхода был сокращен. Стоит отме­ тить, что PPID (ID порождающего процесса) является ID процесса, запустившего соответствующий дочерний процесс. Процессы sshd отображают запущенную ssd с вошедшим в систему через сеть пользователем и выполняют запуск консоли bash (и в конечном счете редактор vim). Демон httpd обеспечивает работоспособность веб-сервера Apache, в котором порождающий процесс запускается суперпользова­ телем, а дочерние процессы - пользователем. В последнем примере приведена ко­ манда pstree, которая обычно используется для отображения дерева процессов.

Если вы предпочитаете самостоятельно определять набор отображаемых ко­ мандой ps данных, то воспользуйтесь параметром - о. После этого для сортировки отображенной информации по любым данным вы сможете использовать параметр - - sort. В табл. 9. 1 приведен перечень возможных отображаемых командой ps дан­ ных и соответствующие им параметры, которые необходимо использовать вместе с параметром - о, чтобы отобразить необходимый столбец.

Табпица 9.1. Отображаемые командой ps данные и соответствующие им параметры Описание Параметр Эаrоловок сrопбца %CPU %cpu Уровень использования времени центрального процессара эа время существования процесса в формате 00. %mem use (resideпt Уровень использования процессам физической памяти set size) (в процентах) args Команда со всеми аргументами COMMAND SТART Ьsdstart Время запуска команды в формате ЧЧ:ММ или Месяц:День ТIМЕ Ьsdtime Полное (включая пользователя и систему) время использования времени центрального процессара Только имя команды (беэ аргументов) comm COMMAND СР ер Уровень использования времени центрального процессара в десятых долях процента cputime ТIМЕ Полное время использования центрального процессара в формате [DD-]HH:MM :SS EGID egid Эффективный идентификатор группы процесса (целое число) egroup EGROUP Эффективный идентификатор группы процессов (имя) ELAPSED etime Время запуска процесса в формате [[DD-]HH : ] M M : SS euid EUID Эффективный идентификатор пользователя, запустившего процесс (одно целое) euser EUSER Эффективный идентификатор пользователя, запустившего процесс (имя) Продолжение.Р 196 Глава 9. Проверка запущенных процессов и управление ими Табпица 9.1 (nродолжение) Описание Заголовок Параметр сrол & ца Идентификатор группы доступа к файловой системе (номер) FGID fgid Идентификатор группы доступа к файловой системе (имя) FGROUP fgгoup COMMAND Первые восемь символов имени команды fname FUID Идентификатор пользователя, имеющего доступ к файловой fuid системе (номер) fuser FUSER Идентификатор пользователя, имеющего доступ к файловой системе (имя) SТARTED lstart Дата и время запуска команды NI nice Уровень загрузки процессара (от 19 (наименьшая) до - (максимальная загрузка)) PGID Идентификатор группы процесса pgid Идентификационный номер процесса PID pid PPID Идентификатор родительского процесса ppid PSR Принадлежность к процессам процессара (первый центральный psr процессор соответствует нулю) Текущий идентификатор группы (номер) RGID rgid RGROUP Текущая группа (имя) rgгoup Объем используемой физической памяти (без учета области RSS rss подкачки) в Кбайт RTPRIO Приоритет реального времени rtprio Идентификатор текущего пользователя (номер) RUID ruid RUSER Текущий пользователь (имя) ruser s Односимвольный индикатор состояния (D - спящий, не может s быть прерва н;

R - выполняющийся;

S - спящий, может быть прерван;

Т - оста новленный;

W - «слушает»;

Х - неактивный;

Z - «зомби») Идентификатор заголовка сессии SESS sess р Текущий используемый процессор sgi_p sz Приблизительный объем области подкачки, необходимый для size того, чтобы процесс был выгружен STARTED Время запуска кома нды в формате ЧЧ : М М :СС или Месяц День start SТART Время запуска кома нды : ЧЧ:ММ или Месяц День start_time stat Расширенный индикатор состояния: буква «S» совместно SТАТ с другими символами ( < - высокий приоритет;

N - н изкий приоритет;

L - страницы зафиксирова ны в памяти;

s - определяет, является ли сессия главной;

1 - многопоточный;

+ - находится в группе фоновых процессов) sz Размер образа ядра процесса (физические страницы) sz Контролирующий tty (терминал) ТТУ tname Идентификатор действительного пользователя (имя) USER user vsz Объем виртуальной памяти процесса ( 1024-битные единицы) vsize Отображение активных процессов Отметим, что некоторые значен-ия, предназначенные для отображения имен пользователей, могут выводить номера ( U I D), если имя является слишком длин­ ным, чтобы поместиться в имеющемся пространстве.

С помощью параметров столбцов, разделенных запятыми, вы можете сформи­ ровать собственный IОfДИВидуальный формат отображения даннЬIХ. Ниже представ­ лено несколько примеров подобного отображения данных текущих процессов:

- ео $ ps ppi d, user, %mem, si ze, vsi ze, comm - - sort= - s i ze Сор тирует процессы по уровню исполь зования опера тивной памя ти PPID USER %МЕМ SZ VSZ COMМAND 27. 0 68176 84264 yum - updatesd 1 root -ео ppi d. user, bsdstart, bsdti me, %cpu, args - - sort=- %cpu Сор тируе т процессы $ ps по уровню исполь зования процессарного времени START T I ME %CPU COMмAND PPID USER Jul 30 44 : 20 27. 1 / u s r / b i n / python / u s r / s b i n/yum - updatesd 1 root - ео ppi d, user, ni ce, cputi me, args - - sort= - n i ce $ ps Сор тируе т процессы по приоритету, от мень шего к большему PPID USER NI T I ME COMМAND 19 0 0 : 44 : 26 /usr/bi n / python / us r/ sbi n /yum - updatesd 1 root - ео ppi d, user, stat, tname, sess, cputi me, args - - sort=user Сор тируе т $ ps процессы по имени поль зова теля STAT ТТУ T I ME COMМAND PPID USER SESS 2221 00 : 0 0 : 07 avahi - daemon : runn i ng [ exampl e. net ] 1 avahi Ss ?

Вот еще несколько примеров использования команды ps:

$ ps - С httpd Отображает запущенные httpd-пpoцeccы Т I МЕ CMD P I D ПY 00 : 00 : 0 0 httpd 1493 ?

00 : 00 : 0 0 httpd 1495 ?

Отметим, что для запуска процесса httpd необходимо установить сервер НТТР, например Apache.

-о Отображает информацию $ ps - р 5413 pi d, ppi d, bsdti me, args ·о процессе PID PID PPID T I ME COMМAND 1 0 : 08 gpm - m /dev / i nput/m i ce - t exps S ps - U chri s, francoi s - о pi d, ruser, tty, stat, args Отображает информацию о двух поль зова телях STAT COMМAND ТТ P I D RUSER - ba sh Ss pts / 1 0 1 0 chri s Ss+ /Ьi n / bash 5951 francoi s pts / Коман да top Если вам необходимо непрерывно просматривать запущенные в системе про­ цессы, то воспользуйтесь командой top. Эта команда ориентирована на работу 198 Глава 9. Проверка запущенных процессов и управление ими с экраном и отображает постоянно обновляющийся список запущенных процес­ сов. Если вы выполните команду top без параметров, то она отобразит время ра­ боты системы, список выполняемых задач, уровень потребления оперативной памяти и уровень использования процессарного времени, по которому отсорти­ рует полученный список:

$ top top 0 1 : 39 : 43 up 4 days. 1 : 53. б users. l oad average : 1. 25. 1. 08. 1. 1 Ta s k s : 1 1 9 tota l. 1 runn i ng. 1 1 7 s l eepi ng. О stopped. 1 zombi e Cpu ( s ) : 46. 8% us. 3. 3% sy. 0. 0% n i. 49. 5% i d. 0. 0% wa. 0. 3% h i. 0. 0% s i Mem : 482992k tota l. 472688k used. 1 0304k free. 24312k buffers Swa p : 58637 16k tota l. 5345 12k used. 5329204k free. 68072k cached PID USER PR N I V I RT RES SHR S %CPU %МЕМ T I ME+ COMМAND 2690 root 15 О 344m 76m 7 1 1 6 S 32. 2 16. 2 2349 : 08 Х 2778 chri s 15 О 16212 7992 4836 S 1. 7 1. 7 4 : 30. 61 metaci ty 22279 chri s 15 О 227m 1 09m 23m S 1. 0 23. 3 34 : 34. 00 fi refox - b i n Ниже приведены еще некоторые примеры параметров, которые вы можете ис­ пользовать для отображения непрерывно обноВЛJiющеrося списка запущенных процессов:

$ top d 5 Устанавливает время обновпения равным 5 секvндам (по умолчанию 3 ) $ top - u francoi s Отображае т толь ко процессы действи тель ного поль зова теля franco i s $ top - р 190, 2690 Отображает толь ко процессы 1 90 и $ top - n 10 После деся ти обновлений завершае т выпонение команды $ top Ь Запускае тся в режиме. не рассчи таннон на рабо ту с экраном В последнем примере ( top - Ь) выход команды форматируется в подходящей для выхода файла форме, противоположной формирующейся при повторном вы­ воде того же экрана для интерактивного просмотра. Данная команда может исполь­ зоваться для создания журнала процессов, например для отслеживания процессов, потребляющих все ресурсы посреди ночи. С помощью следующей команды можно запустить команду top, фиксирующую информацию о процессах в течение деся­ ти часов:

$ top Ь - n 12000 > myprocessl og · Во время выполнения команды top вы можете обновлять и различными способа­ ми сортировать список процессов. Чтобы немедленно обновить список процессов, нажмите клавишу Пробел или Enter. Для сортировки процессов по их PID нажмите сочетание клавиш Shift+N, для сортировки процессов по потреблению процессориого времени Shift+P, для сортировки по потреблению оперативной памяти Shift+M, - а для сортировки по времени потребления процессора Shift+Т. Чтобы изменить столбец для сортировки, используйте символы < (упорядочить столбец слева) и > (упорядочить столбец справа) или, указав букву столбца, по которой хотите отсортировать список, нажмите клавишу f, когда отобразится список столбцов.

Во время выполнения команды top вы можете различными путями изменять действия команды. Чтобы изменить период обновления данных, нажмите клави Поиск процессов и управление ими шу d и введите число, обозначающее количество секунд. Для отображения процес­ сов только конкретного пользователя нажмите клавишу u и введите имя пользо­ вателя. Чтобы отобразить заданное количество процессов, нажмите клавишу n и укажите число, обозначающее требуемое количество процессов. Для возврата в начальный экран программы нажмите =.

Кроме того, с помощью программы top в ы можете ВJIНЯТ Ь н а многие запущен­ ные процессы. Чтобы отправить работающему процессу сигнал о его завершении, нажмите клавишу К и затем укажите PID процесса, которому хотите отправить сигнал. Затем для отправления другого сигнала укажите другое число или нажми­ те клавишу 9 для завершения действия. Чтобы увеличить или уменьшить приори­ тет процесса, нажмите клавишу N, а затем отрицательное число (для повышения приоритета) или положительное число (для уменьшения приоритета) Чтобы получить более подробную информацию об использовании команды top, в ходе ее выполнения нажмите ?. МАN-страница также содержит много полез­ ной информации:

Отображае т N -страничr. посвященную исполь зованию команды top $ man top Для завершения выполнения команды top нажмите клавишу Q.

П оиск п роцессов и у правп е ни е ими Изменение текущего процесса прежде всего означает поиск соответствующего процесса и лишь затем уже изменение его приоритета или подачу процессу сигна­ ла об изменении режима работы. Если вы ищете какой-то определенный процесс, то наиболее простым вариантом будет отобразить расширенный список процессов с помощью команд ps или top. Команда pgrep позволяет искать необходимые про­ цессы через активные процессы, команда reni се изменять приоритеты текущих процессов, а команды k i 1 1, pk i 1 1 и k i 1 1 а 1 1 отправлять сигналы текущим процес­ сам (включая сигналы завершения данных процессов).

Ко ман да pgrep С помощью простого использования команды pg rep вы можете осуществлять поиск по имени команды (или части имени) и отображать ID всех процессов, содержащих данное имя:

Отображает ID всех процессов. содержащих «in i t» $ pgrep i ni t Поскольку мы знаем, что существует только одна текущая команда i n t, то в дальнейшем, чтобы отобразить все имена команд процессов (а также узнать, почему обнаружено два процесса ), будет использоваться параметр 1 : $ pgrep - 1 i ni t Отображает PID и имена всех процессов. содержащих «in i t» 1 i ni t 2689 xi ni t 200 Глава 9. Проверка запущенных процессов и управление ими Кроме того, вы можете искать процессы, принадлежащие конкретному поль­ зователю:

Перечисляе т все процессы. принадлежащие поль зова телю chr i s $ pgrep - l u chri s 2551 sshd 2552 ba s h 2803 v i m Возможно, самым эффективным способом использования команды pgrep явля­ ется поиск ID текущих процессов и передача PID другим командам для форми рования отображаемой информации. Вот несколько примеров (если у вас процес­ сы meta ci ty и fi refox не запущены, укажите другие):

Осущес твляе т поиск процесса metac i ty и выполняет $ ps -р ' pgrep metaci ty' команду ps (кра ткий вывод ) T I ME CMD P I D ТТУ 00 : 05 : 00 metaci ty 2778 ?

$ ps - fp $ ( pgrep naut i l us ) Осущес твляе т поиск процесса naut i lus и выполняе т команду ps (полный вывод ) P I D P P I D С ST IME ТТУ T I ME CMD UID 0 0 : 0 0 : 26 naut i l us - - no - defa u l t -wi ndow s chri s 5907 5840 О Sep05 ? - Выполняе т поиск процесса fi re fox # sudo# ren i ce - 5 $ ( pgrep fi refox) и повышает приори тет команды 20522 : o l d pri ori ty О. new pri o r i ty - 20557 : ol d pri o r i ty О. new pri o r i ty - Команды, принимающие ID процессов в качестве входящей информации, в дан­ ном случае могут объединяться с командой pgrep. Как видно из предыдущего при­ мера использования команды pgrep, вы можете применять такие команды, как reni се, чтобы изменять режим работы текущего процесса.

Команда fuser Другим способом выполнения поиска отдельного процесса является поиск по эле­ менту, осуществляющему доступ к процессу. Команда fuser может использоваться для определения файлов или со кетов, в которых выполняются какие-либо процес­ сы. П осле обнаружения процесса fu s e r может использоваться для отправления сигналов этим процессам.

Команда fuser наиболее полезна для поиска файлов смонтированных файловых систем, используемых процессами (как на локальных жестких дисках или общих ресурсов Samba). Обнаружение этих процессов позволяет правильно закрывать их (или при необходимости уничтожать) и затем безопасно демонтировать файловую систему.

Вот несколько примеров применения команды fuser для отображенив процес­ сов, использующих файлы в данной файловой системе:

Отображае т подробный список процессов. открывших lboot $ fuser - mauv /boot USER P I D ACCESS COMMAND 20 Поиск процессов и управление ими. с. ( root ) ba s h root / boot/gruЫ :..

..с.

19760. ( root ) ba s h root ( root ) v i 28 1 7 1 F.c root..

29252..с.. ( root )man root ( root ) s h root 29255..с..

( root ) v i 29396 F.с..

root В приведеином примере отображаются идентификаторы запущенных процес­ сов, ассоциированных с файловой системой / boot. Этим процессам должен соот­ ветствовать открытый файл, консоль, или они должны являться дочерними про­ цессами консоли с рабочим каталогом, расположенным в / boot. В данном примере в файловой системе / boot присутствуют две открытые консоли bash, а также вы­ полняются две команды vi с открытыми в этой файловой системе файлами и коман­ да ma n. Параметр - а позволяет отобразить полный список процессов, - u отображает имя пользователя или процесса, запустившего данный процесс, а - v формирует подробный выход.

Ниже приведены другие примеры использования команды fuser для отображе­ ния процессов с открытыми файлами:

$ fuser /Ьооt Отображает роди тель ские PID процессов.

исполь зующих файлы в Jboot · /boot : 19760с 29396с $ fuser · m. /Ьoot Отображает все PID процессов. исполь зующих файлы в lboo t /boot : 3853с 19760с 28171с 29396с 29252с 29255с Отображае т PID или иня поль зова теля консоли.

$ fuser ·U /Ьооt рабо тающей в /boot / boot : 19760c ( root ) 29396c ( root ) 29252c ( root ) 29255c ( root ) После определения процессов, открывших файлы, вы сможете приостановить их вручную или уничтожить (полностью завершить). По возможности всегда вруч­ ную останавливайте процессы, поскольку при уничтожении после них могут оста­ ваться нежелательные файлы. Ниже приведены примеры использования команды fuser для уничтожения, а также отпраВJiения других сигналов всем процессам, файлы которых испоJIЬзуются в файловой системе:

Унич тожае т все процессы с открытыми файлани $ sudo fuser · k /Ьооt в Jboot (SIGKILL J Отображает список поддерживаемых сигналов $ fuser · HUP I NT QU I T I LL TRAP ABRT I OT BUS FPE K I L L USR1 SEGV USR2 P I PE ALRM TERM STKFLT CHLD CONT STOP TSTP TT I N TTOU URG XCPU X FSZ VTALRM PROF W I NCH IO PWR SYS UNUSED $ sudo fuser ·k · HUP /boot Отправляет НUР -сигнал всен процессан.

работающим с файловой систеной lboot И зменение зап у щенн ых процессов Вы можете различными способами изменять параметры работы процесса даже после его запуска. Используя команду reni се, описанную ранее, вы можете в пла­ нировщике своей операционной системы определять приоритет запущенного 202 Глава 9. Проверка запущенных процессов и управление ими процесса. Используя же команду n i ce, вы можете установить приоритет по умол­ чанию, а также повысить или понизить приоритет процесса во время его запуска.

Другим способом управления запущенными процессами является отправление этим процессам сигналов. Команды k i 1 1 и k i 1 1 а 1 1 могут использоваться для от­ правления процессам сигналов завершения. Кроме того, для этих целей может использоваться команда pki 1 1.

Усrановка приоритета процесса ра с помощью ко ман д ы nice Каждый запущенный процесс поддерживает возможность управления значением параметра n i ce, который может использоваться для указания планировщику про­ цессов Linux уровня приоритета данного процесса. Положительные значения па­ раметра ni се об ычно понижают приоритет процесса. Идея использования этого параметра б ерет свое начало в объемных многопользовательских системах UNIX, в которых, чтоб ы дать возможность другим пользователям использовать процес­ сор, необ ходимо б ыло понизить приоритет основного процесса, •nоступить пра­ вильно• ( •nice• ).

Параметр n i се не оказывает влияния на приоритет планировщика, а является лишь вариантом для него. Чтоб ы определить текущее значение параметра nice, выполните команду ni се б ез параметров:

$ n i ce Определяет текущее з начение n i ce о Значение n i се по умолчанию равно О, однако, используя команду ni се, вы мо­ жете уменьшать или увеличивать это значение. Значение приоритета может варь­ ироваться от - 20 (наивысший приоритет планировщика) до 19 ( низший приоритет планировщика). Суперпользователь может как уменьшать, так и увеличивать зна­ чение ni се любого пользователя, тогда как об ычный пользователь может только уменьшать приоритет выполнения процессов (устанавливая б ольшее значение n i ce).

ВН ИМАН ИЕ --------­ Устанавливайте отрицател ьные значен ия приоритета выполнения процесса с особой осторож­ ностью. Снижение приоритета системных процессов может привести к потере работоспособности системы.

Вот несколько примеров выполнения команды ni се для изменения значения nice определенной команды:

Выполняе т форма тирование N-страниц $ ni ce - n 12 nroff - man a. roff 1 l ess при пониженнон приори те те Повышает приоритет конанды giтp $ sudo n i ce -n - 10 gimp С помощью команды ren i ce. вы можете изменять значение параметра n i ce уже после запуска процесса:

Увеличивает значение n i ce процессов $ ren i ce +2 - u francoi s поль зова теля franco i s на Поиск процессов и уп ра вление ими $ reni ce +5 4737 Увеличивает з начение n i ce процессов поль зова теля PID 4 737 на $ sudo reni ce · 3 ' pgrep - u chri s spamd ' Понижае т з начение процессов spamd поль зова теля chr i s на 9688 : ol d pri ori ty - 1. new pri ori ty - 20279 : ol d pri ori ty - 1. new pri ori ty - 20282 : ol d pri ori ty - 1. new pri ori ty - В предыдущей командной строке для обозначения того, что выход команды pg rep отправляется команде ren i ce (предполагается, что PID процессов spamd за­ пущены пользователем chris), используются косые кавычки.

При выполнении команды top значения n i ce процессов отображаются по умол­ чанию. Кроме того, просмотреть настройки n i ce можно с помощью параметра -о ni се при индивидуальном формировании выход'а команды ps.

Запуск процессов в фоновом и приоритеТном режимах По умолчанию процесс из консоли запускается в приоритетном режиме. Это озна­ чает, что вы не можете выполнить другую команду до завершения данного процесса.

Однако, добавив знак & в конец командной строки, вы можете запустить командную строку в фоновом режиме, а с помощью команд fg, bg и j obs вы можете переключать команды из фонового режима в приоритетный на всем протяжении всего времени выполнения управляющих командных строк.

Посредством следующей последовательности команд можно из окна терминала запустить программу для просмотра изображений GIMP, после чего с помощью контрольных клавиш осущестВJIЯТЬ запуск и остановку процессов и переклю­ чатьсв между фоновым и приоритетным режимами:

$ gi mp Запускает gimp в фонавон режине Ос танавливает процессы и перенещает их в фоновый режин [ 1 ] + Stopped g i mp $ bg 1 Заново в фонавон режине запускае т рабо тающие процессы Продолжает выполнение процессов в фонавон режине $ fg g i mp Унич тожает процесс Стоит отметить, что процессам, работающим в фоновом режиме, присваивается рабочий идентификационный номер (в данном случае 1 ). Поместив перед номером знак процента (например, % 1 ) или просто указав номер вместе с командой ( fg 1), вы можете определить конкретные фоновые процессы для команд bg и fg. При на­ личии одного или более процессов, запущенных в текущей консоли, вы можете использовать длв управленИJI фоновыми процессами команду j obs:

Отображае т список процессов текvщей консоли.

$ jobs выполняющихся в фонавон режине [ 1] Runni ng g i mp & [2] Runn i ng xпms & [3] - Runn i ng ged i t & [4]+ Stopped gta l i $ jobs Отображает PID внес те с информацией о каждон процессе · 204 Глава 9. Проверка запущенных процессов и управление ими g i mp & [ 1 ] 31676 Runni ng [ 2 ] 31677 Runni ng xmms & [ 3 ] - 3 1683 Runni ng ged i t & gta 1 i [ 4 ] + 31688 Stopped Отображает информацию только для процесса под нонером % $ jobs · 1.t xmms & [ 2 ] 31677 Runni ng Приведеиные выше примеры команд (jobs) моrут использоваться, если необхо­ димо во время входа в удаленную систему (используя ssh) запустить удаленные приложения G UI на локальном компьютере. Запустив эти процессы в фоновом режиме, вы можете работать сразу в нескольких приложениях, сохраняя их связь с текущей консолью. С помощью команды di sown вы можете отделить приложение от консоли во время его выполнения:

Отделяет процесс ЖЗ от текущей консоли $ di sown.tЗ Отделяет все процессы от текущей консоли $ di sown а· Ограничивает все процеtсы от дейс твия НИР -сигнала.

$ di sown h· о тправленного в текvщую консоль Отделив процессы от консоли с помощью команды di sown, вы можете закрывать консоль без необходимости уничтожать выполняемые процессы.

ПРИМЕЧАНИЕ -------­ Если при использовании команд fg, Ьg или disown вы не укажете ID процесса, то будgг задействован текущий процесс, обозначенный знаком +, следующим сразу за его названием.

Команды fg и bg позволяют управлять запущенными процессами, делая их фо­ новыми или приоритетными. Другим способом управления командами является отправление сигналов процессам напрямую. Наиболее распространенным спосо­ бом отправления сигналов запущенным процессам является использование ко­ манд k i 1 1 и k i 1 1 a 1 1.

Уни чтожение процессов и отпра вп е м ие им си rнапов Отправляя запущенным процессам сигналы, вы можете останавливать их или вно­ сить в них изменения. Такие команды, как k i 1 1 и k i 1 1 а 1 1, моrут отправлять процес­ сам определяемые вами сигналы, заключающие в себе имена процессов. Чаще все­ го данные команды используются для уничтожения процессов.

Каждому сигналу соответствуют определенное число (9, 15 и т. д.) и строка ( S I GK I LL, S I GTERM и т. д.). В табл. 9.2 приведен перечень стандартных сигналов, ко­ торые могут отправляться процессам Linux.

Таlпицв 9.2. Стандартные сигналы, отправляемые процессам Оnисание Имя сиrнапа Номе р сиrнма SIGHUP Сигнал завершения процесса терминала или контрольного процесса 2 SIGINT Отправка с клавиатуры сигнала прерывания Поиск процессов и управление ими Имя сиrнапа Оnисание Н омер сиrнапа SIGQUIТ 3 Отправка с клавиатуры сигнала прекращения SIGILL Неразрешенная команда SIGAВRT запрет на выполнение, отправляемый функцией aЬort б Исключение с плавающей точкой SIGFPE SIGКILL Сигнал полного завершения (уничтожения) процесса 11 SIGSEGV Недействительная ссылка на ячейку памяти SIGPIPE 13 Неработающий канал (нет процессов, которые могут быть считаны с канала) SIGALRM 14 Сигнал таймера, обозначающий аварийный системный вызов 15 SIGТERM Сигнал завершения 30, 10, 16 SIGUSR1 Определяемый пользователем сигнал SIGUSR 31, 12, 17 Определяемый пользователем сигнал 20, 17, 18 SIGCHLD завершенный или остановленный дочерний процесс 19, 18, 25 SIGCONT Возобновление остановленного ранее процесса SIGSТOP 17, 19, 23 Сигнал остановки процесса 18, 20, 24 SIGТSТP Сигнал остановки, введенный в терминале SIGПIN 21, 21, 26 Ввод терминала для фоновых процессов 22, 22, 27 SIGПOU Вывод терминала для фоновых процессов Команда k i 1 1 может отправлять сигналы процессам в соответствии с их I D или номером задачи, тогда как команда k i 1 1 а 1 1 может отправлять сигналы по имени процесса:

ki l l $ О тправляе т сигнал SIGTERM процессу PID О тправляе т сигнал SIGKIL L процессу PID ki l l - 9 $ ki l l SIGCONT 5254 Воз обновляе т ос тановленный процесс (PID 5254 ) $ · $ ki l l.tЗ Унич тожае т процесс % Унич тожае т все запущенные процессы spamd $ ki l l al l spamd $ ki l l al l SIGHUP sendmai l Зас тавляе т nроцесс sendma i l переч и та ть · конфигурационные файлы Сигнал S I G K I L L (9), часто используемый неопытными администраторами-но­ ·вичками, следует использовать в качестве последнего средства, поскольку он резко обрывает процесс, а не выполняет его аккуратное закрытие, что может привести к потере или повреждению данных, относящихся к данному процессу.

Сигнал S I GHUP обычно использовался в системах UNIX для определения, отклю­ чен ли терминал от устройства (например, от модема hang-up или dial-in). Одна­ ко для перехвата сигналов S I GHUP с целью заставить процессы перечитать конфи­ гурационные файлы были разработаны процессы, такие как, например, sendmail и httpd.

206 Глава 9. Проверка запущенных процессов и управление ими Откл ючение процессов от текущей консопи Существует несколько способов закрыть консоль, не прерывая выполняемых про­ цессов. Так, с помощью команды nohup можно запустить процесс таким образом, чтобы он был иедоступен сигналу hang-up:

$ nohup updatedb & Запускает upda tedb с невозножнос тью его прерывания # nohup ni ce -9 gcc hel l o. c & Запускае т gcc в непрерывном режине и с более высокин приори те тон Использование команды nohup отличается от запуска команды с использовани­ ем символа &, поскольку команда nohup продолжает выполнение команды даже после выхода из запущенной сессии в консоли.

Команда nohup использовалась в то время, когда производительность процес­ саров была низкой и были распространены соединения по телефонной линии через модем (dial-up) (то есть не было возможности сохранять дорогостоящее соединение в течение длительного времени выполнения команды). Сегодня же, используя такие приложения, как screen (см. гл. 1 4 ), вы можете не закрывать консольную сессию, даже если перенесете сетевое подключение в текущую кон­ соль.

Со сrа впе ние расписани я зап ус ка процессов Команды, связанные с утилитой cron, могут использоваться для определения вре­ мени автоматического запуска команд (включая настоящий момент времени) в кон­ соли. Команда at запускает выбранную команду в заданное время:

$ at now +1 mi n Запускает конанду через одну нинуту at> updatedb at> <ЕОТ> j ob 5 at Mon Aug 20 20 : 37 : 0 0 $ at teatime Запускае т конанду в 1 6. 00 текущего дня $ at now +5 days Запускает конанду через пя ть дней $ at 06/25/08 Запускает конанду 25 июня 2008 года в текущее вреня Кроме того, запустить команду, не связанную с консолью, можно с помощью команды batch, которая позволяет настроить запуск команды таким образом, чтобы она запускалась, как только процессор будет готов (средняя нагрузка ниже 8):

$ batch Немедленно запускает конанду a t> fi nd /mnt/i sos 1 grep jpg$ > /tmp/mypi cs at> <ЕОТ> Стоит отметить, что после выполнения команд at или batch будет отображен следующий запрос at>. Введите команду, которую хотите выполнить, и нажмите клавишу Enter. При необходимости введите дополнительные команды. После за­ вершения для составления списка последовательности выполнения необходимых команд нажмите сочетание клавиш Ctri+D.

Закончив, вы можете проверить очередность установленных задач at, восполь­ зовавшись командой atq:

Поиск процессов и уп ра вление ими $ atq Wed S e p 5 21 : 1 0 : 0 0 2007 а francoi s Fri Aug 24 21 : 1 0 : 00 2007 а francoi s Thu Aug 23 20 : 53 : 00 2007 а francoi s Обычные пользователи могут просматривать расписание выполнения только своих задач at. Суперпользователь может просматривать все задачи at, находящие­ ся в очереди. Если вы захотите удалить задачу из списка очередности, восполь­ зуйтесь командой atrm:

$ atrm 11 Удаляет задачу at под нонером 1 Команды at и batch используются для установления очередности однократного выполнения команд. Если необходимо многократно выполиять указанные коман­ ды, воспользуйтесь приложеннем cron. Эти команды помещаются в список задач cron, а затем в график выполнения, хранящийся в файлах crontab. Существует только один системный файл crontab ( / etc/crontab), однако, помимо него, каждый пользователь может создавать индивидуальный файл crontab, предназначенный для запуска команды в назначенное соответствующим пользователем время. Что­ бы создать переопальный файл crontab, выполните следующую команду:

е Создает переанальный файл crontab $ crontab · Команда c ront a b - е, используя текстовый редактор vi, открывает ваш файл crontab (или создает новый). Существуют разные варианты внесения данных в файл crontab:

15 8 * * Mon. Tue. Wed. Thu. F ri ma i l chri s < / v a r / proj ect/ stats. txt * * 1 1. 4. 7. 10 * fi nd 1 1 g rep. doc$ > / v a r / s a l es /documents. txt В первом примере пользователю chris отправляется сообщение, содержащее файл /var/ project l stats. txt. Эта команда выполняется ежедневно с понедельника по пятницу включительно в 8: 1 5. Во втором Примере в первые дни января, апреля, июля и октября запускается команда fi nd и производит поиск всех имеющихся в системе файлов с расширением DOC, а затем группирует список файлов в файле /va r / s a l es/documents. txt.

В конце каждой строки crontab указывается выполняемая команда. Первые пять полей определяют время и дату запуска команды (поля слева направо: минуты (от О до 59), часы (от О до 23), дни месяца (от О до 31), месяцы (от О до 12 или Jan, Feb, Ma r, Apr, Мау, Jun, Jul, Aug, Sep, Oct, Nov и Dec), а также дни недели (от О до 7 или Sun, Mon, Tue, Wed, Thu, Fri и Sat) ). Знак * означает, что значение поля не определено и в него может быть добавлена соответствующая информация.

Ниже представлены некоторые другие параметры, которые могут использовать­ ся вместе с командой c rontab:

# crontab - eu chr1 s Редактирует файл crontab другого поль зова теля ( толь ко для суперполь зов а теля J Отображает содержимое файла crontab $ crontab 1 · 15 8 * * Mon. Tue. Wed. Thu. F ri ma i l chri s < /var/ proj ect / stats. txt * * 1 1. 4. 7. 10 * fi nd 1 1 g rep. doc$ > / v a r / s a l es/documents. txt $ crontab r Удаляет файл crontab · 208 Глава 9. Проверка запущенных процессов и управление ими Раньше настройка системных задач cron осуществлялась путем добавления их в системный файл crontab. Хотя данная возможность все еще существует, теперь Ubuntu позволяет настроить ежечасное, ежедневное, еженедельное и ежемесячное выполнение задач cron путем свJJЗывания команды, которую необходимо запус­ тиrь, с каталогом cron. Для этого просто введите команду, которую хотите запустить, а затем скопируйте ее в каталог /etc/cron. hour1y, /etc/cron. da i 1 у, /etc/cron. week 1 y или 1 etc / c ron. month 1 у. Команда будет запускаться с периодичностью, соответствующей имени каталога, в котором хранится (ежечасно, ежедневно, еженедельно или еже­ месячно).

Утилита anacron является альтернативой утилите cron. Используя anacron, вы можете, как и при использовании cron, настраивать периодичность выполнения команд, однако anacron чаще всего используется на компьютерах, которые не по­ стоянно включены. Если команда не была запущена, поскольку компьютер был выключен во время предполагающегося выполнения команды, то при следующем включении компьютера утилита anacron выполнит заданную команду.

Рез ю м е Просмотр и работа с процессами, выполняющимися на операционных системах Linux, являются очень важными действиями, обеспечивающими правильную ра­ боту системы. Используя такие команды, как ps и top, вы можете просматривать список процессов, запущенных на вашей системе. Кроме того, с помощью команды pgrep вы можете осуществлять поиск и отображать список процессов, удовлетво­ ряющих заданным критериям.

Используя такие команды, как ni се и reni се, вы можете устанавливать приори­ тет выполнения процессов. Воспользовавшись во время выполнения процесса командой k i 1 1 или k i 1 1 а 1 1, вы можете изменить выполняемые им действия или уничтожить его.

После запуска команды из текущей консоли вы можете перемещать ее выпол­ нение в фоновый режим (bg) или приоритетный ( fg). Вы также можете останавли­ вать и заново запускать процессы, используя контрольные коды.

Для составления графика выполнения команд предназначены команды at или b a t c h. Для составления периодического повторяющегося графика выполнения команд в установленное время предназначены утилиты cron или anacron.

Ад м и н и ст ри р о ва н ие си стем ы Без тщательно продуманного управления ожидаемая производительность системы Linux может иногда превышать ее возможности, определяемые доступными ресур­ сами. При наличии возможности с течением времени контроль системы (исполь­ зование физической памяти, центрального процессара и устройств) может обеспе­ чить вам уверенность в том, что компьютер способен выполнять необходимые вам задачи. Аналогично контроль над другими аспектами системы, такими как дррй­ веры используемых в ней устройств, может помочь избежать возникновения сис­ темных ошибок и проблем с выполнением задач.

Данная глава разбита на несколько разделов, связанных с управлением Ubuntu или другой операционной системой Linux. Первый раздел призван помочь вам научиться отображать объем имеющихся в распоряжении ресурсов (мощность процессора, оперативной памяти и устройств). В следующем разделе описываются способы проверки системного времени. Далее следует описание процесса загрузки и последующего уровня выполнения. В последнем разделе описывается порядок работы с ядром и драйверами устройств, а также получения информации об устрой­ ствах, установленных на вашем компьютере.

П риложе и м я для контроля Ubuntu, Deblan и другие операционные системы Linux обладают прекрасным свой­ ством: они контролируют ваши действия. Если вы захотите, то найдете большое количество информации о центральном процессоре, жестких дисках, виртуальной памяти и других ресурсах компьютера, используемых в настоящий момент.

Вы можете в режиме реального времени просматривать информацию, собирае­ мую ядром операционной системы Linux, просто просматривая содержимое фай­ лов файловой системы / p roc (см. Приложеине 3). Альтернативным способом является использование команд, специально предназначенных для сбора инфор­ мации об использовании системой виртуальной памяти компьютера, процессора, запоминающих устройств и сетевых интерфейсов.

Существуют команды, способные отображать различные характеристики сис­ темных ресурсов. Поскольку данная книга не является простым обзором страниц МАN-справочника, мы разделили следующие разделы по темам (контроль ис­ пользования оперативной памяти, центрального процессара и запоминающих 210 Глава 10. Администрирование системы устройств), вместо того чтобы осуществлять их разделение по используемым ко­ мандам (top, vmstat и i ostat).

ПРИМЕЧАНИЕ -------­ Некоторые приложения, описываемые в данном раэделе, устанавливаются в Ubuпtu по умолчанию (вместе с такими пакетами, как procps). Однако, чтобы использовать iostat или sar, вам необходимо установить программный пакет sysstat, для чего выполните следующую команду:

$ sudo apt - get i nstal l sysstat О перативная память Немногие вещи могут так сказаться на производительности системы, как недоста­ ток оперативной памяти. Команды наподобие free и top позволяют просматривать основную информацию об оперативной памяти и файле подкачки. Команда vmstat предоставляет подробную информацию об использовании оперативной памяти и может работать постоянно. Команда s 1 а Ьtор может фиксировать объем исполь­ зования ядром (слэб-кэш) оперативной памяти.

'Команда free предоставляет наиболее быстрый способ просмотра динамики выделенив оперативной памяти в системе. Она отображает общий объем опера­ тивной памяти (Mem : ), объем области подкачки (Swa p : ), а также объем памяти, используемой в настоящее время. Вот несколько примеров использования коман­ ды free:

Отображае т объен исполь зования опера тивной $ free паня ти в килобай тах ( -k по умолчанию ) tot a l cached used buffers free sha red О 153388 Mem : 742476 725108 5 - /+ buffers /cache :

Swa p :

$ free - m Отображает объен исполь зования опера тивной паня ти в негабай тах tot a l used free sha red buffers cached Mem : 725 706 18 О 148 - /+ buffers /cache : 223 996 О Swa p :

$ free - Ь Отображае т объен исполь зования опера тивной паня ти в блоках tot a l u sed free sha red buffers cached Mem : 760295424 74251 0592 17784832 О 157 1 14368 - /+ buffe rs /cache : 234631 1 68 Swa p : 1044598784 73728 1 $ free - mt Отображает объен исполь зования и полный объен паня ти (Swap + RAMJ tot a l used free sha red buffers cached Mem : 725 708 16 О 149 - /+ buffers /cache : 223 996 О Swa p :

Tota l :

Отображает объен исполь зования опера тивной паня ти в гигабай тах $ free Непрерывно о тображае т объен исполь зуемой $ free - s опера тивной паня ти (с ин тервалом в пя ть секунд ) Приложения для контроля Чтобы избежать недостатка оперативной памяти и ускорения работы приложе­ ний, в Linux используется столько незадействованной оперативной памяти, сколь­ ко позволяет кзш жесткого диска. Поэтому первую строку отображаемой командой free информации, часто фиксирующую немного свободной оперативной памяти, можно опустить. Мы рекомендуем вам обратить внимание на вторую строку, ото­ бражающую общий объем оперативной памяти, доступной для приложений в на­ стоящий момент. В данном примере этот объем равен 50 1 Мбайт:

- /+ buffers /cache : 223 Одним из способов определить необходимый вашей системе объем оператив ной памяти является запуск всех приложений, которые вы планируете запускать одновременно, на другом компьютере с установленной системой Ubuntu. Затем выполните команду free с общим параметром (free - t ), чтобы отобразить общий объем используемой памяти, и убедитесь, что на вашей системе общий объем па­ мяти превышает полученное число (желательно, чтобы большая часть этой памя­ ти приходилась на физическую оперативную память).

Команда top предоставляет средства для просмотра запущенных в настоящий момент процессов и сортирует их по уровню потребления времени центрального процессара или оперативной памяти (для получения более подробной информации обратитесь к гл. 9, в которой описывается использование команды top для отобра­ жения запущенных процессов ). Вы также можете использовать команду top для просмотра объема потребляемой оперативной пам.вти в графическом режиме:

$ top top - 14 : 14 : 59 up 3 days. 18 : 26. 1 user. l oa d ave rage : 0. 1 1. 0. 04. 0. 0 Ta sks : 1 14 tota l. 3 runni ng. 1 1 1 s l eepi ng. О stopped. О zombi e Cpu ( s ) : O. O%us. O. O%sy. O. O%ni. 1 0 0. 0% i d. O. O%wa. O. O%hi. O. O%si. O. O%st Mem : 742476k tota l. 727232k used. 15244k free. 153708k buffers Swap : 1020 1 16k tota l. 72k used. 1020044k free. 343924k cached P I D USER PR NI V I RT RES SHR S %CPU %МЕМ T I ME+ COMMAND 2347 root 34 19 89552 77m 5636 S 0. 0 1 0. 7 6 : 05. 75 yum- updatesd 2797 chri s 18 О 80612 27m 18m S 0. 0 3. 8 0 : 0 1. 29 naut i l us 2814 chri s 15 О 44420 22m 20m S 0. 0 3. 1 0 : 00. 1 7 nm - a ppl et Для выхода из программы top нажмите клавишу q. Как и в выходе команды free, команда top отображает общий объем используемой оперативной памяти (Mem : ) и общий объем области подкачки (Swa p : ). Однако, поскольку top является прило­ жением, ориентированным на экран, и предоставляет возможность непрерывного контроля, вы можете постоянно получать информацию об объеме используемой оперативной памяти, причем каждые три секунды (значение по умолчанию) на экран будет выводиться обновленная информация. Запустив команду top, нажми­ те сочетание клавиш Shift+M выполняющиеся процессы будут отсортированы по уровню потребления оперативной памяти. Наиболее важным столбцом для опре­ деления объема оперативной памяти, потребляемой процессом, является RES, ко­ торый отображает объем физической памяти, потребляемой процессом и называе­ мой резидентным размером, отображаемым в столбце %МЕМ.

Для вывода более подробной статистики, касающейся использования виртуаль­ ной памяти, используйте команду vmstat. С помощью команды vmstat вы можете 212 Глава 1 0. Админи стр и рова ние системы отображать объем используемой оперативной памяти, например, со времени по­ следней перезагрузки или за указанный период времени. В следующем примере показано использование команды vmstat, отображающей новую статистику каждые три секунды:

$ vmstat procs - - - - - - - - - - - memory - - - - - - - - ­ - - swa p - - - - - i o - - - - - - system - - - - - - - cpu - - - - ­ free buff cache s i so b i r Ь swpd in cs us sy i d wa st Ьо о оо 26 3876 85 15 о о о 1 о 97740 32488 3196 148360 1 1 98388 7428 3204 151472 о 216 о 333 30 3200 82 18 о о о 79 3846 77 23 о о о 1 о 1 1 3316 8 148 2980 146968 о 4980 4 2 о 132648 90 3644 83 17 о о о 7472 2904 148488 о 6455 3 о 5085 9 5220 79 3468 84 16 о о о 2 о 147892 8088 2732 1 о 157948 7680 2308 1348 12 о 3272 12 3296 69 3174 77 23 о о о 26 3178 86 14 о 1 о 3 о 158348 7944 1 1 0 0 123888 21 144 25 2 о 166 1 1 6 7320 51 3175 84 16 о о о 568 120280 11 240 1 20 3 о 181 048 7708 648 119452 53 4852 796 4984 123 1783 86 13 о 1 о Для выхода из команды vms t a t нажмите сочетание клавиш Ctri +C. В данном примере vmstat был указан период в 30 секунд, за который было запущено более 1 00 приложений. Отметим, что, когда объем свободной оперативной памяти нахо­ дится в пределах от 32 488 Кбайт до 7 428 Кбайт (то есть оперативная память перегружена), данные начинают перемещаться в область подкачки (значение в столбце so ). Поскольку область подкачки размещена на жестком диске, вы може­ те видеть, как по мере увеличения области подкачки увеличивается блок, запи­ сывающийся на диск ( Ьо ). Вы также можете видеть увеличение области подкачки в столбце swpd.

Потребление времени центрального процессора в данном примере также воз­ растает, но без отображаемого времени ожидания ( i d 0). Отметим, что, когда в об­ ласть подкачки необходимо поместить некоторые приложения (последние три строки выхода), процессору для завершения процесса (wa 1) во время ввода/выво­ да приходится ожидать выполнения двух других процессов.

Вот еще несколько параметров, которые можно использовать с командой vmstat:

Отображает информацию в негабай тах (1 000 Кбайт ) $ vmstat -S m -s м Выводит информацию в негабай тах (1 024 Кбай т ) $ vmstat Отображает информацию в килобай тах (1 000 бай т ) $ vmstat -S 1< -s Выдае т информацию в килобай тах (1 024 байт ) $ vmstat К Обновляет информацию каждые две секунды в течение $ vmstat -n 2 20 секунд 1 l ess $ vmstat - s Отображае т счетчик количества событий и с та тис тику исполь зования опера тивной памя ти М - s 1 l ess $ vmstat ·S Отображае т с та тис тику в негабай тах 7 25 М tota l memo ry 7 17 М used memo ry 486 М a ct i ve memo ry 175 М i n act i ve memory 7М free memo ry 1М buffe r memory Приложения для контроля 120 М swa p cache 996 М tot a 1 swap 802 М used swa p 193 М free swa p В предыдущем примере показаны различные варианты отображения статисти­ ки использования оперативной памяти ( - s ) в мегабайтах ( - S М), которые, на наш взгляд, наиболее удобны. В остальных примерах продемонстрированы способы отображения информации с помощью команды vmstat в мегабайтах и килобайтах (в упрощенном и техническом исчислении). Параметр - n 2 10 позволяет команде vmstat обновлять результаты через установленный промежуток времени ( 2) на протяжении заданного количества раз ( 1 0 ).

Используя такие команды, как p s и top, вы можете определять объем используемой вашей системой оперативной памяти. Однако ядро обладает своим собственным кзшем, используемым для контроля ресурсов и называемым слэбо.м. Для отобра­ жения статистики кэш-памJIТИ вдра воспользуйтесь командой vmstat (из / proc/ s 1 aЬi n fo):

$ vmstat - m l ess Отображает информацию о кэш -памя ти ядра Num Tota 1 Si ze Pages Cache 2 13 nf_nat : he1 p о о nf nat : base о о 64 bri dge_fdb_cache ext3- i node-cache 1236 156 ext3 xattr В информации о кэш-памяти указывается имя каждого объекта, хранящегося в ней, количество активных объектов для данного типа кэша, общее количество объектов, доступных для данного типа кэша, размер кэша (в байтах) и количество страниц каждой области кзша. Используя команду s 1 a btop, вы можете отобразить информацию о кэш-памJIТИ вдра в графическом режиме (как и в случае с коман­ дой top):

$ s1 abtop 49 127 1 70942 ( 69. 2% ) Act i ve 1 Tota1 Objects ( % used ) 3094 1 3094 ( 1 0 0. 0% ) Act i ve 1 Tot a 1 S1 abs ( % used ) 1 0 1 1 145 ( 69. 7% ) Acti ve 1 Tota1 Caches ( % used ) 8830. 29К 1 12013. 73К ( 73. 5% ) Act i ve 1 Tot a 1 Si ze ( % used ) 0. 0 1 К 1 0. 17К 1 128. 00К Mi n i mum 1 Average 1 Maxi mum Obj ect OBJS ACT I V E USE OBJ S I ZE SLABS OBJ /SLAB САСНЕ S I ZE NАМЕ 1 1600 4303 37% 0. 13К 400 29 1600К dent ry cache 1464К ext3 i node-cache 2928 1246 42% 0. 48К 1340К radi x t ree-node 4355 2535 58% 0. 28К 335 219 219 100% 4. 00К 219 1 876К s i ze - 3485 84% 0. 16К 172 24 688К fi 1 p Выводимая командой s 1 аЬtор информация обновляется каждые три секунды.

По умолчанию содержимое слэб-кэша сортируется по количеству объектов 214 Глава 10. Администрирование си стемы ( первый столбец), хранящихся в каждом разделе кэша. Нажав клавишу С, вы мо­ жете отсортировать информацию по размеру кэша (как показано в предыдущем · примере).

П роцессор Перегрузка центрального процессара является еще одним важным фактором, ко­ торый может вызывать сбои в работе системы. Команда vmstat, рассмотренная ра­ нее, может выводить общие статистические данные об использовании процессара (действия пользователя, действия системы, время ожидания, время ожидания сиг­ налов входа/выхода и время, забираемое виртуальной вычислительной машиной).

Тем не менее команда i ostat (пакет sysstat) может отображать более подробные сведения о загрузке центрального процессора.

Ниже приведено два примера использования команды i ostat с целью получе­ ния отчета об испоJIЬзовании процессора:

Отображае т обновляемую каждые три се нды с та тис тику $ i ostat - с использования процессор д (запускаемые приложения ) L i nux 2. 6. 2 1 - 1. 3194. fc7 ( da v i nci ) 08/ 1 0 / %idl e a vg - cpu : %user %ni ce % system % i owa i t %stea l 0. 00 99. 0. 50 0. 00 0. 00 0. a v g - cpu : %user % n i ce %system % i owa i t %stea l %i dl e 0. 0 0 47. 0. 00 18. 28. 7 1 5. %idl e a vg - cpu : %user %ni ce %system % i owa i t %stea l 0. 00 0. 00 0. 1. 98. 99 0. %idl e avg - cpu : %user %ni ce %system % i owa i t %stea l 0. 00 0. 0. 0. 0. 99. Отображает обновляемую каждые три секунды с та тис тику $ i ostat · с исполь зования процессора (копирование файлов ) L i nux 2. 6. 21 - 1. 3 194. fc7 ( da v i nci ) 08/ 10 / a vg - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 50 0. 00 0. 00 0. 00 0. 00 0. a v g - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 50 0. 00 24. 88 74. 63 0. 00 0. a vg - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 50 0. 00 10. 00 89. 50 0. 00 0. a vg - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 50 0. 00 1 7. 41 82. 09 0. 00 0. a vg - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 00 0. 00 14. 65 85. 35 0. 00 0. В первом примере сначала просто загружается система, а затем начинают вы­ полняться некоторые приложения. Как вы можете заметить, большая часть ресур­ сов процессора, используемых для работы приложений, задействована в рабочем пространстве пользователя. Во втором примере рассмотрен случай, при котором осуществляется копирование крупных файлов с одного жесткого диска на другой, в результате чего б6льшая часть времени расходовалась на системном уровне, также называемом пространство.м ядра. Отметим, что копирование файлов также влияет на рост времени ожидания завершения запросов ввода/вывода (% i owa i t).

Приложения для контроля Ниже приведены примеры использования команды i ostat для отображения отчетов об использовании процессора с применением подписей времени:

$ i ostat - с -t Отображает подпись вренени в о тчете об исполь зовании процессорд L i nux 2. 6. 2 1 - 1. 3194. fc7 ( da v i nci ) 08/ 1 0 / Ti me : 9 : 28 : 03 АМ avg - cpu : %user %ni ce %system % i owa i t %stea l %idl e 0. 50 0. 00 0. 00 0. 00 0. 0 0 99. $ i ostat - с - t 2 Выводит с та тис тикv и обновляет ее каждые две сецунды в течение 20 сецунд Команда dstat (программный пакет dstat) является альтернативой команде i ostat, поскольку также позволяет просматривать информацию о загрузке цен­ трального процессора (а также другие данные, связанные с производительностью системы). Преимуществом команды dstat перед другими подобными Приложения­ ми является более точное отображение используемых единиц измерения (кило­ байты или мегабайты) и использование цветов для выделения разных типов дан­ ных. Вот пример использования команды d s t a t для отображения информации о загрузке процессора:

Отображает и непрерывно обновляет информацию $ dstat - t - с о загруз ке процессора, исполь зуя подписи вренени - - - t i me - - - - - - - tot a l - cpu - usage - - - epoch_ l us r sys i d l wa i h i q s i q 1189727284 1 о о 100 о о о 1 189727287 1 1 о 99 о о о 1 189727290 1 3 о 97 ооо 1189727293 1 о о 100 о о о 1189727296 1 5 о 95 о оо 1 189727299 1 1 о 99 о оо 1189727302 1 3 о 97 ооо 1189727305 1 о о 100 оо о 1 1897.27308 1 3 о 96 о о 1 18972731 1 1 1 о 99 о оо 1 189727314 1 о о 100 о о о 1189727317 1 о о 100 о оо 1 189727320 1 1 о 99 о оо 1 189727323 1 5 о 95 о оо 1189727326 1 3 о 97 ооо 1189727329 1 3 о 97 ооо 1189727332 1 2 о 98 о оо 1189727335 1 5 о 95 о оо В данном случае в выход включены значения даты и времени, основанные на начале времени начала ( - t ) составления отчета о загрузке процессара ( - с), обнов­ ляющегося каждые три секунды (3). Этот отчет обновляется до тех пор, пока вы сами не остановите его (нажав сочетание клавиш Ctri+C).

Если вы хотите определить конкретные процессы, потребляющие наибольший объем ресурсов проЦессора, воспользуйтесь командой top: введите top, а затем 216 Глава 10. Админи стр и рование системы нажмите Shift+P, чтобы отсортировать процессы по уровню использования процес­ сара (данный порядок сортировки является значением по умолчанию):

Отображает запущенные процессы и сор тирует их $ top по уровню исполь зования ресурсов процессора Ta s k s : 120 tota l. 3 runni ng. 1 1 6 s l eepi ng. О stopped. 1 zombi e Cpu ( s ) : 86. 8% us. 6. 0% sy. 0. 0% n i. 3. 3% i d. 4. 0% wa. 0. 0% h i. 0. 0% s i Mem : 482992k tota l. 476884k used. 6108k free. 1220k buffers Swa p : 58637.16k tota l. ll66252k used. 4697464k free. 52984k cached P I D USER PR NI V I RT RES SHR S %CPU %МЕМ T I ME+ COMMAND 9648 chri s 16 О 309m 123m 16m R 72. 6 26. 1 287 : 55. 22 fi refox- bi n 15 О 762m 65m 5732 S 15. 6 14. 0 4388 : 27 Х 552 root Полный список процессов содержит значительно большее количество процес­ сов, отсортированных по степени загрузки процессара (столбец %CPU): В данном примере наибольший объем ресурсов процессара потребляют браузер Firefox ( 72. 6% ) и сервер Х display ( 15. 6% ). Если вы решите завершить процесс Firefox, но по каким-либо причинам не можете корректно закрыть окно Firefox, то введите пара­ метр k, ID процесса Firefox (9648) и номер сигнала (9).

Информацию о самом процессоре вы можете получить прямо из файла /proc/ cpui n fo:

Отображае т информацию о процессоре.

$ cat /proc/cpui nfo содержащуюся в ка талоге /proc о processor Authenti cAМD vendor_i d б cpu fami l y model АМD Ath l on ( tm ) proces sor model name steppi ng 1340. cpu MHz 256 кв cache s i ze fl ags fpu vme de pse tsc ms r рае mce сх8 api c mt rr pge mca cmov pat pse36 mmx fxs r sysca l l mmxext 3dnowext 3dnow up : 2680. bogomi ps : c l fl ush s i ze При описании работы с процессаром стоит упомянуть такую небезынтересную деталь, как метки, представляющие собой функции, поддерживаемые процессором.

Для работы с некоторыми функциями в Ubuntu необходимо, чтобы были активны определенные расширения процессора, связанные с этими метками. Например, для использования паравиртуальных параметров виртуальной среды Xen должна быть у<:тановлена метка рае, а для полного запуска виртуальных параметров - поддерж­ ка расширения либо метки vmx (для процессаров Intel), либо s vm (для процессорав AMD).

Подобная информация о вашем процессаре собирается системой в самом нача­ ле ее загрузки и отображается в начале выхода команды dmesg.

Приложения для контроля Запоминающ ие усrро й сr ва Основную информацию об объеме памяти, доступной для хранения файловых систем Linux, можно получить, используя такие команды, как du и df (см. гл. 7 ).

Для отображения ж е более подробной информации о работе запоминающих устройств предназначены команды vmstat и i ostat.

Некоторые выходные данные команды i ostat, приведеиные ранее, могут совпа­ дать с параметрами, используемыми для определения •узких мест• ( аппара'9fЫХ и программных элементов, ограничивающих производительность системы) при чтении с диска или записи на диск:

$ i ostat 3 Провер яе т скорос ти ч тения с диска и записи на диск Li nux 2. 6. 21 - 1. 3194. fc7 ( da v i nci ) 081 1 1 / avg - cpu : %user %ni ce %system % i owa i t %stea l %i dl e 13. 15 0. 60 0. 0. 59 0. 0 0 85. Dev i ce : tps Bl k rea d / s Bl k wrt n / s Bl k read Bl k wrtn sda 1. 09 32. 08 58. 94 16086324 sdb 0. 29 5. 27 2644482 563 1 1. a vg - cpu : %user %ni ce %system % i owa i t %stea l %i dl e 1. 00 0. 0 0 42. 14 45. 15 11. 0. Dev i ce : Bl k rea d / s Bl k wrt n / s tps Bl k read Bl k wrtn sda 411. 37 665 15. 05 2. 68 1 98880 sdb 68. 23 2. 68 14696. 99 8.avg - cpu : %user %ni ce %system % i owa i t %stea l %i dl e 0. 67 0. 0 0 41. 0 0 58. 33 0. 0. Dev i ce : tps Bl k rea d / s Bl k_wrt n / s Bl k read Bl k wrtn sda 239. 67 52530. 67 106. 67 157592 о sdb 236. 0 0 0. 00 55077. 33 В первой части команда i ostat отображает уровень средней загрузки централь­ ного процессара со времени последней перезагрузки системы. Далее отобража­ ется уровень загрузки процессара при копировании больших объемов данных с первого диска ( sda ) на второй диск ( sdb ). Высокие значения i owa i t свидетель­ ствуют о том, что скорость диска является «узкими местом• системы. Другими словами, увеличение скорости записи на диск приведет к большему приросту производительность системы, нежели увеличение производительности самого процессора.

Команда vmstat также может отображать статистику о ваших дисках. Ниже приведен пример использования команды vmstat для отображения информации о скорости чтеНИJI с диска и записи на него:

Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 7 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.