Полезные команды Linux

В этой заметке будут фиксироваться полезные команды для Linux-based systems, с которыми нам приходилось иметь дело.

Удаление старых файлов в Linux

$ find /var/log -mtime +60 -type f -exec rm -rf {} \;

В данном примере будут рекурсивно удалены все файлы в каталоге /var/log, чья дата изменения старше 60-ти дней.

Как сделать “telnet” с помощью утилиты netcat (nc)

$ nc -v -w 5 10.200.7.2 -z 1414-1420

Где:

-v : Дополнительная диагностика (verbose)

-w 5 : тайм-аут (в секундах)

10.200.7.2 : host

-z 1414-1420 : диапазон портов

Пример:

Как определить версию Unix системы

Для начала понимаем что это вообще за класс ОС, путем вывода универсальной для всех Unix-систем команды:

$ uname -a

которая нам выведет что-то подобное:

Linux hostname.com 2.6.18-194.17.4.el5PAE #1 SMP Mon Oct 25 16:35:27 EDT 2010 i686 i686 i386 GNU/Linux

или

FreeBSD hostname.com 5.5-STABLE FreeBSD 5.5-STABLE #0: Wed Dec 5 20:00:38 MSK 2007 email@hostname.com:/usr/obj/usr/src/sys/GENERIC i386 или AIX svcas07 3 4 000145364C00

из чего нам либо станет понятно кто это. Для того чтобы уже конкретно определить версию linux:

$ cat /proc/version

Linux version 2.6.18-194.17.4.el5PAE (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Mon Oct 25 16:35:27 EDT 2010

то есть теперь известно семейство linux и версия ядра.

У семейства Red Hat есть более подробная команда, для того чтобы узнать версию linux:

$ cat /etc/redhat-release

CentOS release 5.6 (Final)

По хорошему это исчерпывающий ответ, но в Red Hat также имеется дополнительная утилита ставящаяся в полном комплекте, которая выведет более подробную информацию про версию linux:

$ lsb_release -a

LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.5 (Final) Release: 5.5 Codename: Final

Еще вариант:

$ cat ls /etc/*{-,_}{release,version} 2>/dev/null | head -n 1

Как посмотреть кто «держит» директорию

$ fuser -uc dir_name

Где:

fuser — утилита, идентифицирующая процессы, которые используют указанные файлы или сокеты. -c Подобно параметру -m и применяется для совместимости с POSIX.

-m В качестве name указывается файл на смонтированной файловой системе или смонтированное специальное блочное устройство. Выводится список всех процессов, которые используют файлы на этой файловой системе. Если указанный файл является каталогом, тогда к его имени автоматически добавляется name/. и рассматривается любая файловая система, которая может быть смонтирована на этот каталог.

-u Добавляет к каждому PID имя владельца процесса.

Считаем, сколько места на диске занимает каталог

$ du -sh /var

Выводим в Мб или Гб.

Просмотр файла с возможностью скроллинга вверх и вниз

$ less file.txt

Получение любой даты из системы

$ date -d “строка”

где строка может содержать значения: “1 day ago”, “1 week ago”, “1 year ago”.

Просмотр последних n строк из файла

$ tail -n

Например просмотр последних 20 строк: tail -20 access_log

Слежение за файлом

$ tail -f access_log

Команда tail с ключом f позволяет следить за файлом: новые строки (добавляемые в конец файла другим процессом) автоматически выводятся на экран в реальном времени. Это особенно удобно для слежения за журналами.

Вывести все java-процессы

$ ps –ef| grep java

Удобно использовать для отображения всех процессов сервера приложений.

Работа с логом access.log HTTP-сервера

$ head -10 access.2014.08.14.log | cut -d ” ” -f 1,8,10 | sort | uniq

Показывает первые 10 строк из журнала access.2014.08.14.log, сортируя и исключая дубликаты, в формате “ip_клиента/доменное_имя_клиента, URL, HTTP-код”.

$ cat access.2014.08.14.log | cut -d ” ” -f 1,8,10 | sort | uniq > access_result.txt

Тоже самое но с выводом в файл C:\access_result.txt.

$ cat access_result.txt | grep /WAS/MEK | grep -v 200

Из файла access_result.txt выбрать все строки содержащие /WAS/MEK и не содержащие HTTP-код “200”.

$ cat access_result.txt | cut -d ” ” -f 1 | sort | uniq > access_result1.txt

Из файла access_result.txt вывести в файл access_result1.txt первый столбец (ip/доменное_имя), сортируя и убирая дубликаты.

Работа с сетевыми соединениями

$ netstat -a | grep 1414

Вывести все соединения, использующие порт 1414.

$ netstat -a | grep 1414 | grep -c ESTAB

Подсчитать количество соединений использующих порт 1414 и находящихся в состоянии ESTABLISHED.

Для мейнфрейма: вместо “|” следует использовать “!”

Обнуление файла большого размера

$ cat /dev/null > /var/log/reconnect.log

Файл reconnect.log будет очищен.

Высвободить неиспользуемую оперативную память

$ sync; echo 3 > /proc/sys/vm/drop_caches

Не сохранять команду в history

В файле .bashrc необходимо добавить:

$ HISTCONTROL=ignorespace

Теперь, если перед командой поставить пробел, команда не сохранится в history

Работа с командой sar

В режиме реального времени показывает загрузку CPU, 3 раза с интервалом в 1 секунду:

$ sar -u 1 3

Показывает загрузку CPU с определенного времени:

$ sar -u -s 14:00:00

В режиме реального времени показывает использование Memory, 3 раза с интервалом в 1 секунду:

$ sar -r 1 3

В режиме реального времени показывает использование Swap Space, 3 раза с интервалом в 1 секунду:

$ sar -S 1 3

Работа с командой pidstat

В режиме реального времени показывает использование CPU процессом (pid 6371), 5 раз с интервалом в 2 секунды:

$ pidstat -p 6371 -l 2 5

В режиме реального времени показывает использование Memory процессом (pid 6371), 5 раз с интервалом в 2 секунды. Cмотреть колонку RSS:

$ pidstat -p 6371 -l -r 2 5

В режиме реального времени показывает использование IO процессом (pid 6371), 5 раз с интервалом в 2 секунды:

$ pidstat -p 6371 -l -d 2 5

VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)
Метки: ,
Опубликовано в Разное

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Выбор языка: