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

📄 00000005.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;wxb1&nbsp;(ben),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;[6/8]&nbsp;群组转送与分区传送&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Fri&nbsp;Jun&nbsp;11&nbsp;14:24:12&nbsp;1999)&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>以Linux实作&nbsp;语音/传真/EMAIL/BBC&nbsp;整合系统&nbsp;<BR>6.群组传送与分区转送&nbsp;<BR>&nbsp;<BR>群组传送&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;群组传送的功能是指管理者可将一群客户,例如同一公司同仁,或一组&nbsp;<BR>彼此认识的同学、朋友等团体,设为同一群组(Group),如此当对这群组发送语&nbsp;<BR>音或传真讯息时,隶属此群组的所有客户,皆会收到此一讯息,而不需要再费时&nbsp;<BR>的一一发送,且需经常维护群组名单,免得挂一漏万。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;系统中目前群组的表示为&quot;#00&quot;~&quot;#99&quot;,共可容纳100个群组,针对群组&nbsp;<BR>的留言或传真,会先要求输入群组密码,以防有人滥用,其後的留言或传真实体&nbsp;<BR>仅储存一份,但属於该群组的用户,皆会建一连结(LINK)至此实体档案,如此&nbsp;<BR>可节省硬碟空间,各用户收取留言或传真後即将LINK删除,至於实体档案,则由&nbsp;<BR>系统定时执行的逾期删除作业(下一篇会介绍)中,自动删除。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因应群组传送功能,原&quot;Bash&nbsp;script&quot;档(answer),需要做不少的变动&nbsp;<BR>,而同样的程式段落因分区转送的功能,也会有所牵涉,因此待解释完分区转送&nbsp;<BR>後,再一并解析两者的原始程式码。&nbsp;<BR>&nbsp;<BR>分区转送&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;基地台&quot;这名词因最近大哥大广告的缘故,让人耳熟能详,此处&quot;分区转&nbsp;<BR>送&quot;的功能也类似基地台的建置,让拨电话进入欲留言或送传真的使用者,可以打&nbsp;<BR>当地基地台的电话,而此处的伺服器再根据使用者所输入的客户的代码,判断其&nbsp;<BR>所属区域,再透过网际网路转送至该区的伺服器上!&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;判断的准则当然是靠预先的区域设定档(zone.conf)来决定,其内容类&nbsp;<BR>似:&nbsp;<BR>&nbsp;<BR>sections=&quot;101&nbsp;400&nbsp;700&nbsp;900&nbsp;1000&quot;&nbsp;<BR>hosts=&quot;LOCAL&nbsp;company1.com.tw&nbsp;company2.com.tw&nbsp;NONE&quot;&nbsp;<BR>&nbsp;<BR>此例内容是指101~399的客户是此处伺服器所管辖(000~100保留给所有的LOCAL伺&nbsp;<BR>服器,也就是代号&lt;=100,都当作是LOCAL的用户,将不会尝试转送),400~699属&nbsp;<BR>company1.com.tw,余类推,NONE指还未分出去的区段。程式会先搜寻是否有此客&nbsp;<BR>户代码的设定档,若无的话,会交由副程式ChkZone来界定其所属伺服器所在的主&nbsp;<BR>机名称(Host&nbsp;name),若成功界定,会将其留言或传真交由副程式SendtoMail处&nbsp;<BR>理,不然及回应无此客户,挂断电话(接收端的伺服器并不判断远端是否真有此&nbsp;<BR>用户代码)。SendtoMail会将留言或传真档案压缩编码後,以EMAIL的形式送至其&nbsp;<BR>所属伺服器(另建一Mailer来处理),由该伺服器收到後再解码,检查是否有此&nbsp;<BR>客户,并放入适当的目录中。&nbsp;<BR>&nbsp;<BR>程式码解析&nbsp;<BR>&nbsp;<BR>ChkZone、SendtoMail副程式:&nbsp;<BR>&nbsp;<BR>#---------------------------------------------------------------&nbsp;<BR>ChkZone()&nbsp;<BR>{&nbsp;<BR>local&nbsp;UserID&nbsp;<BR>#&nbsp;设定&nbsp;$sections&nbsp;及&nbsp;$hosts&nbsp;变数&nbsp;<BR>.&nbsp;${MAINPATH}conf/zone.conf&nbsp;<BR>UserID=$1&nbsp;<BR>ndx=0&nbsp;<BR>UserIndex=0&nbsp;<BR>#echo&nbsp;$sections&nbsp;<BR>#echo&nbsp;$hosts&nbsp;<BR>#echo&nbsp;$UserID&nbsp;<BR>for&nbsp;sec&nbsp;in&nbsp;$sections&nbsp;<BR>do&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;$ndx&nbsp;-gt&nbsp;0&nbsp;];&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;($UserID&nbsp;&gt;=&nbsp;$prev_sec)&nbsp;and&nbsp;($UserID&nbsp;&lt;&nbsp;$sec)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;$UserID&nbsp;-ge&nbsp;$prev_sec&nbsp;-a&nbsp;$UserID&nbsp;-lt&nbsp;$sec&nbsp;];&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserIndex=$ndx&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$UserIndex&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prev_sec=$sec&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ndx=`expr&nbsp;$ndx&nbsp;+&nbsp;1`&nbsp;<BR>done&nbsp;<BR>ndx=1&nbsp;<BR>if&nbsp;[&nbsp;$UserIndex&nbsp;-ne&nbsp;0&nbsp;];&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;host&nbsp;in&nbsp;$hosts&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;$ndx&nbsp;-eq&nbsp;$UserIndex&nbsp;];&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserHost=$host&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$UserHost&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ndx=`expr&nbsp;$ndx&nbsp;+&nbsp;1`&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;done&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$UserHost&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;$UserHost&nbsp;=&nbsp;'LOCAL'&nbsp;-o&nbsp;$UserHost&nbsp;=&nbsp;'NONE'&nbsp;];&nbsp;then&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Local&nbsp;or&nbsp;None&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&quot;2&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Find&nbsp;$UserHost&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&quot;0&quot;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;fi&nbsp;<BR>else&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;No&nbsp;this&nbsp;UserID!&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&quot;1&quot;&nbsp;<BR>fi&nbsp;<BR>&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>#------------------------------------------------------------&nbsp;<BR>#&nbsp;将非本站客户留言或传真,透宫而不需要再额外安装传真数据&nbsp;<BR>机。&nbsp;<BR>&nbsp;<BR>撰文:朱先宇&nbsp;&nbsp;&nbsp;1998/12/17&nbsp;<BR>EMAIL:&nbsp;<A HREF="mailto:hybj@ms1.hinet.net">hybj@ms1.hinet.net</A>&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>just&nbsp;a&nbsp;test&nbsp;<BR>&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;202.116.130.100]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

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