2017-07-18 50 views
0

如果我运行此命令可以用ps输出做日期数学吗?

ps aux | grep -ie ff1 | awk '{print $2 , $9 , $(NF-0)}' 

我得到这样的结果:

7019 12:33 /var/www/html/tv1/video1.m3u8 
13374 17:13 /var/www/html/tv1/asdas.m3u8 
15001 05:58 /var/www/html/tv1/dfwef.m3u8 
15021 05:58 /var/www/html/tv1/werwe.m3u8 
15200 11:45 /var/www/html/tv1/2fsdfsf.m3u8 

在各行,以便第二个字是当过程开始 那么有没有办法可以计算出的时间与

时间
date +%H:%M - awk '{print $9}' 

这样我就可以知道多少时间每个proccess它运行


我想结果是这样的:

02:20 7019 12:33 /var/www/html/tv1/video1.m3u8 

(这意味着,在12:33开始proccess 7019已经运行了2小时和20分钟)

+0

个人而言,我根本不会使用'ps',但是会直接从procfs中提取出纪元时间;从当前历元时间减去,并且您有运行时间的秒数。 –

+1

......当你的脚本在午夜之后运行并且进程在该边界之前启动时,当你遇到像情况一样的情况时,时期也是相当少的。 –

+0

也许需要这样的:ps -o etime = -p“PID数字示例awk'{print $ 2' – arpak

回答

1

可以使用以下命令。第一个给出特定的PID,第二个给所有的过程。

ps -o etime= -p <PID> 

ps -eo pid,etime 
+0

如何在我的ps aux |中执行这个命令grep -ie ff1 | awk'{print $ 2,$ 9,$(NF-0)}' – arpak

+0

与https://stackoverflow.com/questions/14652445/parse-ps-etime-output-and-convert-it-into-seconds结合转换以秒为单位:-) – cmbuckley

+0

ps aux | grep -ie ff1 | awk'{print $ 2,$ 9,$(NF-0)}'| ps -o etime = -p 这样的事情有可能吗? – arpak

0

这应该给你想要的东西 - 经过时间,PID,和开始时间:

$ ps -o etime,pid,bsdstart,cmd 
    ELAPSED PID START CMD 
     00:05 25980 18:33 bash 
     00:00 26019 18:33 ps -o etime,pid,bsdstart,cmd 

(我第二@CharlesDuffy's sentiment,你一定要尝试解析这个输出。)

+0

如何在矿井命令ps aux |中执行grep -ie ff1 | awk'{print $ 2,$ 9,$(NF-0)}' – arpak

+0

你是什么意思,@arpak? – l0b0

+0

我需要得到如下结果:02:20 7019 12:33 /var/www/html/tv1/video1.m3u8 (这意味着在12:33开始的进程7019已经运行了2小时20分钟) – arpak

相关问题