⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 bbs server linux平台下软件源码
💻
📖 第 1 页 / 共 3 页
字号:
1. 到 A server 取 a group, 到 B server 取 b group.   a 和 b 可以相同或不同.   例如, 到 netnews.ntu.edu.tw 取 ntu.dep.csie,ntu.dep.ee,tw.bbs.*         到 aidebbs.edu.tw 取 csie.bbs.aidesysop,tw.bbs.*         到 news.mgt.ncu.edu.tw 取 ncu.mgt.*   设好不同的 active file, 如 act1, act2, act3   bbsnnrp netnews.ntu.edu.tw act1   bbsnnrp aidebbs.edu.tw act2   bbsnnrp news.mgt.ncu.edu.tw act3                                       2. 分散 load, 及网路结构因素, 找一台 bbsnnrp 专属 host, 只用来跑 bbsnnrp,   再餵给其它 BBS servers 或 news servsers.   (用来 "偷" news)   bbsnnrp -r bbs1.domain1 -p 7777 newsa.domainb bbs1.newsa.active   bbsnnrp -r bbs2.domain2 -p 7777 newsb.domainb bbs2.newsb.active      bbsnnrp -r newsc.domainc -p 119 newsx.domainx newsc.newsx.active   (从 newsx 取 news 再餵给 newsc, a gateway ? )   ............................         当然大量读取时必须礼貌地征求 server 同意.---------------------bbsnnrp options:Usage: ./bbsnnrp [options] nntpserver activefile       -h|? (help)        -v (verbose protocol transactions)       -c (reset active files only; don't receive articles)       -r remotehost(send articles to remotehost, default=local)       -p port|(send articles to remotehost at port, default=7777)          path(send articles to local at path, default=~bbs/innd/.innbbsd)       -w seconds ( > 1 wait for seconds and run infinitely, default=once)       -n (don't ask innbbsd server and stat articles)       -a max_art(maximum number of articles received for a group each time)          default=100       -s max_stat(maximum number of articles stated for a group each time)          default=1000       -t stdin|nntp (default=nntp)       -g newsgroupsPlease E-mail bug to skhuang@csie.nctu.edu.tw orpost to tw.bbs.admin.installbbs======================================================================<4>. 送信程式 bntplink 安装设定      a. bbaname.bbs 与 bntplink   b. nodelist.bbs  与 bntplink   c. newsfeeds.bbs 与 bntplink   d. 执行 bntplinkbbsnnrp 只用来取 news, 转 news 出去还要另外跑 "bntplink".很抱歉没有解释清楚. 关于 bntplink 用法请参考 bbsnnrp-??/innd/README(此 README 是 Phoenix BBS innd 的, 其中 nodelist.bbs 和 newsfeeds.bbs 的写法不同, 请改用 innbbsd 的. in.bntpd 也不用架, 改用 innbbsd) 第一次跑 bntplink 前先执行 (假设 BBS home 在 /home/bbs/)cmd> bbspost visit /home/bbs       # 第一次执行会非常久     New article listed:     test    M.770323413.A   SYSOP   测试文章 ...     ....                                    # 列出所有未送信文章     接下来到 test board post 一篇测试文章, 然后执行下列命令cmd> bntplink /home/bbsbntplink 要用 bbsnnrp-??/innd/bntplink 而非 Phoenix BBS 内附的.另 newsfeeds.bbs 和 nodelist.bbs 的写法也和 Phoenix BBS 的 innd 不同.                                                             ======================================================================<5>. Server gateway innbbsd 控制程式 (ctlinnbbsd) 介绍  ctlinnbbsd reload   : reload datafiles for innbbsd  ctlinnbbsd shutdown : shutdown innbbsd gracefully  ctlinnbbsd mode     : examine mode of innbbsd  ctlinnbbsd addhist <mid> path: add history  ctlinnbbsd grephist <mid>: query history  ctlinnbbsd hismaint : maintain history  ctlinnbbsd getrusage: get resource usage (-DGETRUSAGE)  ctlinnbbsd mallocmap: get malloc map     (only Sun-OS supported)======================================================================<6>. activefile and history databasea. 如果要把 bbsnnrp 加到 crontab 中该怎么设啊和在 command line 一样.for example, 每十分钟取一次:10,20,30,40,50 * * * * /home/bbs/innd/bbsnnrp news-server \  /home/bbs/innd/active-file > /dev/null 2>&1   bbsnnrp 的另一个好处是可依兴趣和讨论区特性 (和不同 server), 分不同 active-file  再以不同频率去取: 例如  1. active1: tw.bbs.rec.rail 等(例如 铁路站)  2. active2: tw.bbs.comp.* 等  3. active3: tw.bbs.rec.* 等  3. active4: control 或 control.cancel   可设每分钟抓 active1, 每五分钟抓 active2, 每十分抓 active3, 每天抓 active3 一次:* * * * * bbsnnrp news-server active1 > /dev/null 2>&10,5,10,15,20,25,30,35,40,45,50,55 * * * * bbsnnrp news-server active2 > /dev/null 2>&12,12,22,32,42,52 * * * * bbsnnrp news-server active3 > /dev/null 2>&114 3 * * * bbsnnrp news-server active4 > /dev/null 2>&1:   还有 就是我抓回来的文章怎么都是一两个月以前的呢 !!如果只抓最新的..且都不要:    重复又该打什么指令呢......  Default 每次最多一个 group 只抓 1 百封, 避免造成 news server 负荷过重,建议如下:1. 倘若不要旧信, 试跑一次   bbsnnrp -c news-server active-file   这样将只 reset active-file 而不取 news. 以后再跑不用 -c, 取最新的.2. 若要旧信, 斟酌 server load, 分多次取信, 用 -a 指定最多取信量:   如每次最多取 500 封,   bbsnnrp -a 500 news-server active-file                   正常状况即使向多个 server 抓相同 group 也不会重复.======================================================================<7>. BBS implementation dependent part: receive_article.cRabit 希望 innbbsd 能支援 Palm BBS, Samson 也希望我写一个dbz server 支援 Power BBS, 顺便 Secret BBS, Pivot BBS看能否一并解决, 关于 Samson dbz server 的要求, 我是希望PBBS 考虑使用 innbbsd. 因为 innbbsd 所耗用的资源主要就是在处理 dbz. 只要 PBBS (Palm, Secret, 或 Pivot) 提供receive_article() 和 cancel_article_front(mid) 两个 routine.用以下方式处理:   innbbsd 收到 article 后将文章 header 存到 extern char *HEADER[]                                 body        extern char *BODY;   (Subject 存到 HEADER[SUBJECT_H], From 存到 HEADER[FROM_H], 其它类推)   再 call receive_article() 或 cancel_article_front(mid)   PBBS, Palm, Pivot 或 Secret BBS 只要改写:    1. receive_article: 将 char *HEADER 和 char *BODY 依其文章储存方式写入.       再 call storeDB() 将 article path 存到 dbz.    2. cancel_article_front(mid): 先 call fetchDB(mid) 获得 article filename       (to be cancelled), 再依各 BBS 的 cancel 方式处理.就能达到以下功能:1. 接受 multiple feeds (duplicated feed is OK)2. only single process (won't fork)3. 接受 bbsnnrp feed   (bbsnnrp 和 BBS 无关, 也可以 feed News server) innbbsd 尚不稳定, 效率和系统 load 影頀尚在评估中, 以后须要修改的地方不少, 我不太希望同时 maintain dbzserver 和 innbbsd 的 source. (因为 innbbsd 主要就是一个 dbzserver)  大家若能接受, 我再将 innbbsd 整理好, 分出 BBS implementation dependend 和 independent 部份, 供 PBBS, Palm, Pivot, 和 Secret BBS 使用.   ======================================================================<8>. 转信架构[Q.1]: 自由飞翔的云雀 (skylark@Venus.Dorm9.nctu.edu.tw) 提到:   小弟最近因为架了一个站(使用 Phoenix 4.0),而且已经转信成功   (使用内附的 innd 程式)。如今想要换用 innbbsd , bbsnnrp   等的程式来达到转信的目的,在不破坏之前的转信设定下要如何设定:□ 已经有一个 news server 餵信给我我不想要破坏我和它之间的转信   服务。在这种情况下我要如何设定?[A.1]:若已稳定, 我建议不要换成 innbbsd. 等到熟悉 Phoenix innd 的运作, innbbsd 也够稳了再换. innbbsd 基本上尽量做到和 Phoenix bbsinnd 相容, 但改成支援 client gateway,若先前已跑 bbsinnd, 必须做以下转换:1. 转换 history   请先 disable 在 inetd.conf 的 in.bntpd, kill -1 pid-of-inetd   cd ~bbs/usr/tmp   hisconvert history history.z > ~bbs/innd/history    (hisconvert 附在 innbbsd, ~bbs/usr/tmp 可能没有 history.z)   cd ~bbs/innd   mkhistory history    (innbbsd make 之后会产生一个 mkhistory 执行档)   mv history history.o   mv history.n history   mv history.n.dir history.dir   mv history.n.pag history.pag2. newsfeeds.bbs, nodename.bbs 不必改变.3. nodelist.bbs 原先为name          hostname & domainname                    full name  改为name          hostname & domainname   protocol(port)   full name例如ccnews        ccnews.nctu.edu.tw      IHAVE(119)       News server in CC4. bntplink 换成 innbbsd/innd 内的 bntplink5. 执行 innbbsd [port-no]只要 port-no 和先前 in.bntpd 跑的 port 一样, news server 不用做任何更动.[Q.2]:□ 我想和其它的 bbs 站之间互转信(不透过 news server ),我知道   innbbsd 可以达成这项要求,但是要如何设定才不会破坏之前的转信   设定?[A.2]   假设 bbs-1.domain1 bbs-2.domain2 bbs-3.domain3 想不经 news server 互相转信,1. 三站都跑 innbbsd 的 innbbsd 和 bntplink  2. 三站都将对方加入各自的 nodelist.bbs, 如#[nodelist.bbs]bbs-1 bbs-1.domain1 IHAVE(7777) bbs-1 serverbbs-2 bbs-2.domain2 IHAVE(7777) bbs-2 serverbbs-3 bbs-3.domain3 IHAVE(7777) bbs-3 servernews-1 news-1.domain4 IHAVE(119) news-1 server3. newsfeeds.bbs 设定, bbs-1.domain1 的 newsfeeds.bbs   (假设 bbs-1 也接 news-1)# newsgroup    board      server1 server2 ....localbbs.group board-name bbs-2 bbs-3tw.bbs.test    test       news-1 bbs-2 bbs-3 bbs-2.domain2 的 newsfeeds.bbs# newsgroup    board      server1 server2 ....localbbs.group board-name bbs-1 bbs-3bbs-3.domain3 的 newsfeeds.bbs# newsgroup    board      server1 server2 ....localbbs.group board-name bbs-1 bbs-2再定时跑 bntplink. 其中的 localbbs.group 可自行取名, 只要三站协调好都接受即可. innbbsd 的好处是, bbs-1, bbs-2, bbs-3 还可再自行接任意数量的 news serverfeed, 或跑多个 bbsnnrp 取 news.======================================================================<9>. 错误诊断 and FAQ--------------------a) BBS 和 News Server 在同一台机器上, 安装时, 是否要特别留意什么的 ??只要 innbbsd 不跑在 port 119 (nntp) 应该没有问题.还有请注意 active file high, low number 一定要保留10 (> 10) 个 digit. 例如:tw.bbs.test 0000000000 0000000001 y这是因为 bbsnnrp 利用 mmap 将 active file 直接 map 到memory. 若 digit 位数不够会被 truncated.若有管理 news server 经验, 应该就知道为何 active file中的 high, low 也要留十个 digits 了.又因为是 mmap, 若在 bbsnnrp 执行期间改 active file 就会有惨剧发生. 这和 INN news server 改 active 的道理相同.请先停掉相关的 bbsnnrp process.为预防 active 毁损, 每次 update active 都会产生两个 backup activeactivefile.BAK 和 activefile.BAK.OLD.因为 innbbsd 有存 history, 即使 active 毁损, 将 active reset 再重挀也无妨.跑 server gateway 者, 可用 bbsnnrp 来挀 "旧 article".建议 bbsnnrp 用 cron 来启动. 不要用 -w. 可将 newsgroups 区分成几个部份, 如 tw.bbs.hot.active, tw.bbs.2ndhot.active,....[tw.bbs.hot.active]tw.bbs.talk.love 0000000000 0000000001 ytw.bbs.comp.unix 0000000000 0000000001 y[tw.bbs.2ndhot.active]tw.bbs.admin.installbbs 0000000000 0000000001 ytw.bbs.talk.lady 0000000000 0000000001 y[crontab]10,20,30,40,50 * * * * /home/bbs/innd/bbsnnrp your-news-server \/home/bbs/innd/tw.bbs.hot.active35 * * * * /home/bbs/innd/bbsnnrp your-news-server /home/bbs/innd/tw.bbs.hot.active比较重要或有兴趣的 group 取的频率高一点, 文章少的就低一点. 并依系统 load情况调整. 每次每个 group 最多取 100 篇 article.(改 innbbsconf.h: # define MAX_ARTS 100)--------------------b. 如果没有参与转信可不可以用 innbbsd.....--------------------innbbsd 是用来接收 Internet Net News 的.如果你接了 tw.bbs.* 讨论区, 就是加入俗称的 TW.BBS 连线网.如果再跑 bntplink, 就是双向转信.欢迎挀 innbbsd 做任何事, 不过必须警告各位的是, innbbsd 仍在测试阶段. 使用 bbsnnrp 时也最好先礼貌性地知会 news server 管理者.--------------------[c]. 用innbbsd要不要修改 inetd.conf 和services!!innbbsd 是 standalone server, 所以不用改 inetd.conf 和 services.只要指定 port number 或不指定用 default=7777.例如:1. 跑在 port 5555 innbbsd 5555   用 telnet localhost 5555 测试.  2. 用 default 7777     innbbsd   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -