SMTH BBS 中,关于讨论区排行的具体实现程序是使用 local_utl 下的 usage.c 程序来读取 $BBSHOME/boardusage.log.0 来实现的。
对于 web 来说,该程序在 $BBSHOME/xml/ 目录下生成 board.xml 文件以提供 php 程序使用。该文件的排序方法是按照 用户在版平均时间来计算的。
对于 telnet 来说,该程序在 $BBSHOME/0Announce/bbslists/ 目录下生成四个文件:
$BBSHOME/0Announce/bbslists/board2
#按照总人次文字排行
$BBSHOME/0Announce/bbslists/totaltime
#按照用户在版总时间排行
$BBSHOME/0Announce/bbslists/averagetime
#按照用户在版平均时间排行
$BBSHOME/0Announce/bbslists/board1
#按照总人次图形排行
同时在 $BBSHOME/bonlinelog/xxxx年/x月/ 这样的目录,生成四个
$BBSHOME/bonlinelog/xxxx年/x月/x日_boarduse.average
#按照用户在版平均时间排行
$BBSHOME/bonlinelog/xxxx年/x月/x日_boarduse.total
#按照用户在版累积时间排行
$BBSHOME/bonlinelog/xxxx年/x月/x日_boarduse.visit
#按照用户访问次数排行
$BBSHOME/bonlinelog/xxxx年/x月/x日_boarduse.visittable
#按照用户访问次数排行图表
最后还有一个
$BBSHOME/boardusage.week 文件,二进制的似乎,估计是一周的统计。
在编译 usage.c 文件之前,请注意你的服务器上的几个目录和文件,usage.c 默认是把生成的结果放到以下目录,如果你没有该目录,请自行建立,如果必要,你可以修改 usage.c 。
$BBSHOME/0Announce/bbslists/ (注意有一个 "s" FB2K 系统原来没有那个 "s" 直接 bbslist )
$BBSHOME/xml/ (生成 xml 文件)
$BBSHOME/bonlinelog/ (每天记录统计情况)
以上目录如果和 usreg.c 不能对应,将提示:
Can't Write file
还要确保 $BBSHOME/boardusage.log.0 文件的存在,如果该文件不存在,你可以手工把 boardusage.log 文件复制为 boardusage.log.0,否则系统将提示
cann't open boardusage.log.0
然后就是编译,运行了,运行完之后,就会生成以上几个文件,telnet下使用 V 命令把这些文件加到精华区里就可以了。web下不用配置。
crontab
#每天中午来一次。
25 12 * * * (cp -Rf /home/bbs/boardusage.log /home/bbs/boardusage.log.0)
30 12 * * * /home/bbs/bin/usage
一天只要运行一次就可以了,没必要太多的。
重复运行 usage 对系统的负担也很重的。
--
修改:wuweixin FROM 202.118.1.*
FROM 202.118.1.*