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

📄 isp-hookup-howto-6.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
 <TITLE>ISP-Hookup-HOWTO: 我要怎麽将连接程序自动化呢 ?</TITLE>
 <LINK HREF="ISP-Hookup-HOWTO-7.html" REL=next>
 <LINK HREF="ISP-Hookup-HOWTO-5.html" REL=previous>
 <LINK HREF="ISP-Hookup-HOWTO.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="ISP-Hookup-HOWTO-7.html">Next</A>
<A HREF="ISP-Hookup-HOWTO-5.html">Previous</A>
<A HREF="ISP-Hookup-HOWTO.html#toc6">Contents</A>
<HR>
<H2><A NAME="s6">6. 我要怎麽将连接程序自动化呢 ?</A></H2>

<P>在 Linux □要控制新闻群组以及电子邮件是件很容易做的事情。
<P>首先做个 
<!--
/usr/lib/ppp/ppp-on
-->
 /usr/lib/ppp/ppp-on
来初始与 ISP 的连接。通常,这个档案只包含下列:
<BLOCKQUOTE><CODE>
<PRE>
/usr/sbin/pppd
</PRE>
</CODE></BLOCKQUOTE>

 更多的选项会在
<!--
/etc/ppp/options
-->
 /etc/ppp/options□执行:
<BLOCKQUOTE><CODE>
<PRE>
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400
</PRE>
</CODE></BLOCKQUOTE>
<P>要结束连接,使用本身提供的
<!--
/usr/lib/ppp/ppp-off
-->

/usr/lib/ppp/ppp-off。
<P>在试过这两个命令手稿的功能後,如果你想写个执行不同工作的命令手稿。
上面已提过□集电子邮件的命令手稿了,我们在这儿假设它们(电子邮件)会被
放在 /home/dirk/pop□。
<P>我们可以制造一个交换电子邮件的命令手稿 /root/mail:
<BLOCKQUOTE><CODE>
<PRE>
#! /bin/sh
#
# exchange mail
# 10 minutes timeout:
TIMEOUT=600
DT=10

# kick sendmail:
sendmail -q &amp;

# retrieve mail:
su dirk -c /home/dirk/pop

# wait for sendmail to terminate:
t=0
while ! mailq | grep -q "Mail queue is empty"; do
    t=$[$t+$DT]
    if [ $t -gt $TIMEOUT ] ; then
     echo "sendmail -q timeout ($TIMEOUT).."
     exit 1
    fi
    sleep $DT
done

exit 0
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>交换 news 的命令手稿放在 /usr/lib/news/news:
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# exchange news
# must be run as news:
cd /usr/lib/news

#update the outgoing batch (C News):
/usr/lib/newsbin/input/newsrun &lt; /dev/null

#exchange news:
/usr/lib/newsbin/newsx acme news.acme.xz

#and flush the incoming batch:
/usr/lib/newsbin/input/newsrun &lt; /dev/null
</PRE>
</CODE></BLOCKQUOTE>

其他连接各式各样留著的资讯之命令手稿可被放置在 /root/news+mail:
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# exchange news and email
# must be run as root
#
if ! /usr/lib/ppp/ppp-on; then
    exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15

#exchange news+mail:
/root/mail &amp;
su news -c ~news/news
wait

#disconnect..
/usr/lib/ppp/ppp-off

#update the incoming batch (C News):
su news -c /usr/lib/newsbin/input/newsrun &lt; /dev/null &amp;

exit 0
</PRE>
</CODE></BLOCKQUOTE>
<P>要为上面的例子做扩充是很容易的,只需当向外的电子邮件及新闻布告存在时再做连接。
我们就叫它 
<!--
/root/news+mail.cond
-->
 /root/news+mail.cond,
记得向外的 news-spool 也必须更新以相配合:
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# exchange news and email, only if outgoing news or mail
# (C News spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
    ! ( mailq | grep -q "Mail queue is empty"); then
     /root/news+mail
fi
</PRE>
</CODE></BLOCKQUOTE>
<P>现在只剩指定何时这些事要发生而已。这可以 root 的身份,使用 <CODE>crontab -e</CODE> 
命令来达成。假设我们希望每天早上 07:00 时做新闻讨论资料和电子邮件的交换工作,之後
假设每四小时会有向外的电子邮件和新闻讨论要送:
<BLOCKQUOTE><CODE>
<PRE>
00 7            * * *   /root/news+mail
00 11,15,19,23  * * *   /root/news+mail.cond
</PRE>
</CODE></BLOCKQUOTE>

在将它们连接前,请确认每一个环结都被测试没问题。你也可以之後再加上
其他许多的工作,例如调整日期的时间 (使用 
<!--
ntpdate
-->

ntpdate),自动更新 (映射) 本地端维护的 WWW 及 FTP 档案
到 ISP (使用 make 和 ftp)。
<P><B>ALT:</B> 依照每个人的喜好不同,也可以颠倒顺序。每次 PPP 连接完成後,
<!--
/etc/ppp/ip-up
-->
 /etc/ppp/ip-up 命令手稿就会启动。
你可以在这儿加上各种花样来启动电子邮件与新闻讨论文章的交换。
详情可参阅 <CODE>man pppd</CODE> 。
<P><B>ALT:</B> 也可以当网路流通被侦测到时自动地连接 PPP 。好的解决方案有很多种,
但好的建构端看它怎麽来避免频繁的(花钱的)连接。下面位址有更多的资讯:
<P><CODE>
<A HREF="http://www.dna.lth.se/~erics/diald.html">http://www.dna.lth.se/~erics/diald.html</A></CODE>
<P>这个<CODE>diald</CODE> 公用程式可由下面的位址取得:
<P><CODE>
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz">ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz</A></CODE>
<P>在同一位置上,你还可以发现使用 PPP 连接的其他不同项目。
<P>
<HR>
<A HREF="ISP-Hookup-HOWTO-7.html">Next</A>
<A HREF="ISP-Hookup-HOWTO-5.html">Previous</A>
<A HREF="ISP-Hookup-HOWTO.html#toc6">Contents</A>
</BODY>
</HTML>

⌨️ 快捷键说明

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