04mrtg.php.html
来自「鸟哥LINUX 学习课本」· HTML 代码 · 共 1,026 行 · 第 1/4 页
HTML
1,026 行
<br><font color="#000000">以安装完 sysstat 套件后,产生的 /usr/bin/sar程序进行外挂程序的编写,我写了一个监测 CPU 的小程序,使用 bash 写的,可以参考看看:</font><table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root @tsaicpu]# vi mrtg.cpu</font><p><font size=-1 color="#FFFF00" face="SimSun">---- 档案开始----</font><br><font size=-1 color="#FFFFFF" face="SimSun">#!/bin/bash</font><br><font size=-1 color="#FFFFFF" face="SimSun"># 这个程序是用来侦测CPU 的小外挂程序!</font><br><font size=-1 color="#FFFFFF" face="SimSun"># 1. 开始使用sar 来监测 CPU 的 user 及 System 负载率</font><br><font size=-1 color="#FFFFFF" face="SimSun"> cpuusr=`/usr/bin/sar-u 1 3 | grep Average | awk '{print $3}'`</font><br><font size=-1 color="#FFFFFF" face="SimSun"> cpusys=`/usr/bin/sar-u 1 3 | grep Average | awk '{print $5}'`</font><br><font size=-1 color="#FFFFFF" face="SimSun"> UPtime=`/usr/bin/uptime| awk '{print $3 " " $4 " " $5}'`</font><p><font size=-1 color="#FFFFFF" face="SimSun"># 2. 列出四个数据(前两个为数字)</font><br><font size=-1 color="#FFFFFF" face="SimSun"> echo$cpuusr</font><br><font size=-1 color="#FFFFFF" face="SimSun"> echo$cpusys</font><br><font size=-1 color="#FFFFFF" face="SimSun"> echo$UPtime</font><br><font size=-1 face="SimSun"><font color="#FFFFFF"> echovbird.adsldns.org </font><font color="#FFFF00">(这里写你的主机名称)</font></font><br><font size=-1 color="#FFFF00" face="SimSun">---- 档案结束----</font><p><font size=-1 face="SimSun"><font color="#FFFFFF">[root @tsaicpu]# chmod 755 mrtg.cpu </font><font color="#FFFF00">(设定成可执行)</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @tsaicpu]# ./mrtg.cpu </font><font color="#FFFF00">(测试看可执行否)</font></font><br><font size=-1 color="#FFFFFF" face="SimSun">2.0</font><br><font size=-1 color="#FFFFFF" face="SimSun">5.4</font><br><font size=-1 color="#FFFFFF" face="SimSun">1 day, 22:30,</font><br><font size=-1 color="#FFFFFF" face="SimSun">vbird.adsldns.org</font></td></tr></table><li><font color="#000000">开始设定 mrtg 参数档:</font></li><br><font color="#000000">我的参数档有点像这样:</font><table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root @tsaicpu]# vi mrtg.cfg.cpu</font><p><font size=-1 color="#FFFF00" face="SimSun">---- 档案开始----</font><br><font size=-1 color="#FFFFFF" face="SimSun">### GlobalConfig Options</font><br><font size=-1 color="#FFFFFF" face="SimSun">### To getbits instead of bytes and graphs growing to the right</font><br><font size=-1 color="#FFFFFF" face="SimSun">WorkDir: /usr/local/apache/htdocs/mrtg/cpu/</font><br><font size=-1 color="#FFFFFF" face="SimSun">Language: big5</font><p><font size=-1 color="#FFFFFF" face="SimSun">Target[localhost]:`/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`</font><br><font size=-1 color="#FFFFFF" face="SimSun">MaxBytes[localhost]:100</font><br><font size=-1 color="#FFFFFF" face="SimSun">Options[localhost]:gauge, nopercent, growright</font><br><font size=-1 color="#FFFFFF" face="SimSun">YLegend[localhost]:CPU loading (%)</font><br><font size=-1 color="#FFFFFF" face="SimSun">ShortLegend[localhost]:%</font><br><font size=-1 color="#FFFFFF" face="SimSun">LegendO[localhost]:&nbsp; CPU 使用者负载;</font><br><font size=-1 color="#FFFFFF" face="SimSun">LegendI[localhost]:&nbsp; CPU 纯系统负载;</font><br><font size=-1 color="#FFFFFF" face="SimSun">Title[localhost]:CPU ?t???v</font><br><font size=-1 color="#FFFFFF" face="SimSun">PageTop[localhost]:<H1>VBird 主机 CPU 负载率</H1></font><br><font size=-1 color="#FFFFFF" face="SimSun"> <TABLE></font><br><font size=-1 color="#FFFFFF" face="SimSun"> <TR><TD>System:</TD> <TD>RedHat 6.1in Linux Kernel 2.2.19</TD></TR></font><br><font size=-1 color="#FFFFFF" face="SimSun"> </TABLE></font><br><font size=-1 color="#FFFF00" face="SimSun">---- 档案结束----</font></td></tr></table><li><font color="#000000">开始执行参数档:(一样,要执行三次以上)</font></li><br><font color="#3333FF" face="SimSun">/usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu</font><br> <li><font color="#000000">写入 /etc/crontab 当中:</font></li><br><font color="#3333FF" face="SimSun">*/2 * * * * root /usr/local/mrtg-2/bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu > /dev/null 2>&1</font><p><font color="#000000">这样就OK了,直接将 Web 指向 http://your.host.domain/mrtg/cpu/localhost.html</font></ol></ul><blockquote><font color="#000000">重点说完了!再来说说 sar 吧!基本上,sar 可以用来侦测很多的咚咚,例如:</font><ul><li><font color="#000000"><font face="SimSun">sar -u 1 5</font> :每一秒钟测一次cpu ,共计五次后算平均;</font></li><li><font color="#000000"><font face="SimSun">sar -r 3 3</font>:每三秒看一次实体与虚拟内存用量,三次后算平均!</font></li><li><font color="#000000">其它的功能有待你的发掘啰!</font></li></ul></blockquote><hr WIDTH="100%"><ul><li><a NAME="online"></a><font color="#000066">实时侦测在线人数</font></li></ul><ul><font color="#000000">如果您曾经上过<a href="http://ftp.nsysu.edu.tw/htdocs/mrtg/" target="_blank">中山大学的FTP 网站</a>的话,您会发现『</font><font color="#000099">咦!他们有侦测实时的上线人数(onlineusers)呢!</font><font color="#000000">』同样的,她们也是使用 MRTG 这一套相当漂亮的软件来达成这个目标!那,要如何达到这个目标呢?其实也是很简单,我们刚刚不是已经介绍了,</font><font color="#000099">mrtg 其实只要接受到 2 个数字就可以绘图了</font><font color="#000000">吗?那这里就给他两个数字就可以啦!两个数字从何而来?如果您知道netstat 这个指令的话,就会发现,当您下达 netstat -a 的时候,会有这个咚咚会出现:</font><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root @tsairoot]# netstat -a | more</font><br><font size=-1 color="#FFFFFF" face="SimSun">Active Internetconnections (including servers)</font><br><font size=-1 color="#FFFFFF" face="SimSun">Proto Recv-QSend-Q Local Address Foreign Address State</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:ftp *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:telnet *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:pop-2 *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:pop-3 *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:imap2 *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:smtp *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:www *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 tsai.adsldns.org:www 211.72.119.19:58298 SYN_RECV</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:mysql *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 0 *:netbios-ssn *:* LISTEN</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 57920 tsai.adsldns.org:www 211.75.193.100:2965 ESTABLISHED</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 57920 tsai.adsldns.org:www 211.75.193.100:2966 ESTABLISHED</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 57920 tsai.adsldns.org:www 211.75.193.100:2967 ESTABLISHED</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 57920 tsai.adsldns.org:www 211.75.193.100:2968 ESTABLISHED</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 57920 tsai.adsldns.org:www 211.75.193.100:2969 ESTABLISHED</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 1 tsai.adsldns.org:www 202.98.131.11:4374 FIN_WAIT1</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 1 tsai.adsldns.org:www 202.98.131.11:4404 FIN_WAIT1</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 1 tsai.adsldns.org:www 202.98.131.11:4413 FIN_WAIT1</font><br><font size=-1 color="#FFFFFF" face="SimSun">tcp 0 1 tsai.adsldns.org:www 202.98.131.11:4453 FIN_WAIT1</font><br><font size=-1 color="#FFFF00" face="SimSun">以下省略!</font></td></tr></table><p><font color="#000000">我们可以很清楚的发现:</font><font color="#000099">使用netstat 可以查到 WWW 的联机数目</font><font color="#000000">,那只要将这些数目作一些重复性分析,以去除重复的IP 网址后,不就可以知道以 WWW 方法上网联机的实时人数了嘛!这就是我们侦测的主要原理了!</font></ul><ul><font color="#000000">那要如何写这个侦测的批次档呢?以下就是鸟哥尝试写的一个批次档!你可以将一些批注符号取消,就可以知道为何这么写了:</font><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root @tsairoot]# vi mrtg.person.sh</font><br><font size=-1 color="#FFFF00" face="SimSun">档案开始:</font><br><font size=-1 color="#FFFFFF" face="SimSun">#!/bin/bash</font><br><font size=-1 color="#FFFFFF" face="SimSun"># 这个程序主要在计算有多少人以WWW 的方式联机进我们的主机!</font><p><font size=-1 color="#FFFFFF" face="SimSun"># 1. 计算联机的数目</font><br><font size=-1 color="#FFFFFF" face="SimSun">echo `netstat-a | grep www|awk '{print $5}'|sort | wc -l|awk '{print$1 - 1}'`</font><br><font size=-1 color="#FFFFFF" face="SimSun"># 底下在说明整个咚咚的列出(检查用) </font><br><font size=-1 color="#FFFFFF" face="SimSun"># netstat -a| grep www|awk '{print $5}'|sort| uniq </font><p><font size=-1 color="#FFFFFF" face="SimSun"># 2. 计算联机人数:</font><br><font size=-1 color="#FFFFFF" face="SimSun">echo `netstat-a | grep www|awk '{print $5}'|cut -d":" -f1|sort| uniq |wc -l | awk '{print$1 - 1}'`</font><br><font size=-1 color="#FFFFFF" face="SimSun"># netstat -a| grep www|awk '{print $5}'|cut -d":" -f1|sort| uniq </font><p><font size=-1 color="#FFFFFF" face="SimSun"># 3. 输出时间咚咚</font><br><font size=-1 color="#FFFFFF" face="SimSun"> UPtime=`/usr/bin/uptime| awk '{print $3 " " $4 " " $5}'`</font><br><font size=-1 color="#FFFFFF" face="SimSun"> echo$UPtime</font><br><font size=-1 color="#FFFFFF" face="SimSun"> echoyour.host.name</font><br><font size=-1 color="#FFFF00" face="SimSun">档案结束!</font></td></tr></table><p><font color="#000000">在上面的式子中,你可以执行出你所需要的咚咚啰!你也可以将<a href="../../download/index.php.html#mrtg.person.sh">mrtg.person.sh</a>这个档案捉下去直接修改!所需要变更的就只有 最后一行的 your.host.name 要改啰!改成您的主机名称吧!并且将这个档案改成可以执行的状态:</font><ul><font color="#3333FF" face="SimSun">chmod 755 mrtg.person</font></ul><font color="#000000">即可!</font></ul><ul><font color="#000000">接下来则是修改 mrtg 的参数档啦!我们可以建立一个名称为mrtg.cfg.person 的参数档,内容有点像这样!</font><br> <table COLS=1 WIDTH="80%" BGCOLOR="#000000" ><tr><td><font size=-1 color="#FFFFFF" face="SimSun">[root @tsairoot]# vi mrtg.cfg.person</font><br><font size=-1 color="#FFFF00" face="SimSun">档案开始:</font>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?