我是行政前线的新手。我有一个要求: 确定用户流程(有一个提交流程的用户列表),这些流程仍处于活动状态,并且已在3/4天前提交。
我的方法:
然而,我被困住了如何获得:提交3/4天前。我的代码等同于一天。
#!/bin/sh
rm -f psinfo.txt
rm -f psinfo_backdated.txt
for i in `cat user.lst `;
do
ps -ef | grep "$i" >> psinfo.txt
done
grep `date -d'2 day ago' +%b%d` psinfo.txt > psinfo_backdated.txt
我真的需要你对这位大师的评论和回答。
答案 0 :(得分:0)
如果有人可以告诉我们是否可以从像Less这样的文件中执行日期范围的grep 比4月27日格式。我可以让我的脚本工作。等待大师的 对此做出回应。
像Apr27
这样的时间格式不适合该任务,也因为它不包含年份,这在一年开始时是必需的。幸运的是,有一个更好的格式用于进程的开始时间。取代
ps -ef | grep "$i" >> psinfo.txt
与
ps -oetime=ELAPSED_TIME -ouser,pid,ppid,cpu,tty,time,args -u$i >>psinfo.txt
(您可能希望从第二个-o…
中删除不需要的字段)。然后从开始的时间以
[[天的 - 强>] 小时的 强>] 分钟的 :强> 秒
- 您可以使用awk
轻松过滤,e。 G。在3天或更多天前启动流程:
awk '{ if ($1~/-/ && int($1)>2) print }' psinfo.txt >psinfo_backdated.txt