Полезные команды 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 -anp | grep 1414

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

# netstat -anp | grep 1414 | grep -c ESTAB

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

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

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

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

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

VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)
Tagged with: ,
Posted in Others

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <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="">

Language: