黑龙江省新纪元电子有限责任公司 杨锐
我公司的网络环境为:20余台电脑,10M共享式以太网。向电信申请了ADSL接入,接入方式为虚拟拨号(动态IP),收费标准为每月200元,180小时。采用Linux作为代理服务器实现ADSL上网共享。根据公司规模小、管理任务简单的情况,没有设专职的网络管理员。
为了控制费用,将每月的上网时长限制在180小时之内,制定的允许上网时段为:周一至周五,每天9:00~17:00。这样,每月22或23个工作日,每天开通8小时,月累计时长大体为180小时。
最初的做法是,在代理服务器上将ADSL拨号命令加入到系统启动文件中,开机就上网,每天定时开通代理服务器。随着用户需求的增加,又要由同一台服务器提供局域网内的WWW、FTP等服务。考虑使用Linux操作系统提供的功能,实现ADSL上网共享的定时开通。在服务器上要实现的目标规划为:DHCP、WWW、FTP服务7×24小时开通;ADSL上网共享服务每周一至周五,每天9:00定时开通,17:00定时关闭。由于没有配备UPS,还要考虑服务器断电、恢复供电后重新启动的情况。
分析设置的思路:
1. 系统启动时:
(1) 自动加载DHCP、WWW、FTP服务;
(2) 检查系统日期、时间,如果在周一至周五、9:00~17:00之间,开通ADSL连接。
2. 定时事件:
(1) 周一至周五每天9:00,开通ADSL连接;
(2) 周一至周五每天17:00,关闭ADSL连接。
定时使用系统提供的crontab命令进行设置。以root身份登录,在终端提示符下执行crontab –e编辑定时任务,内容是:
0 9 * * 1-5 adsl-start
0 17 * * 1-5 adsl-stop
这个定时任务的目标是,周一至周五,每天9点,进行ADSL的虚拟拨号连接(adsl-start);17点,关闭ADSL连接(adsl-stop)。
服务器启动时,检查系统时间,如果符合ADSL开通时段,应该立即提供ADSL上网共享服务。在启动文件/etc/rc.d/rc.local的最后加入下列命令:
HOUR=``date +%H``
WEEK=``date +%W``
if test $HOUR –ge 9 –a $HOUR –lt 17 –a $WEEK –ge 1 –a $WEEK –le 5
then
adsl-start
fi
上述命令实现的目标是,检查系统时钟的星期、小时数,如果是星期一至星期五,9点至17点之间,则进行ADSL虚拟拨号连接(adsl-start)。
以上设置,经过一个多月的使用,效果良好,实现了无人值守的上网共享定时服务。
安装的Linux版本为Redhat Linux 7.2专业版(里仁9CD套装)。服务器主要配置为PII 350、128M、30G、双网卡,没有软驱、光驱、显示器,机器在SETUP中电源管理设置为断电自动恢复(Auto Resume on Power Failure)。
对于涉及的crontab、date等Linux命令和bash编程知识感兴趣的朋友,请查看Linux手册获得深入了解。上面提供的定时设置,只需稍加修改,就可以适用于模拟拨号、ISDN拨号以及通过网卡连接等各种上网共享环境。