lxhao61 / logv2traffic

一个简单的v2ray流量统计程序,用python实现。 程序运行之后,每5分钟统计一次v2ray的流量,记录在db.json。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logv2traffic

一个简单的 v2ray 流量统计程序,用 python 实现。

程序运行之后,每小时统计一次 v2ray 的流量,记录在 db.json。

环境 & 安装

Ubuntu 18.04.3 LTS / Python 3.6.9 / pip3 9.0.1

git clone https://github.com/caster8013/logv2traffic.git
cd ./logv2traffic

python3 -m venv .ven
. .ven/bin/activate

pip3 install -r requirement.txt
chmod +x app.py

运行

由配置文件 main.json 生成数据库文件 db.json

db.json 包括 users 表,记录用户信息;用户的 email 表,存储用户流量统计;进程表,用来记录进程流量。email 表、进程表中,包括每 5 分钟统计一次的流量数据,分为 uplink 和 downlink 两部分,单位为字节(Byte)。

main.json 包括用户信息(email, uuid,所在进程),由 v2ray 的 config.json 生成,格式如下:

{
  "cas": [
    {
      "email": "novah",
      "id": "7f539fee-3f15-46b4-84fc-a00310eb50da"
    },
    {
      "email": "david",
      "id": "8890046b-9472-48ea-add0-89af164b7edd"
    }
  ],
  "ray": [
    {
      "email": "luke",
      "id": "60dcbc2e-febc-47a0-848a-032840d9973d"
    }
  ]
}
命令行运行
python util/init_db.py
python ./app.py

每次新加入用户,更新 main.json 之后,再次运行上面命令行,可以更新 db.json。 由 main.json 生成 db.json 的步骤并不是必需。没有的话,程序依然可以记录 v2ray 的流量,只是 users 表中没有 path 和 uuid。

添加 systemctl 服务,让脚本以服务的方式运行。
# 更正by5minutes.service中路径之后,运行下面命令
sudo mv by5minutes.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start by5minutes.service
sudo systemctl enable dummy.service
命令行查询
# 输出帮助信息
used.py -h
used.py --help

# 查询数据库中,所有用户最初时间、最新使用时间
used.py -u
used.py --users

# 过去一天,所有用户的流量记录
used.py -l
used.py --list

# -d 后面指定整数天数。-d n,表示查询过去n天,所有用户的流量记录
used.py -d 5
used.py --days 5

# -f(or --from), -t(--to)后面指定一个时间段,10位Unix timestamp,查询时间段内,所有用户的流量记录。没有记录的话,显示为空
used.py --from 1583998020 --to 1584084421
used.py -f 1583998020 -t 1584084421

# -p后面指定整数分钟数。查询所有用户过去n分钟的流量记录
used.py -p 240
used.py --past 240

# -i(--in), -o(--out) 后面分别指定json文件名,把2个db.json文件合并到一个文件
used.py -i march.json -o db.json

# --merge a --into b 后面分别指定用户名,把a的信息和流量合并到b
python used.py --merge g --into zhouyijun

# -r --reset 从数据库中删除用户和流量信息,后跟用户名、指定操作对象
python used.py -r kate

# --clear 删除指定天数以前的流量统计。后面指定天数,有效值为100~1000以内,100以内更改为100
python used.py --clear 60
python used.py --clear=60

# --write 把用户流量信息写入db.json
python used.py --write

# -m --month 后接6位数字,如202106,表示查询2021年6月份所有用户产生流量
python used.py -m 202106
python used.py --month 202106
python used.py --month=202106

## 感谢

- [v2ray-core](https://github.com/v2ray/v2ray-core.git)
- [v2-ui](https://github.com/sprov065/v2-ui)

## License

Under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html)

About

一个简单的v2ray流量统计程序,用python实现。 程序运行之后,每5分钟统计一次v2ray的流量,记录在db.json。

License:GNU General Public License v3.0


Languages

Language:Python 100.0%