1

Я запускаю команду top чтобы увидеть подробности о конкретных процессах. Выходные данные передаются в grep следующим образом:

top -n 1 | grep jre

Выходные данные обычно составляют около 4 строк, и я хотел бы добавить к каждой строке префикс текущего времени, чтобы это было что-то вроде:

До:

2772 deleteme  20   0  2832 1156  872 R  2.0  0.1   0:00.01 top  

После:

13:46 25-08-2012 2772 deleteme  20   0  2832 1156  872 R  2.0  0.1   0:00.01 top  

2 ответа2

3

Посмотрите на команду ts из пакета moreutils :

NAME
       ts - timestamp input

SYNOPSIS
       ts [-r] [format]

DESCRIPTION
       ts adds a timestamp to the beginning of each line of input.

Например, вы можете использовать его как таковой:

$ top -n 1 | grep init | ts
aug 28 17:15:00     1 root      20   0 24448 2272 1340 S    0  0.1   0:01.07 init
1

Команда ps лучше подходит для такого рода задач. Попробуйте что-то вроде этого:

$ ps -ao bsdstart,fuser,pid,%cpu,%mem,args | grep jre

Со страницы руководства ps :

ps отображает информацию о выборе активных процессов. Если вы хотите повторное обновление выбора и отображаемой информации, используйте top(1).

В предложенной мной команде параметр -a указывает ps печатать процессы для всех пользователей. -o указывает формат вывода. В моем примере (снова со страницы руководства ps ):

bsdstart : time the command started.  If the process was
                             started less than 24 hours ago, the output format
                             is " HH:MM", else it is " Mmm:SS" (where Mmm is
                             the three letters of the month).  See also
                             lstart, start, start_time, and stime.

fuser    :  filesystem access user ID.  This will be the
                             textual user ID, if it can be obtained and the
                             field width permits, or a decimal representation
                             otherwise.
pid      :  a number representing the process ID (alias tgid).

%cpu     :  cpu utilization of the process in "##.#" format.
                             Currently, it is the CPU time used divided by the
                             time the process has been running
                             (cputime/realtime ratio), expressed as a
                             percentage.  It will not add up to 100% unless
                             you are lucky.  (alias pcpu).
%mem     :  ratio of the process's resident set size  to the
                             physical memory on the machine, expressed as a
                             percentage.  (alias pmem).

args     : command with all its arguments as a string.
                             Modifications to the arguments may be shown.  The
                             output in this column may contain spaces.  A
                             process marked <defunct> is partly dead, waiting
                             to be fully destroyed by its parent.  Sometimes
                             the process args will be unavailable; when this
                             happens, ps will instead print the executable
                             name in brackets.  (alias cmd, command).  See
                             also the comm format keyword, the -f option, and
                             the c option.
                             When specified last, this column will extend to
                             the edge of the display.  If ps can not determine
                             display width, as when output is redirected
                             (piped) into a file or another command, the
                             output width is undefined (it may be 80,
                             unlimited, determined by the TERM variable, and
                             so on).  The COLUMNS environment variable or
                             --cols option may be used to exactly determine
                             the width in this case.  The w or -w option may
                             be also be used to adjust width.

Вы можете изменить это в соответствии с вашими потребностями. Посмотрите на man ps и найдите "СТАНДАРТНЫЕ ФОРМАТЫ" (вы можете использовать поиск в стиле vi на страницах man, нажать «/» и ввести шаблон поиска, "n" перейдет к следующему совпадению).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .