Configuring Linux
Comments 88
-1
Хотел спросить — как проверить существования процесса по имени/части имени.
UFO landed and left these words here
0
ps aux | grep имя_процесса | grep -v grep
иначе выдавать будет еще и греп, который ищет данный процесс
0
ps aux | grep [и]мя_процесса

а вообще, более правильно использовать для этого ps -C имя_процесса, ну или awk, а то нагрепать можно много лишнего
0
еще есть вариант избавления от grep в выводе:
pgrep <часть имени процесса>
0
Не нужно давать малообдуманных советов

$ ps aux | grep mc | grep -v grep
non7top 6986 0.1 0.0 12284 3900 pts/1 S+ 20:23 0:02 mc

$ ps aux | grep mc
non7top 6986 0.1 0.0 12284 3900 pts/1 S+ 20:23 0:02 mc
non7top 8293 0.0 0.0 11856 3544 pts/4 S+ 20:51 0:00 mc grep

+1
[danial@cithadel ~]$ ps aux|grep mc
root 5814 0.0 0.0 50528 3488 pts/3 S+ 21:07 0:00 mc
danial 5822 0.0 0.0 10520 988 pts/1 S+ 21:07 0:00 grep mc
[danial@cithadel ~]$ ps aux|grep mc|grep -v grep
root 5814 0.0 0.0 50528 3488 pts/3 S+ 21:07 0:00 mc
Что не так?
0
разницу между 'grep mc' и 'mc grep' понимаем али нет? еще раз внимательно изучи мой предыдущий пост.
+1
Там есть race-condition, иногда ps axu | grep foobar процес самого grep-а не показывает.
0
Век живи — век учись. en.wikipedia.org/wiki/Command_line_arguments

ЗЫ отсутвие процесса самого grep нужно считать неумышленным недокопированием полного вывода. но там он абсолютно не важен, а важно немного другое.
+1
для тех кто до сих пор не понял
'grep -v grep' скрывает не только 'grep mc', но так же и любую другую команду где есть 'grep'. если имя пользователя будет содержать эту подстроку то вообще забавно будет. пример я уже привел.
0
Да, это нельзя упускать из виду. Нельзя забывать как работает фильтр, используя его, а то потом можно долго разбираться «что не так»… %)
0
Я обычно использую такую команду: ps aux | grep -i имя_процесса, если руками набирать и глазами смотреть. вариант предложенный Optik использую в скриптах.
+5
Я бы все-таки убрал из текста упоминание про «nmap localhost».
Гораздо разумнее воспользоваться помянутым «netstat -l», только добавить еще к нему:
* -A inet, чтобы выкинуть unix сокеты (а то их сильно много бывает)
* -p, чтобы видеть слушающий процесс (будут видны не все процессы, а только свои)
* -n, чтобы видеть цифири вместо буков там где порты (это по желанию)
0
Будут еще и установленные соединения.
А их на загруженном сервере может быть много.
UFO landed and left these words here
+1
netstat -tupan
главное — легко запоминается, хотя работает только на линуксе. для юниксов нужно убрать -p
+1
Да, еще с недавних пор использую atop, забыл упомянуть, правда он устанавливается отдельно, в то время, как top должен быть, пожалуй, в любой системе.
0
Практика показала, что в минимальном netinstall Дебиана его не было. Также там не оказалось killall и еще чего-то привычного :)
-1
Нестандартные наблюдения:
Кто занял порт и стал на нем слушать?
На самом деле процесс httpd или замаскированный shell на perll?
Какая наволочь грузит CPU на 100%?
Где делась память?
Кто свопит больше — httpd или mysqld?
Процессы-которые-сами-себя-удаляют-после-запуска и проблемы их нахождения через lsof

И прочие разные страшилки. Смотрите на лицензионных носителях сериал Сисадмины Хостенгофф тоже плачутъ. Официальный спонсор показа — Пяни. Реальне, сочне, настояще фрукте!
0
процесс — апач. перл это только его модуль, а значит показать его можно только встроенными в апач средствами и никак иначе. (например, используя server status)
+2
По-моему товарищ имел в виду нечто другое. А именно: смотрим нетстатом и видим, что на порту висит процесс httpd. Успокаиваемся и идём спать. Не подозревая о том, что на самом деле это не апач, а перл-скрипт с именем httpd, лежащий, к примеру, в хомяке. Вопрос состоит в том, как это определить.
0
[root@carrot stolen]# netstat -lptn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:42060 0.0.0.0:* LISTEN -

И он не всегда признается, к сожалению.
UFO landed and left these words here
-1
На каждый день? Не-не-не, вывод df-h я по крону проверяю =)
+1
Можно не выходя из top убить процесс, просто жмем k, а потом PID номер.
+3
Очень хорошо, что вы это описали.

Но всё же книга «Linux. Руководство системного администратора» в этом плане написана лучше. Извините за критику)

Дело в том, что начинающий системный администратор должен сначала понять принципы, на которых работает Linux.
А если использовать шаманские заклинания из двухсот букоф, которые рассказывают магические сведения — то при попытке понять, что это всё значит, волосы встанут дыбом. Так было у меня, так было у нескольких знакомых людей. Каждая новая команда вызывает культурный шок.

Поэтому изучение надо начинать с понимания «что» и «почему». Тогда все остальные вещи, типа расположения логов и мантры призыва netstat — будут очевидны и приятны. Каждая новая команда будет доставлять удовольствие, а весь процесс в целом — напоминать езду на дорогом хоошем автомобиле.
0
Абсолютно с Вами согласен! Совершенно! Только целевая аудитория, для которой я писал, не системные администраторы, а пользователи, которым приходится сталкиваться с базовыми задачами, но системно-сетевое администрирование для них не является профилирующей деятельностью. Могу привести примеры. :)
0
приведите, пожалуйста? я не троллю, правда интересно. вот зачем обычному пользователю может быть нужна команда ps в любом ее варианте?

есть такие предположения:

* этот «обычный пользователь» — уже не совсем обычный, а продвинутый. Он имеет на рабочем столе открытую консоль и знает разные умные команды.
* он не имеет возможности использовать графический режим. например, сервер очень слабый.
* управляет удаленно по SSH
* имеет какие-то умные скрипты по управлению процессами, которые написал кто-то другой.

и есть такая замена: ksysguard в графическом режиме, который заменяет эту, и еще пару десятков команд. Я настоятельно советую пользоваться ksysguard в графическом режиме — именно для этого она и писалась!

Просто если пользователю встретилась такая ошибка, что он вручную начинает отлаживать Ксорг… то через пару дней круглосуточного занятия этой познавательной задачей он рискует превратиться в нехилого такого сисадмина :)
0
Просто продвинутый пользователь, он же geek, или программист работает на портативном компьютере, а дома у него где-нибудь в кладовке стоит старая машина под многоцелевой сервер, который и файловым хранилищем и испытательным полигоном выступает. Жизнь усложняется, если эта железка видна в Сети…

Касательно конкретно ps. Довольно мощная программа, но не уверен, что нужно быть довольно продвинутым пользователем, чтобы иногда запускать консоль и что-то там набирать. Использование Linux это предполагает. Примерная ситуация была не так давно рассмотрена в блоге «Убунтариум».
0
а, ну у нас просто немного не соответствовали верхняя и нижняя планка «продвинутости».

я писал из предположения об основном пользователе Линукса, которого я поддерживаю: бухгалтерию и переводчиков. В их среде «продвинутым» считается тот, кто знает что такое «ip-адрес».

границы продвинутости приведены в соответствие.
+1
в заголовке у вас «стандРАтных». наверное имелось ввиду «стандАРтных».
UFO landed and left these words here
0
разница между pkill и killall в том, что
pkill foo убьет все что содержит в своем имени foo
а
killall foo убьет только все процессы foo
+1
Главное не скормить ему аргумент «-v» в ожидании вербозного вывода. Он по аналогии с grep-ом «-v» интерпретирует как «--invert-match».

Соответственно pkill -v foobar убъет почти все, на что у пользователя хватит прав.
+1
Сразу вспоминается, как мама в дестве говорила никогда не сидеть под рутом ;)
+1
pkill убивает процессы, имя которых соответствует отданному регекспу. То есть, «pkill it» будет убивать инит.
А убийство по точному имени — killall.
UFO landed and left these words here
0
уважаемые а не подскажете, в top и uptime есть пункт загрузки системы: load average, в нем как я понимаю показываются процессы ждущие своего выполнения, считаются все процессы ждущие выполнения или только активные и как вообще правильно интерпретировать полученные данные?
+1
интерпертировать так: если load average превышает число процессоров, в системе есть узкие места (система перегружена).
-1
не обязательно узкое место может быть и в других ресурсах. надо его искать
0
все правильно, только скорее ядер, а не процессоров
0
цифра — это среднее число процессов, которые хотят выполняться но ждут пока проц. освободится. желательно чтобы была меньше чмсла процессоров.
0
А возможно ли установить слежение за изменением файла и когда это происходит отследить процесс который это делает?

Если говорить конкретнее, на сайте очевидно сидит какой-то червь и систематически дописывает в индексные файлы всякую хрень, админы хоста морозятся как могут (
0
Спасибо, кое что новое узнал.

А как узнать сколько места занимает на диске директория с поддиректориями?
-2
Спасибо, кое что новое узнал.

А как узнать сколько места занимает на диске директория с поддиректориями?
UFO landed and left these words here
0
Спасибо сообществу за дельные дополнения и комментарии!
+2
iostat -x 1 — понаблюдать за дисками
iotop (нужен свежий Python и вообще надо ставить) — понять, кто много кушает дисковой подсистемы
free — проверить не только память, но и свап
smartctl — проверить S.M.A.R.T. состояние дисков
dmidecode — узнать кучу интересного о железе
ss (нужны установленные iproute2) — аналог sockstat из BSD, иногда работает быстрее и надёжнее netstat
mii-tool — узнать, на каких сетевых интерфейсах есть линк
ethtool — узнать не только есть ли линк, но и на какой скорости и ещё кое-что
0
показать память, процессор и многое другое с интервалом в 5 секунд
[alexbig@host ~]$ vmstat -S M 5
+2
обновлять вывод любой команды раз в полторы секунды:
watch -n 1.5 df -h
UFO landed and left these words here
UFO landed and left these words here
0
раз написали про cups стоит упоминуть и samba
в etc/samba/smb.conf обычно указывается путь к log file = /var/log/samba.log.%m

Only those users with full accounts are able to leave comments.  , please.