□
□
□
□
□
Применять данные выражения нужно следующим образом:
[переменная выражение значение | переменная]
Например:
# N меньше 10
[$N — lt 10]
# N меньше A
[$N — lt $A]
В квадратных скобках вы также можете задать выражения для проверки существования файла и каталога:
□
□
□
С оператором
case переменная in
значение_1) команды_1;;
…
значение_^ команды_N;;
*) команды_по_умолчанию;;
esac
Значение указанной переменной по очереди сравнивается с приведенными значениями (
Глава 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.