Я пишу сценарий оболочки, который запускает все текущие процессы и направляет их в grep, чтобы отфильтровать те, которые мне нужны.

Но мне также нужно, чтобы он дал мне метку времени, когда происходит ps или когда процесс запускается. Это не имеет значения, мне просто нужно время. Все процессы занимают доли секунды.

Моя команда такая:

ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID

Я пытался идти как

ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID, start=START

но это просто дает мне время, как hh:mm:ss . Мне нужно что-то более точное, чем это. Отметки времени идеальны.

Что я должен делать?

2 ответа2

1

Поскольку вам нужно более точное время, чем секунды, вы можете сгенерировать свою собственную метку времени с помощью:

date +%Y%m%d%H%M%s.%N

имейте в виду, что для самой даты требуется ~ .001 с (зависит от системы), поэтому наносекунды могут быть неправильным числом значащих цифр.

или вы можете посмотреть в /proc /$ THIS_PID /stat, используя stat, чтобы увидеть время начала /init, которое мы можем использовать:

stat -c %x /proc/1/stat

%x   Time of last access
%X   Time of last access as seconds since Epoch
%y   Time of last modification
%Y   Time of last modification as seconds since Epoch
%z   Time of last change
%Z   Time of last change as seconds since Epoch

2012-03-10 12:18:45.328784363 +0800

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

0

Попробуйте использовать ps -ef это должно дать дату и время начала

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