当前位置:首页 > CentOS系统状态查看
八、 网页显示
36) 如果需要将多台服务器的状态信息收集到一台服务器上,并能够通过网页查看,则
需要准备一台http服务器,在服务器上,检查是否安装了httpd,如果没有安装则通过yum开始安装,然后启动服务,配置防火墙 rpm -qa | grep -q httpd || yum -y install httpd service httpd restart chkconfig httpd on
iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT service iptables save
37) 在被监控端,需要使用scp命令,将生成的txt文档拷贝到http服务器上,但是scp
拷贝时需要输入http端密码,这里推荐使用expect脚本来解决 检查是否安装了expect,如果没有安装则通过yum开始安装 rpm -qa | grep -q expect || yum -y install expect vi /root/status.sh 输入以下内容 httpip=101.4.63.5 # http服务器IP地址 password=Aa12345
# http服务器root密码 Time=$(date +%T) # 获取当前时间
RX0=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F \# 获取接收字节数
TX0=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F \# 获取发送字节数 sleep 1s # 等待1秒
RX1=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F \# 再次获取接收字节数
TX1=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F \# 再次获取发送字节数
RX=$(awk 'BEGIN{printf \# 两次获取的接收字节数相减除以1024等于流入速率Kbps TX=$(awk 'BEGIN{printf \# 两次获取的发送字节数相减除以1024等于流出速率Kbps
Cpu=$(top -bn 1|grep Cpu|awk '{print $5}'| awk -F \# 获取Cpu利用率值
Mem=$(free | sed -n 2p | awk '{printf \# 获取内存利用率值
Disck=$(df -P | sed -n '1!'p | awk '{a+=$2} {b+=$3} END {printf \# 获取磁盘利用率值 Day=$(date +%F)
9
# 获取当前日期
Ip=$(/sbin/ifconfig eth0 | grep Bcast | awk '{print $2}' | awk -F \# 获取本机IP
ls ./ | grep -q $Day || mkdir ./$Day
# 建立当天文件夹(如果没有则建立) ls ./ $Day | grep -q $Ip || touch ./$Day/$Ip.txt # 建立本机IP对应的文件(如果没有则建立) cat ./$Day/$Ip.txt | grep -q Cpu && echo -e
\报告\\n时间\\t\\tCpu利用率 \\t内存利用率\\t磁盘利用率\\t流入速率Kbps\\t流出速率Kbps\\n$Time\\t$Cpu\\t\\t$Mem%\\t\\t$Disck%\\t\\t$RX\\t\\t$TX\# 向文件里写入内容 expect < # 使用expect命令来执行linux下的命令行交互任务,解决scp需要输入密码的困难 spawn scp -r ./$Day/ root@$httpip:/var/www/html/ # 使用scp将文件夹拷贝到http服务器上 expect { \ { send \ expect \ } # 如果需要输入yes/no,则输入yes和回车,如果需要输入password,则输入密码 \{ send \} 如果只需要输入password,则输入密码 } expect \expect eof # 如果得到100%,则结束expect EOF 使用计划任务 echo \ sh /root/status.sh > /dev/null 2>&1\ >>/var/spool/cron/root 38) 再回到http服务器上,配置html脚本 vi /root/html.sh Day=$(date +%F) echo \查看\for ip in $(ls -l /var/www/html/$Day/*.txt | awk '{print $9}' | awk -F \\do echo \查看\ 10 done 使用计划任务,每天0点1分执行一次即可 echo \ 1 0 * * * sh /root/html.sh \ >>/var/spool/cron/root 九、 安装使用 39) http端 rpm -qa | grep -q wget || yum -y install wget wget -P /root http://www.cloud.edu.cn/go-http.sh sh /root/go-http.sh cat /root/go-http.sh rpm -qa | grep -q httpd || yum -y install httpd # 检查是否安装了httpd,如果没有安装则通过yum开始安装 service httpd restart chkconfig httpd on iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT service iptables save rpm -qa | grep -q ntpdate || yum -y install ntpdate ntpdate time.nist.gov # 检查是否安装了ntpdate,如果没有安装则通过yum开始安装,并与国际时间做同步 rpm -qa | grep -q wget || yum -y install wget # 检查是否有wget,没有则通过yum安装 wget -P /root http://www.cloud.edu.cn/go-html.sh # 下载脚本 echo \ sh /root/go-html.sh \ >>/var/spool/cron/root # 使用计划任务,每天0点1分执行一次即可 echo “等客户端配置完毕后,请先执行sh /root/go-html.sh一次,后期计划每天执行一次” cat /root/go-html.sh Day=$(date +%F) # 将当前日期写入变量Day里面 echo \查看\# 将当天产生的报告html,写入首页index.html for ip in $(ls -l /var/www/html/$Day/*.txt | awk '{print $9}' | awk -F \\do echo \查看\done # 将当天产生的报告txt目录,写入当天报告html 40) 被监控端: rpm -qa | grep -q wget || yum -y install wget wget -P /root http://www.cloud.edu.cn/go-client.sh 11 sh /root/go-client.sh cat /root/go-client.sh rpm -qa | grep -q expect || yum -y install expect # 检查是否有expect,没有则通过yum安装 rpm -qa | grep -q wget || yum -y install wget rpm -qa | grep -q ntpdate || yum -y install ntpdate ntpdate time.nist.gov # 检查是否安装了ntpdate,如果没有安装则通过yum开始安装,并与国际时间做同步 # 检查是否有wget,没有则通过yum安装 wget -P /root http://www.cloud.edu.cn/go-status.sh # 下载脚本 echo \ sh /root/go-status.sh > /dev/null 2>&1\ >>/var/spool/cron/root # 使用计划任务,每天10分钟执行一次 echo “请先执行sh /root/go-status.sh一次,后期每10分钟执行一次” cat /root/go-status.sh httpip=101.4.63.5 # http服务器IP地址 password=Aa12345 # http服务器root密码 Time=$(date +%T) # 获取当前时间 RX0=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F \# 获取接收字节数 TX0=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F \# 获取发送字节数 sleep 1s # 等待1秒 RX1=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F \# 再次获取接收字节数 TX1=$(/sbin/ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F \# 再次获取发送字节数 RX=$(awk 'BEGIN{printf \# 两次获取的接收字节数相减除以1024等于流入速率Kbps TX=$(awk 'BEGIN{printf \# 两次获取的发送字节数相减除以1024等于流出速率Kbps Cpu=$(top -bn 1|grep Cpu|awk '{print $5}'| awk -F \# 获取Cpu利用率值 Mem=$(free | sed -n 2p | awk '{printf \# 获取内存利用率值 Disck=$(df -P | sed -n '1!'p | awk '{a+=$2} {b+=$3} END {printf \# 获取磁盘利用率值 Day=$(date +%F) 12
共分享92篇相关文档