понедельник, 28 сентября 2009 г.

7 консольных инструментов для мониторинга системы

1. top и htop













top - незаменимая программа, которая есть в каждом дистрибутиве. Показывает активность процессов в системе,
нагрузку на процессор, использование памяти и т.д.
Наиболее используемые мною хоткеи:
h - справкаZ - настройка цветов
A - выводит наиболее прожорливые процессы
u - показать процессы определённого пользователя
O - выбор метода сортировки
k - убить процесс
q - выход из программы.

htop - это продвинутый top, и информация выводимая им более удобна для восприятия.










2. dstat
Одна из моих любимых утилит. Это vmstat, iostat, netstat, nfsstat и ifstat в одном флаконе.










Пара опций, которыми я чаще всего пользуюсь:
-c цпу статистика
-d статистика по жёсткому диску
-m использование памяти
-n использование сети


3. ps
очень полезная команда. Делает снимок протекающих в данный момент времени в системе процессов.
Если к примеру нужно убить подвешивающий систему процесс как можно быстрее, а для этого нужно узнать его PID, то можно сделать так:
ps -A | grep -i java
И эта команда нам выдаст:
7789 ? 00:05:44 java
Ну а потом с чистым сердцем:
kill -9 7789
Списко опций прямо-таки гигантский, поэтому:
man ps


4. du и df
Эти команды незаменимы, когда требуется уточнить чем же занято всё свободное место.
Для получения размера папки:
du -sh ~/Pictures/
Чтобы вывести размеры всех файлов и каталогов в текущем каталоге:
du -ah
Команда df выводит отчёт об использовании дискового пространства.
df -hT
Но гораздо легче и удобнее использовать утилиту ncdu написанную с использованием ncurses:




















5. iptraf
Пригодится, когда возникает необходимость в контроле за данными пересылаемыми через сетевой интерфейс или для просмотра статистики пo
соединениям.




















6. lsof (glsof)

Запустив эту утилиту без параметров, вы получите громадный список всех процессов системы и открытых ими файлов. Понятно, что эту кучу инфы надо как-то уменьшить в зависимости от того, что вы ищите.
Например, чтобы узнать какой процесс или процессы использует данный файл, нужно просто набрать:
lsof /var/log/messages.log
Вывести список открытых портов и процессов, которые эти порты используют:
lsof -i
Какие файлы в определённой папке используются в данный момент (пригодится если к примеру не можете отмонтировать флешку):
lsof +D /media/disk
Ну и напоследок, чтобы узнать, какие файлы читает нужный вам процесс:
lsof -c <процесс>
Под lsof есть и графическая обёртка glsof, про которую я совсем недавно узнал. (Хоть это к теме и не относится, но скрин выложу)











7. ccze

Лучше чем ccze для просмотра логов я пока ещё ничего не нашёл, да и искать незачем. О ней я писал в этом посте.

Интересно было бы услышать кто ещё что использует.

понедельник, 7 сентября 2009 г.

Как попасть в систему, если забыт пароль root?


Да, можно с помощью live-cd или chroot. Но если под рукой нет ни второй установленной системы, ни спасительного диска, то пригодится следующий способ.

В grub выбираем установленную систему, жмём E.
Ищем строку загрузки ядра такого вида:
kernel /boot/bzImage root=/dev/sda1 ro
и приводим её к виду такому:
kernel /boot/bzImage root=/dev/sda1 rw init=/bin/bash
Далее загружаемся и командой passwd меняем пароль суперпользователя.

P.S. Способ не мой, а честно украденный с этого видео