Читаем Ubuntu 10. Краткое руководство пользователя полностью

Применять данные выражения нужно следующим образом:

[переменная выражение значение | переменная]

Например:

# N меньше 10

[$N — lt 10]

# N меньше A

[$N — lt $A]

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

— e файл — условие истинно, если файл существует;

— d каталог — условие истинно, если каталог существует;

— x файл — условие истинно, если файл является исполнимым.

С оператором case мы уже немного знакомы, но сейчас рассмотрим его синтаксис подробнее:

case переменная in

значение_1) команды_1;;

значение_^ команды_N;;

*) команды_по_умолчанию;;

esac

Значение указанной переменной по очереди сравнивается с приведенными значениями (значение_1…, значение_N). Если есть совпадение, то будут выполнены команды, соответствующие значению. Если совпадений нет, то будут выполнены команды по умолчанию. Пример использования case был приведен в листинге 22.3.

Глава 23

Восстановление системы после сбоя

23.1. Локализация причины сбоя

Всему есть своя причина — сбой не происходит сам по себе. Причиной может стать либо ошибка программного обеспечения, либо отказ «железа». Исходя из этого, различают программные и аппаратные сбои. Последние можно смело назвать аппаратно-программными, поскольку из-за отказа аппаратуры довольно часто происходят программные сбои. Самый простой пример — отказ винчестера, вследствие которого программа не может записать или прочитать данные, и происходит программный сбой. При некорректной работе оперативной памяти происходят порой сложнообъяснимые ошибки программного обеспечения.

23.2. Программный сбой

Прежде всего, нужно выяснить и по возможности устранить причину сбоя. Если это сугубо программный сбой, то причины две: неправильная настройка программы (или системы) и ошибка программы.

23.2.1. Неправильная настройка программы или системы

Как работала система до сбоя? Встречался ли подобный сбой раньше? Если ничего такого ранее вы не наблюдали и система работала как швейцарские часики, значит, скорее всего, причина в неправильной ее настройке. Вспомните, какие файлы конфигурации вы изменяли (или какие параметры устанавливали с помощью графических конфигураторов). Просто по памяти восстановите исходные значения и перезапустите сервис или службу, ставшую причиной сбоя, — возможно, проблема решится. Рекомендуется перед каким-либо изменением, вносимым в файл конфигурации системы, делать его резервную копию. Потом вам же будет проще восстановить исходные значения. Можно рекомендовать и другой подход — закомментировать прежние директивы/значения файла конфигурации, а новые писать под ними. В случае вашей ошибки вы всегда сможете восстановить исходные значения.

23.2.2. Ошибка программы. Журналы системы

Когда причина ошибки в ваших действиях — это самый простой случай. Иногда бывает так, что система работала-работала, а на следующий день половина служб не запускается. В чем же причина? Тут вам поможет только чтение журналов системы, находящихся в каталоге /var/log:

/apache2/ — журналы Web-сервера Apache2;

/apt/ — журналы системы установки пакетов APT;

/clamav/ — журналы антивируса ClamAV;

/cups/ — журналы системы печати;

/gdm/ — журналы менеджера дисплея;

/installer/ — журналы программы установки;

/news/ — журналы NNTP-сервера и NNTP-клиентов;

/proftpd/ — журналы FTP-сервера;

/samba/ — протоколы Samba;

auth.log — журналы аутентификации (кто и когда входил в систему);

daemon.log — журналы для разных демонов (служб);

dmesg — загрузочные сообщения ядра;

dpkg.log — журналы программы dpkg;

kern.log — журналы сообщений ядра;

mail* — журналы почтовой службы;

messages — различные сообщения ядра (и в некоторых случаях — обычных программ);

mysql.log — протокол MySQL-сервера;

secure — журнал службы безопасности;

syslog — журнал демона syslog;

Xorg.0.log — журнал системы XFree86 (дисплей 0);

user.log — различные сообщения программ пользовательского уровня.

Протоколирование сообщений системы и программ ранее выполнялось двумя демонами: klogd и syslogd. В современных дистрибутивах (Ubuntu — не исключение) используется всего один демон протоколирования — rsyslogd.

Имена файлов журналов могут немного отличаться от перечисленных здесь, поскольку они зависят от настроек системы, в том числе и от настроек демона rsyslogd. Кроме того, в системе могут создаваться дополнительные файлы протоколов или даже каталоги, содержащие файлы протоколов, — повторюсь, все зависит от настроек системы. Чтобы узнать, какие файлы протоколов имеются в вашей системе, какие из них являются основными и для чего используются, откройте и изучите файлы конфигурации rsyslogd: /etc/rsyslog.conf и /etc/rsyslog.d/50-default.conf.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже