求助:关于shell 编程的问题

发布于 2022-10-01 03:21:17 字数 374 浏览 12 评论 0

请各位老师指点:我们正在做一个机群的进程管理系统,现期要求收集结点资源信息。大体思路如下:各结点程序定时收集cpu,内存和硬盘的使用情况,并将之发送到服务器程序的数据表中;服务器程序根据结点的信息,判断哪些cpu空闲(利用率小于50%),哪些忙(利用率大于50%),等等,并将之发送到进程控制数据库。小弟是linux生手,只懂得分析结构,却编不出程序,后悔当初没有好好学啊!!!!  哪位老师行行好,帮我一把吧。
分析如下:\proc下有 cpuinfo和meminfo两文件分别记录cpu和内存信息,但我不知道该如何定位筛选,如果可以,将所需信息远程拷贝到服务器端的表nodeinfo中的特定位置,服务器端程序秩序根据此信息作出逻辑判断,并将结果送到进程控制数据表中就ok了。
望回贴,不胜感激!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

不再见 2022-10-08 03:21:17

去shell版问,这种问题对他们说是小菜!
去吧!

夏末 2022-10-08 03:21:17

可以这样考虑一下
首先各个节点可以定时执行一个脚本去采集系统cpu,内存等信息,这个主要使用的shell方面知识为过滤文本的方式,例如awk,sed都可以,将得到的信息保存成文本文件(按照数据库的字段格式),定时通过ftp自动发送给控制服务器,控制服务器在接受目录中使用DBA用户导入接收到的文本文件(例如load等),这样基本上就可以实现你说的要求了。
关键的是两个shell脚本的编写,一个是采集,一个是加载数据库。根据你的要求不是很难,如果有问题,可以去shell版问问。
还有就是规划好定时采集和传送的时间以及出现故障时的判断。

泪意 2022-10-08 03:21:17

谢谢两位大侠指点,感激不尽!

若有似无的小暗淡 2022-10-08 03:21:17

楼主:
cpuinfo里面有cpu的使用情况从哪里看出?
下面是我的cpuinfo文件的内容,请指点
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 868.668
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 1730.15

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 868.668
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 1736.70

夏日浅笑〃 2022-10-08 03:21:17

写了两个脚本给你参考一下
#! /bin/sh
# filename: getmeminfo
info=$(cat /proc/meminfo | grep Mem
# echo $info
. parsing $info
#end
#chmod u+x getmeminfo

脚本二:
#! /bin/sh
# filename: parsing
echo $@
echo $0
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
#end

执行结果如下:
Mem: 525185024 517795840 7389184 44462080 155910144 132431872
./meminfo
Mem:
525185024
517795840
7389184
44462080
155910144
132431872

夜深人未静 2022-10-08 03:21:17

CPU的占用建议使用sar命令进行统计

我不在是我 2022-10-08 03:21:17

对不起啊,我弄错了,那该怎么办呢?

习惯成性 2022-10-08 03:21:17

我认为可以把主机的这些文件Mail给服务器,在服务器上写个程序,提取某些关心的字段,形成可导入数据库的文件导入到数据库中,定时比如每个小时执行这个程序,在用PHP写个个前台浏览的。

我关心的是收集了这些信息之后怎样利用他们来均衡你域的进程。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文