OpenResty查询Linux VPS主机流量

事情是这样的,我买了vps,每个月流量不是很多,我就想看看用了多少流量。但是我又不想去主机的后台查,我还不想用那些监控软件,优点小题大做了,于是我就想弄个脚本,然后openresty读出来,我没事看眼。

获取流量数据

vps的操作系统是Centos6,用shell命令或者是读取某个文件获取

可以读下面两个文件,venet0是网卡名

[root@CT1391 ~]# cat /sys/class/net/venet0/statistics/rx_bytes
2300558468
[root@CT1391 ~]# cat /sys/class/net/venet0/statistics/tx_bytes
2111210364
在lua中我们就可以直接读取文件并得到网卡的流量值了,剩下的就是格式化并输出就好了。

lua脚本

lua读取网卡数据并显示,还需要一个每月清零的动作(一般都是重启网卡,没有找到其他法子,麻烦点就是每个月初记录下来,自己计算当月)。

nginx配置部分

server {
        listen       80;
        server_name  localhost;
    lua_code_cache off;

    location /status {
      default_type text/html;
      charset utf-8;
      content_by_lua_file /etc/nginx/lua/tstatus.lua;
    }
}
部署的时候记得把 lua_code_cache 开启了。

tstatus.lua

local io = require "io"
local math = require "math"

-- 改成自己的网卡和总量
local fname = "eth2"
local month_flow = "250G"

local function get_value(v)
  local file = io.open("/sys/class/net/"..fname.."/statistics/"..v.."_bytes")
  local value = file:read()
  file:close()
  return value
end

local function round(num, dip)
  return tonumber(string.format("%."..(dip or 0).."f", num))
end

local function flow_format(v)
  local v = tonumber(v)
  if v < 1024 then
    return v.."byte"
  elseif v < 1024*1024 then
    return round(v/1024.0, 2).."Kb"
  elseif v < 1024*1024*1024 then
    return round(v/1024.0/1024.0, 2).."M"
  elseif v < 1024*1024*1024*1024 then
    return round(v/1024.0/1024.0/1024.0, 2).."G"
  end
end

local rx = get_value("rx")
local tx = get_value("tx")
local total = rx + tx

ngx.say("您本月可用的总流量是"..month_flow.."<br>")
ngx.say("RX:"..rx.." -> "..flow_format(rx).."<br>")
ngx.say("TX:"..tx.." -> "..flow_format(tx).."<br>")
ngx.say("Total:"..total.." -> "..flow_format(total))
ngx.exit(200)
测试

用curl测试,在浏览器中也是可以正常使用的哈,如果想要高的看起来高大上,可以弄一个饼图或者是仪表盘,然后用json获取流量值就行了。

[root@orangleliu lzz]# curl http://192.168.59.104/status
您本月可用的总流量是250G<br>
RX:3412800496 -> 3.18G<br>
TX:61802720 -> 58.94M<br>
Total:3474603216 -> 3.24G
先这么着,下个月1号先把累计的流量记录下来,弄个持久化和计算当月的流程吧。。

时间: 2024-10-11 13:27:10

OpenResty查询Linux VPS主机流量的相关文章

Linux VPS主机MYSQL数据库备份的4个方法

从虚拟主机过度到VPS之后,一般的站长可能会感觉到运维时间成本还是比较大的,虽然有些时候便宜VPS对比虚拟主机还稍许便宜,但是VPS在运维的时候是比虚拟主机操心一些.比如在VPS维护.备份数据方面,在没有使用定期自动备份功能而是用手工备份,备份周期应该比虚拟主机缩短很多.对于网页文件,我们可以通过压缩打包FTP下载的方式搞定,MYSQL数据库的备份需要格外的小心,一旦备份失误缺失,然后真需要还原恢复的时候可能会造成很大的损失. 下面老左整理大部分用户比较常用的Linux VPS主机网站环境MYS

Linux VPS主机网站数据库、文件自动定时备份Dropbox网盘的方法

无论我们是选择月付10美金,还是年付10美金的VPS.服务器,无论我们选择成立3个月的主机商,还是选择成立30年的主机商,只要我们一旦选择使用且用于存储有用的数据,比如网站.我们都需要时刻准备保管和备份数据,要明白数据的重要性.我们可以选择定期手工复制备份至本地,也可以选择利用有些主机商提供的快照备份或者付费备份服务.   在这篇文章中,老蒋将会继续折腾关于Linux VPS主机环境中网站文件和数据库备份的又一个方法,备份至DropBox网盘中.我们很多朋友也应该有所了解这个海外的网盘,算是做的

AppNode付费Linux VPS主机Web面板安装及简单体验记录

Linux VPS主机架设网站对于很多新手朋友来说,且习惯用虚拟主机的用户可能还是更希望有可视化的WEB面板管理网站比较方便,至少能亲眼看到菜单.管理网站,这样显得踏实一点.于是会使用到一些免费.付费的Web面板,且国内.国外有很多面板可以使用,鉴于操作的习惯度以及语言的熟悉度,还会偏向于使用中文面板居多.   我们熟悉的Web面板包括WDCP.AMH.LuManager.VPSMate等等.今天老左要分享的就是当初是VPSMate免费面板的,后来停滞不更新,且重新架构AppNode名称的面板一

Linux VPS主机定时自动备份网站及MYSQL数据库的脚本

从我们开始学习建站开始,不论我们是用免费的虚拟主机,还是省吃俭用购买的付费主机,以及我们在更大的项目需要转向VPS或者服务器存储:不论我们是不是技术科班出身,还是跟老左一样,看到网友们都有自己的网站于是热情澎湃的也搭建一个玩玩:不论我们的网站是大还是小,有盈利还是没有盈利,都要学会基本的自我维护,尤其是网站数据的备份.   我们不要过分的依赖和信任主机商给我们提供的备份,即便我们购买的很牛.很贵的服务商的产品,他们也可能会由于各种的可能性导致数据丢失或者奔溃的情况,我们可以选择定期手工备份或者用

Linux VPS主机修改DNS地址解决无法远程wget文件问题

应该有很多网友会跟老左一样,比如在开通VPS之后会很习惯的直接安装需要的环境(一般都是这样的),但是可能因为我们需要wget下载的脚本数据源的地址问题,不能确保直接达到Linux VPS主机服务器的网络是畅通和稳定的,会导致我们在安装部署环境的时候出现安装不完整.有些文件无法完全下载.   一般情况下,我们只需要修改VPS主机的DNS就可以解决这个问题.比如直接修改当前VPS主机的/etc/resolv.conf文件中的DNS为8.8.8.8.8.8.4.4这一组DNS保存后就可以解决问题.但是

Linux VPS主机挂载未用数据盘且指定WDCP面板安装数据盘目录

般我们购买Xen VPS之后会直接登录ROOT然后安装面板或者一键包建站,可能网站数据小的时候或者开始阶段发现不了问题,随着时间的推移我们网站数据会逐渐的增加,然后会出现各种问题原来数据盘占满,检查发现我们才用到10G左右就占满磁盘,但我们购买的VPS可能会有50GB或者30GB,也就是说还有20GB或者40GB没有加载到数据盘中. 在"完整Linux VPS挂载未使用硬盘教程方法"文章中采用的是分卷挂载的方法,说实话稍微比较复杂,对于老左这样的用户也感觉特别繁琐,在这篇文章中老左分享

linux VPS主机上备份网站和数据库的方法_Linux

今天介绍一下简单的方法为自己的VPS备份. 1.使用putty登录VPS,这里不多介绍了. 2.备份网站目录: [root@www ~]# cd /web/www //进入相应的目录 [root@www www]# tar zcvf vps.tar.gz vps //使用tar打包且压缩vps文件夹,压缩后的文件名为:vps.tar.gz [root@www www]# 3.备份数据库: 方法一:使用PHPmyadmin备份数据库 方法二:使用mysqldump定时自动备份数据库 [root@w

3款Linux VPS主机FTP文件管理软件

作为VPS操作高手,笔者是见过这样的人才,一人同时操作维护十几个VPS,而且都是用SSH操作,不用FTP作为文件管理,即便要在本地修改文 件,也是用命令传上VPS的.从此笔者就非常的羡慕这样的才人,要是笔者也能学会一招半式之后,没事也打开SSH操作一把,可以装牛人.但是目前还没有达 到这样的牛人程度,有些时候还是需要用到FTP软件文件的.比如修改某些参数后传到空间中. 笔者也相信很多新手朋友跟我一样,全部用VI操作文件管理不是太习惯,还是用FTP习惯一些,于是我们可以使用下面笔者用过的FTP管理

修改Linux VPS主机已挂载硬盘文件夹目录的配置教程

今天上午有网友购买的某鸟云主机产品,因为系统安装后默认自动挂载的目录是data目录,而这位朋友则需要安装WDCP面板,理论上也可以在面板后台指定目录,但是他一定要按照官方的目录WWW挂载.于是帮助他处理后可以直接可以修改挂载目录解决已有目录的更换过程.   第一.理论上的步骤方法   理论上这样的操作方法网上也有很多,我们只需要创建一个需要挂载的目录,然后将已有挂载的目录卸载掉,然后重新到新的目录中挂载就可以解决问题.   1.新建www目录    代码如下 复制代码 mkdir /www