LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 789|回复: 8

记录日志 ?

[复制链接]
发表于 2004-6-30 19:22:47 | 显示全部楼层 |阅读模式
我想将应用程序的启动,过程,进程数,进程名字,关闭,时间等自己写成日志,如何使用sh来进行这一方法

如个简单的,先不理xmms有没日志,记录日志如下

我启动xmms的时间,持续多久,进程,最大使用cpu多少,内存多少
关闭时间

能不能用sh写这样的脚本,是不是为难大家了 ? 我被日志烦死了
老觉得linux对服务的日志特别好,对应用程序日志概念一点都不理解 ?
发表于 2004-6-30 20:44:40 | 显示全部楼层
用ps,top等命令
 楼主| 发表于 2004-6-30 21:00:29 | 显示全部楼层
如何将这些出来的资料统计结合起来 ?
发表于 2004-6-30 21:29:18 | 显示全部楼层
那就需要你掌握grep+sed+awk+shell+more command啦 ;)
看一看置顶的精华和入门教程,会让你学到很多有用的知识!
比如用awk输出xfs进程的详悉信息

  1. /home/lee #top -n1|awk '/PID/;/xfs/'
  2.   PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
  3.   952 xfs       16   0 13680  11M   572 S     0.0  4.7   0:21   0 xfs
复制代码

这样的 话,你就可以找到你需要的信息,然后在过滤处理
 楼主| 发表于 2004-7-1 01:03:32 | 显示全部楼层
你可以写个简单的例子给我参考一下吗?我没学过sh

比如xfs的记录,如何记录它开启并关闭的时间和进程到某个文件里去 ?

希望你可以帮到我,谢谢
发表于 2004-7-1 02:10:56 | 显示全部楼层
举个简单的例子吧
现在有这么一个进程sleep

  1. /home/lee/test #ps -e|grep sleep
  2. 4580 pts/1    00:00:00 sleep
复制代码

这是他的详悉信息:

  1. /home/lee/test #ps -aux|grep sleep
  2. lee       4580  0.0  0.2  4720  520 pts/1    S    02:03   0:00 sleep 4000
复制代码

现在要取他的PID和START到文件log:

  1. /home/lee/test #ps -aux|awk '/^USER/;/sleep/'|grep -v awk|awk '{print $11,$2,$9 >"log"}'
复制代码
看log文件里有了什么?
/home/lee/test #cat log

  1. COMMAND PID START
  2. sleep 4580 02:03
  3. #进程名 进程号  启动时间
复制代码

P.S:这只不过是个举例,理解了这些命令的用法和用意,自然对你有帮助!如果
不是很理解的话,还是那句话--先看入门的教程和论坛的精华贴
 楼主| 发表于 2004-7-1 03:14:02 | 显示全部楼层
真的谢谢你,还有一个问题是如何知道进程启动或是结束的时间 ?

麻烦你,非常感谢你
发表于 2004-7-1 03:51:21 | 显示全部楼层
上述方法可以取得进程启动时间,这里就不说了
而进程结束时间,可以写个脚本放在后台执行,设计成每秒监测一下某个进程是否存在,如存在则sleep,否则,退出循环并把时间取出,这个时间就应该是这个进程退出的时间,相差也就1秒吧,要看你sleep N的这个N的值!比如:脚本大致如下:
  1. while true;do
  2.         if ps -e|grep -q 进程名;then
  3.                 sleep 1
  4.         else
  5.                 endtime=$(date +%T);break
  6.         fi
  7. done
  8. echo "结束时间:$endtime"
复制代码

这些基础的shell知识,还是多看看置顶的教程和精华贴吧!
发表于 2004-7-1 04:26:42 | 显示全部楼层
嗯。如果想再精确点,shell还有usleep,百万分之一秒。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表