Мини заметки — выпуск 13, полностью посвященный Linux
10 июля 2013
Этот выпуск полностью посвящен Linux’ам. Я пользуюсь Ubuntu, но подозреваю, что многое из написанного также будет справедливо и для других дистрибутивов. Сегодня мы выясним, как установить самое свежее ядро и, если что-то пошло не так, откатиться к старой версии, как посмотреть список установленных в данный момент TCP-соединений, как найти руткиты в системе и не только. Предыдущие выпуски: двенадцатый, одиннадцатый, десятый, девятый.
1. Установка свежего ядра Linux
Здесь вы найдете сборки последних версий ядра для Ubuntu. Имеет смысл попробовать одно из этих ядер, если у вас не подцепляется какое-то железо. Или если вы просто хотите внести свой вклад в тестирование ядра Linux.
Если после очередного обновления ядра что-то пошло не так, не отчаивайтесь! Во время загрузки системы зажимаем Shift. В результате должно появится меню Grub’а. В нем можно выбрать для загрузки одну из ранее установленных версий ядра.
2. При работе ноута от аккумулятора пропадает WiFi :(
При работе от батареи Ubuntu включает управление питанием WiFi (WiFi power management), что существенно снижает скорость передачи данных по WiFi и нередко может привести к потере выхода в сеть. Например, на моей машине при работе от сети пинги до mail.ru идут 10 мс, а при работает от батареи — 100 мс. Чтобы отключить управление питанием делаем следующее.
При работе от аккумулятора говорим iwconfig. Если видим:
… значит управление питанием активно. Пингуем mail.ru. Говорим:
Снова пингуем. Теперь пинги должны возвращаться намного быстрее.
Для закрепления результата прописываем в /etc/pm/power.d/wireless:
/sbin/iwconfig wlan0 power off
… и говорим:
Проверяем, что теперь управление питанием отключено независимо от того, работаем ли мы от батареи или от сети.
При отключенном управлении питанием аккумулятор разряжается быстрее, зато не возникает проблем с сетью. Вместо того, чтобы отключать управление питанием вообще, можно в зависимости от ситуации включать и выключать его руками описанным выше способом. Но лично я предпочитаю отключать его по дефолту и включать при необходимости.
3. Самый простой способ зашифровать каталог
Есть такое замечательное приложение CryptKeeper:
Программа висит в трее и позволяет создавать, монтировать и демонтировать зашифрованные каталоги. Делать все это можно и из консоли.
Создать новую зашифрованный каталог:
Примонтировать:
Демонтировать:
Для управления зашифрованными каталогами из консоли требуется пакет encfs:
Если вы поставили CryptoKeeper, этот пакет у вас уже установлен.
4. Как угомонить OOM Killer
Если при выполнении требовательных к оперативной памяти операций (например, компиляции программ на Scala) у вас «умирают» вкладки в Chrome, значит нужно либо докупить памяти, либо сделать следующее.
Под рутом говорим:
echo 2 > /proc/sys/vm/overcommit_memory
В файле /etc/sysctl.conf прописываем:
vm.overcommit_ratio=100
Здесь цифра 2 означает стратегию OVERCOMMIT_NEVER. При этой стратегии допустимый объем пространства памяти вычисляется как swap + ram * overcommit_ratio / 100
. Помимо этого операционная система резервирует около 3% памяти для процессов пользователя root.
Рецепт был позаимствован из блога avz.org.ua.
5. Ищем руткиты с помощью контрольных сумм пакетов
Для решения этой задачи есть прекрасный пакет debsums:
sudo debsums -ca
Если контрольные суммы не сходятся, значит либо вы правили что-то руками, либо вас поломали.
6. Как в Ubuntu узнать температуру ядер процессора?
Устанавливаем пакет lm-sensors:
Говорим sensors
. Должны увидеть что-то вроде:
Adapter: Virtual device
temp1: +27.8°C (crit = +106.0°C)
temp2: +29.8°C (crit = +106.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +41.0°C (high = +85.0°C, crit = +105.0°C)
Core 0: +38.0°C (high = +85.0°C, crit = +105.0°C)
Core 1: +35.0°C (high = +85.0°C, crit = +105.0°C)
Core 2: +38.0°C (high = +85.0°C, crit = +105.0°C)
Core 3: +41.0°C (high = +85.0°C, crit = +105.0°C)
7. Как узнать скорость вращения кулеров?
Говорим:
Эта команда находит сенсоры, выводит список соответствующих модулей ядра и добавляет их в /etc/modules.
Эта команда подгружает добавленные модули ядра. Посмотреть список загруженных модулей можно командой sudo lsmod
. Если все было сделано правильно, то теперь в выводе команды sensors
также будет отображаться информация о скорости вращения кулеров.
8. Как определить имя недостающего пакета
Если вы пользуетесь bash, то при попытке запустить программу, которая отсутствует в системе, оболочка заботливо подскажет вам имя недостающего пакета. В оболочке zsh этой фишки нет, но ее легко настроить. Просто прописываем:
/usr/lib/command-not-found $1
}
… в ~/.zshrc, затем говорим:
… и радуемся жизни!
9. Лимит на количество открытых файловых дескрипторов
Команда ulimit -a
выводит различную информацию, в том числе и максимальное количество файловых дескрипторов, которое может открыть один процесс. Список файловых дескрипторов, открытых заданным процессом, можно посмотреть командой:
Более удобный вариант:
Увеличить лимит можно, прописав что-то вроде:
… в файле /etc/security/limits.conf.
10. Следим за трафиком
Иногда требуется посмотреть, какие TCP-соединения в данный момент установлены, на каком сетевом интерфейсе какой объем трафика создается и так далее. Для решения этих задач в Linux есть утилиты iftop и iptraf. Обе утилиты прекрасны. Первая чуть попроще, вторая чуть помощнее. На мой взгляд в арсенале нужно держать обе. Для определения, какой порт какой программой используется, можно воспользоваться командой sudo netstat -tuwpan
. Выяснить, какая программа создает больше всего трафика, поможет утилита nethogs. Если нужно просто посмотреть объем текущего трафика, попробуйте ifstat.
Дополнение: Мини заметки — выпуск 14
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.