首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单模型,实现的客户机监控

## 简单模型,实现的客户机监控 ##

```

问题来源,受朋友所托,实现一个设备监控的脚本,其实是有些成熟的软件可以用的,但是考虑到最近在学linuxshell脚本,而且项目要求只是演示目的,所以就自己来实现了。

```

** 基本的思路 **

> 1.设置定时脚本,通过shell脚本导出服务器的状态信息

> 2.状态改变的时候,通过http协议将信息回传到服务器端

> 3.服务器接收到状态后,更新状态并进行数据的可视化

### 定时监本 ###

```

本打算使用定时脚本的,但是发现crontab的最小粒度是分钟,所以放弃,改用延迟的机制。设置开机自启脚本,然后在脚本中获取客户机的状态,之后回传。

```

定时监本实现:

```

#!/bin/bash

while true

do

sleep 2

command#在这里面我们获取服务器状态,并且导出到csv

done

```

获取ip地址:

```

ifconfig | grep 'inet'| grep -v '127.0.0.1' | cut -d: -f2 |awk ''

notice:

grep:(文本查找)

-v 是过滤掉某些行,这里我们把环回地址过滤掉

cut:(文本切分)

-d 是指定分隔符

-f 是取那一部分的意思,f2是取第二部分的意思

awk:(进行文本处理)

默认是以空格来分隔的,切割后$0代表所有域,$1代表第一个域

```

查看内存情况:

```

获取总内存大小,空闲内存和可利用内存大小

cat /proc/meminfo | grep -E "MemTotal|MemFree|MemAvailable" >a.txt

```

查看各个分区使用情况

```

df -lh > a.txt

```

查看cpu使用情况

```

top -n 1 | grep Cpu

```

------

我们将信息发送到服务器端

```

curl命令

我们将所有的文本信息发送到服务器端,我们使用curl发出post请求:

curl -d "param1=value1¶m2=value2" url

```

完整脚本:

```

#!/bin/bash

while true

do

cat /proc/meminfo | grep -E "MemTotal|MemFree|MemAvailable" >a.txt

df -lh >> a.txt

top -n 1 | grep Cpu >>a.txt

info=$("cat a.txt")

curl -d "info=$" http://127.0.0.1

sleep 2

done

```

## 服务器端 ##

```

使用了Django,写一个controller,等待客户端传数据上去,然后接收数据,并且传入数据库中。

```

伪代码:(鄙人不会Django)

```

def getInfo():

ip=

mem=

cpuinfo=

入库

之后在前端进行可视化。

```

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180503G173QY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券