免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sea_soft
打印 上一主题 下一主题

请大家帮忙,shell文件和进程操作,搞定的话,国足就夺冠了 [复制链接]

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
11 [报告]
发表于 2008-08-14 09:18 |只看该作者
原帖由 sea_soft 于 2008-8-14 09:09 发表
ln-bes2% find ./ -name "db*"
./db.sh
./db.sql
可我如果想得到带全路径的文件名,该怎么做?谢谢
比如
/usr/myusr/beta/db.sh
/usr/myusr/beta/db.sql


find /usr/myusr/beta/ -name "db*"

论坛徽章:
0
12 [报告]
发表于 2008-08-14 09:22 |只看该作者
如果做了这道题国足能夺冠,我想这道题应该很多人都会帮你做了。
大家估计都在想,等国足夺冠那天,我就公布答案。

论坛徽章:
0
13 [报告]
发表于 2008-08-14 09:52 |只看该作者
原帖由 ly5066113 于 2008-8-14 09:18 发表


find /usr/myusr/beta/ -name "db*"

谢谢ly5066113,可我的脚本在某个目录下运行(目录不确定),/usr/myusr/beta/这个路径是个变量,该怎么解决呢
还有个问题:
比如我这么取得文件名
VAR_FILE=`find  -name "db*" `
那如果把他传入到下面的insert语句中呢,因为VAR_FILE的结果是数组,不会操作,还请多帮忙,再次谢谢老大和各位大大们,这个问题找了2天多了,没找到结果……

论坛徽章:
0
14 [报告]
发表于 2008-08-14 09:55 |只看该作者
xinyv老大,多谢捧场啊,偶小菜鸟一个,都没时间看国足了,只是梦想这一天,可偶怕等不到,因为这个问题搞不定,差不多就走人了……

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
15 [报告]
发表于 2008-08-14 09:58 |只看该作者
原帖由 sea_soft 于 2008-8-14 09:52 发表

谢谢ly5066113,可我的脚本在某个目录下运行(目录不确定),/usr/myusr/beta/这个路径是个变量,该怎么解决呢
还有个问题:
比如我这么取得文件名
VAR_FILE=`find  -name "db*" `
那如果把他传入到下面的 ...


#! /bin/sh

find $PWD -name "db*" | while read var
do
sqlplus -s  user_test/user123@demo_db <<!
set echo off;
set heading off;
set serveroutput on
set timing on
set feedback off
--文件名入库   
   insert into kf.MONITOR_GATHER(MONTR_TYPE,MODULE_TYPE,MONTR_DESC,PARENT_PART_ID,SUB_PART_ID,
   CREATE_DATE,CONTENT_INFO,EXT1,EXT2,REMARKS)               
   values('CORE','Core_KF','Core_KF',1001,10010008,sysdate,'${var}','','','');
----这后面还有会查找别的文件,也会照这种格式写入表中
set feedback on
set heading on
set echo on
exit
!
done

论坛徽章:
0
16 [报告]
发表于 2008-08-14 10:02 |只看该作者
多谢ly5066113老大,只是这样会不会登陆数据库频繁了些,还有,我还想继续查找别的文件或者查找别的占用CPU最多的进程信息,也一起insert到表里,“----这后面还有会查找别的文件,也会照这种格式写入表中”,就在这个位置,这样的话while里就不会写了

论坛徽章:
0
17 [报告]
发表于 2008-08-14 10:07 |只看该作者
题5是基础,可以自己学习
题4   cat service_list | while read processName
              do
                    ps -ef | grep $processName| grep -v grep
                    if [ $? -eq 1 ];then
                          重启进程processName
                    fi
              done   然后在crontab中设定每隔多长时间检查一遍就行
题3和2思路都一样,我的solaris
ps -eo,pid,pcpu,user,vsz,args  | sort +1rn | nawk '{if(NR<11) print $0}'
题1通常的做法,我是先把查询到的信息生成insert语句写到一文件,然后sqlplus写入库中

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
18 [报告]
发表于 2008-08-14 10:10 |只看该作者
原帖由 sea_soft 于 2008-8-14 10:02 发表
多谢ly5066113老大,只是这样会不会登陆数据库频繁了些,还有,我还想继续查找别的文件或者查找别的占用CPU最多的进程信息,也一起insert到表里,“----这后面还有会查找别的文件,也会照这种格式写入表中”,就 ...


如果你觉得和数据库的交互过于频繁,那么你可以把你想要的信息先都整理好,然后一次入库。

find $PWD -name "db*" | while read var
do
   echo "insert into kf.MONITOR_GATHER(MONTR_TYPE,MODULE_TYPE,MONTR_DESC,PARENT_PART_ID,SUB_PART_ID,
   CREATE_DATE,CONTENT_INFO,EXT1,EXT2,REMARKS)               
   values('CORE','Core_KF','Core_KF',1001,10010008,sysdate,'${var}','','','');" >> tmpfile
done

然后把其他想要的信息也变成SQL,生成到tmpfile

最后:

cat tmpfile | sqlplus -s  user_test/user123@demo_db

论坛徽章:
0
19 [报告]
发表于 2008-08-14 10:50 |只看该作者
感谢上面两位老大,感激不尽,还有个小问题,每次把SQL输入到tmpfile时,都是在后面追加的,我执行这个脚本时这样做,每间隔5分钟执行一次,所以每次执行时,需要把以前的tmpfile清空,清空这个文件的shell命令该怎么写,谢谢

论坛徽章:
0
20 [报告]
发表于 2008-08-14 10:54 |只看该作者
执行这行时cat tmpfile | sqlplus -s  user_test/user123@demo_db
也不想输出

1 row created.


1 row created.


1 row created
……
这样的日志
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP