- 论坛徽章:
- 0
|
18可用积分
偶刚刚接触unix(用的是SUN OS,C Shell),没装sar,top之类的,只有prstat,vmstat之类的,偶潜水几天,看了这么多热心的朋友,先谢谢你们为偶这些菜鸟指路,现在老板下达任务,有几个问题请大家帮忙。新手没多少分,偶分期付吧哈哈
1.需要做一个查找某个目录下的core文件,把查找到的core的路径和名字,都写入表中,find查询出的如果是多个文件,就形成多条记录,偶不会写这种格式……也不清楚怎么把find的结果传输到sql中。
2.列出CPU占用率最高的10个进程的信息,包括PID,用户名,进程名,占用的内存,内存占用的比例,运行时间,该进程占用的CPU(顺便问一下,prstat列出的CPU比例是说的占用的多颗CPU的比例吗)的比例,,
该进程的执行文件名(包括路径),和一些我都搞不清的指标值(其他指标值老板不太关心哈哈),把这些信息写入表中。
3.跟2类似,列出内存占用率最高的10个进程的信息,包括PID,用户名,进程名,占用的内存,内存占用的比例,运行时间,该进程占用的CPU(顺便问一下,prstat列出的CPU比例是说的占用的多颗CPU的比例吗)的比例,,
该进程的执行文件名(包括路径),和一些我都搞不清的指标值(其他指标值老板不太关心哈哈),把这些信息写入表中。
4.给定一个进程名字列表这个名字列表是放在一个service_list文件中,格式如下:
service1
service2
……
如果发现哪个进程挂掉了,就把他自动重启起来
5.看到一些shell里if [ -ne]等形式的-ne -gl分别表示什么意思,看不懂,
第一帖,请大家帮忙,谢谢,大家也别忘了看奥运啊
顺便把写得获取CPU,内存,磁盘信息的SHELL贴一下,就是这种格式的
#!/bin/sh
# CPU
CPU_OUT=`vmstat 5 2 | sed -n '4p' | awk '{print $22}'`
#echo $CPU_OUT
# 内存
MEM_OUT=`vmstat 5 2 | sed -n '4p' | awk '{print $5}'`
echo $MEM_OUT
# 磁盘
DISK_OUT=`df -k | grep /d30 | awk '{print $5}'|sed 's/%//g'` #测试机无opadmin,所以用d30代替测试
echo $DISK_OUT
sqlplus -s user_test/user123@demo_db <<!
set echo off;
set heading off;
set serveroutput on
set timing on
set feedback off
-- CPU
insert into user_test.MONI_GATHER(MONTR_TYPE,MODULE_TYPE,MONTR_DESC,PARENT_PART_ID,SUB_PART_ID,CREATE_DATE,CONTENT_INFO,EXT1,EXT2,REMARKS)
values('HOST','CPU','CPU_IDLE',1001,10010001,sysdate,'${CPU_OUT}','','','');
-- mem
insert into user_test.MONI_GATHER(MONTR_TYPE,MODULE_TYPE,MONTR_DESC,PARENT_PART_ID,SUB_PART_ID,CREATE_DATE,CONTENT_INFO,EXT1,EXT2,REMARKS)
values('HOST','MEM','剩余内存',1001,10010002,sysdate,'${MEM_OUT}','','','');
-- disk
insert into user_test.MONI_GATHER(MONTR_TYPE,MODULE_TYPE,MONTR_DESC,PARENT_PART_ID,SUB_PART_ID,CREATE_DATE,CONTENT_INFO,EXT1,EXT2,REMARKS)
values('HOST','DISK','opcrm用户的磁盘剩余空间',1001,10010003,sysdate,'${DISK_OUT}','','','');
commit;
set feedback on
set heading on
set echo on
exit
!
[ 本帖最后由 sea_soft 于 2008-8-14 09:58 编辑 ] |
|