Выбрать главу

Файлы блокировок широко применяются для защиты системных почтовых каталогов от одновременной записи несколькими пользователями, для индикации занятости порта модема, и т.п. Сценарии могут использовать файлы блокировок для того, чтобы выяснить -- запущен ли тот или иной процесс. Обратите внимание: если в сценарии будет предпринята попытка создать файл блокировки, когда он уже существует, то такой сценарий скорее всего зависнет.

Как правило, файлы блокировки создаются в каталоге /var/lock. Проверка наличия файла блокировки может быть проверена примерно таким образом:.

appname=xyzip

# Приложение "xyzip" создает файл блокировки "/var/lock/xyzip.lock".

if [ -e "/var/lock/$appname.lock ]

then

...

mknod

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

tmpwatch

Автоматически удаляет файлы, к которым не было обращений в течение заданного периода времени. Обычно вызывается демоном crond для удаления устаревших файлов системного журнала.

MAKEDEV

Утилита предназначена для создания файлов-устройств. Должна запускаться с привилегиями пользователя root, в каталоге /dev.

root# ./MAKEDEV

Это своего рода расширенная версия утилиты mknod.

Команды резервного копирования

dump, restore

Команда dump создает резервные копии целых файловых систем, обычно используется в крупных системах и сетях[ 41 ]. Она считывает дисковые разделы и сохраняет их в файле, в двоичном формате. Созданные таким образом файлы, могут быть сохранены на каком-либо носителе -- на жестком диске или магнитной ленте. Команда restore -- "разворачивает" файлы, созданные утилитой dump.

fdformat

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

Команды управления системными ресурсами

ulimit

Устанавливает верхний предел для системных ресурсов. Как правило вызывается с ключом -f, что означает наложение ограничений на размер файлов (ulimit -f 1000 ограничит размер вновь создаваемых файлов одним мегабайтом). Ключ -c ограничивает размер файлов coredump (ulimit -c 0 запретит создание coredump-файлов). Обычно, все ограничения прописываются в файле /etc/profile и/или ~/.bash_profile (см. Глава 26).

Грамотное использование ulimit поможет избежать нападений, целью которых является исчерпание системных ресурсов, известных под названием fork bomb.

#!/bin/bash

while 1 # Бесконечный цикл.

do

$0 & # Этот сценарий вызывает сам себя . . .

#+ порождая дочерние процессы бесконечное число раз . . .

#+ точнее -- до тех пор, пока не иссякнут системные ресурсы.

done # Это печально известный сценарий "sorcerer's appentice".

exit 0 # Сценарий никогда не завершит свою работу.

Команда ulimit -Hu XX (где XX -- это верхний предел количества процессов, которые может запустить пользователь одновременно) в /etc/profile вызовет аварийное завершение этого сценария, когда количество процессов превысит установленный предел.

umask

Установка маски режима создания файлов. Накладывает ограничения на атрибуты по-умлчанию для создаваемых файлов. Маска представляет собой восьмеричное значение и определяет запрещенные атрибуты файла. Например, umask 022 удаляет права на запись для группы и прочих пользователей (у файлов, создававшихся с режимом 777, он оказывается равным 755; а режим 666 преобразуется в 644, т.е. 777 NAND 022 = 755, 666 NAND 022 = 644)[ 42 ]. Конечно же, впоследствие, пользователь может откорректировать права доступа к своему файлу с помощью команды chmod. Как правило, значение umask устанавливается в файле /etc/profile и/или ~/.bash_profile (см. Глава 26).

rdev

Выводит или изменяет корневое устройство, размер RAM-диска или видео режим. Функциональные возможности утилиты rdev вообще повторяются загрузчиком lilo, но rdev по прежнему остается востребованной, например, при установке электронного диска (RAM-диск). Это еще одна потенциально опасная, при неумелом использовании, утилита.

Команды для работы с модулями ядра

lsmod

Выводит список загруженных модулей.

bash$ lsmod

Module Size Used by

autofs 9456 2 (autoclean)

opl3 11376 0

serial_cs 5456 0 (unused)

sb 34752 0

uart401 6384 0 [sb]

sound 58368 0 [opl3 sb uart401]

soundlow 464 0 [sound]

soundcore 2800 6 [sb sound]

ds 6448 2 [serial_cs]

i82365 22928 2

pcmcia_core 45984 0 [serial_cs ds i82365]

вернуться

41

Пользователи небольших, десктопных Linux-систем предпочитают утилиты попроще, например tar.

вернуться

42

NAND -- логическая операция "И-НЕ". В общих чертах она напоминает вычитание.