Вы также можете немного улучшить вывод ps
.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Это сообщит ps
о необходимости синтаксического анализа вывода в соответствии с вашими требованиями.
Конечно, если вы не используете перенос слов, у вас проблема с отсутствием информации. Вам действительно нужно все это для всех процессов? Если да, откройте его в пейджере:
ps ww ${opts} | $PAGER
Если нет, укажите, что вы хотите видеть:
ps -o args= -p $pid
В качестве альтернативы вы можете явно сообщить ps
вашего терминала - width
:
man ps
...
w
Широкий выход. Используйте эту опцию дважды для неограниченной ширины.
-w
Широкий выход. Используйте эту опцию дважды для неограниченной ширины.
- ширина n
Установить ширину экрана.
Параметр - width
работает в точном соответствии с вашими запрошенными спецификациями без необходимости использования каких-либо дополнительных фильтров или вспомогательных процессов (которые, вероятно, только загромождают ваш -aux
вывод даже более). А с $ COLUMNS
, как показано выше и как указывает Стефан, он будет даже работать динамически.
Вероятно, стоит отметить, что люди часто пытаются добавить такие ненужные фильтры, чтобы они могли разместить | pipe
через другой фильтр для анализа вывода, который является также, скорее всего, будет ненужным. Конечно, под людьми я в основном имею в виду меня.
Операнд -o
utput, о котором я упоминал выше, позволяет фильтровать, какие столбцы отображаются в ps
, а при добавлении задания =
вы даже можете назвать столбец как вам будет угодно. Я оставляю назначение пустым и передаю ему target -p
rocess $ pid
, поэтому единственный вывод из ps
вообще - это $ pid
имя команды и ее аргументы
при вызове. А -o
едва ли поверхностно определяет, что ps
будет отображать, а что нет.Это направление, которое я бы порекомендовал вам выбрать, особенно через:
man ps
...
Чтобы увидеть каждый процесс в системе с использованием синтаксиса BSD:
ps ax
ps axu
Чтобы распечатать дерево процессов:
ps -ejH
ps axjf
Чтобы получить информацию о потоках:
ps -eLf
ps axms
Чтобы получить информацию о безопасности:
ps -eo euser, ruser, suser, fuser, f , comm, label
ps axZ
ps -eM
Чтобы увидеть каждый процесс, запущенный как root (реальный и эффективный ID) в пользовательском формате:
ps -U root -u root u
To просмотр каждого процесса в пользовательском формате:
ps -eo pid, tid, class, rtprio, ni, pri, psr, pcpu, stat, wchan: 14, comm
ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, pcpu, comm
ps -Ao pid, tt, user, fname, tmout, f, wchan
Распечатать только идентификаторы процессов syslogd:
ps - C syslogd -o pid =
Вывести только имя PID 42:
ps -p 42 -o comm =
О своих сомнениях:
syslog -ng (и большинство приложений для обработки журналов )по умолчанию используют порт 514 для передачи журналов по сети. Вам нужно либо изменить конфигурацию по умолчанию, чтобы использовать номера портов более 1024 (как на стороне клиента, так и на стороне сервера ), или дать разрешение syslog -ng на использование «системных портов».
Да, вам нужно разрешение на чтение журналов аудита. Поскольку журналы аутентификации МОГУТ содержать личную информацию, она доступна не для всех. Точный способ зависит от дистрибутива, но syslog -ng не требует каких-либо специальных разрешений выше «способен читать».
В качестве отправной точки я рекомендую вам прочитать "Руководство по администрированию" syslog -ng, оно также содержит примеры.