之前记录了XXX服务器端怎样查看登陆用户、登陆时间、登陆IP、在线时间、流量统计等信息,保存下来后在/var/log里边一个文本里,查看的时候需要SSH连接到服务器通过cat,tail等文本文件查看器查看,不够方便。我的这个服务器同时跑着我的博客,LAMP方案,一直在思考如果能网页端查看就太棒了。
之前的方案在这里:https://shuspieler.com/blog/756/
就在刚才想到了一个迂回解决方案,显示效果稍微有点low,但是能看到哪个用户在线,能查看历史连接,以及标题中所有的那些信息,凑合着已经解决了我的需求。具体解决办法如下:
(默认我认为读者也配置好了http服务器,不一定是apache和PHP,其他的理论上也可以)
通过下边命令将log文件软连接到网页文件夹:
sudo ln -s /var/log/XXX-ppp0.log /var/www/html/
之后,通过浏览器尝试打开 http://服务器IP/XXX-ppp2.log 提示Forbidden禁止连接。这是预想到的,因为权限问题,运行apache的用户没有权限读取这个log文件。
通过ls -l 查看/var/log/XXX-ppp0.log得知这个文件属于root组的root用户。apache默认用户是www-data,为何使这个用户有读取权限,我的解决办法是将XXX-ppp0.log换成www-data所在的组,也就是同名的www-data组,同时将XXX-ppp0.log权限设置成组成员可读,命令如下:
sudo chgrp www-data /var/log/XXX-ppp0.log sudo chmod g+r /var/log/XXX-ppp0.log
第一句将XXX-ppp0.log的组换成了www-data,第二个命令赋予了这个文件组成员可读的权限。
之后查看文件权限长这样:
第二个r代表了组成员有读取权限,并且这个文件还属于root,但是组换成了www-data。
之后通过浏览器访问下边的页面即可看XXX用户情况,多个ppp的log是放之多用户冲突:
http://服务器IP/XXX-ppp0.log
根据上篇教程贴可知,如果用户在线,日志中之写入了登陆信息,当用户离线,则写入离开时间以及流量用量等信息。
**************************************************** username: XXX clientIP: XXX.XXX.XXX.XXX device: ppp0 xxxIP: 172.16.0.1 assignIP: 172.16.0.10 logintime: 2018-06-10_17:11:20
如果打开那个网页在线,说明当前XXX正在线,如果离线,则打开网页显示如下:
**************************************************** username: XXX clientIP: XXX.XXX.XXX.XXX device: ppp0 xxxIP: 172.16.0.1 assignIP: 172.16.0.10 logintime: 2018-06-10_17:11:20 downtime: 2018-06-10_17:11:21 bytes sent: 3272 B bytes received: 3626 B bytes sum: 0 MB average speed: 6.73 KB/s connect time: 1 S ****************************************************
这样就都达了查看用户是否在线的功能,以及网页查看XXX使用情况的功能。