Linux上網共享的定時開通(轉)

ba發表於2007-08-12
Linux上網共享的定時開通(轉)[@more@]我公司的網路環境為: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撥號以及透過網路卡連線等各種上網共享環境。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950131/,如需轉載,請註明出處,否則將追究法律責任。

相關文章