先在 家目錄建立1個目錄 check_net , 然後在這目錄下建立3個檔案: check , at_script , date_stamp
並讓 check , at_script 有執行的權限
chmod 744 check
chmod 744 at_script
如下:

check的 script程式內容:

#!/bin/bash
Home_dir=/Users/jkchang #定義家目錄
Dstamp_file=$Home_dir/check_net/date_stamp #定義時間記錄檔
today=`date +%m%d"20"%y` #取得目前日期時間放入變數 today,格式為mmdd20yy
result="`grep -m 1 $today $Dstamp_file| cut -d ' ' -f 1`"
#比對目前日期和 data_stamp 內是否有相同的
#例如12月15日 $today=12152008 當date_stamp中有12152008出現一次就會將12152008放入$result 變數
if [ -z $result ]; then #如果比對的結果$result 字串長度為0 ,表示沒有比對到並且是第一次使用
# Today is 1st boot !
date +%m%d"20"%y" "%H":"%M">>Check time start!" >> $Dstamp_file #將日期時間寫入 date_stamp檔案中
at now +1 hours < $Home_dir/check_net/at_script #一小時後執行 at_script,關閉網路
# After 1 hour Network shutdown
else #如果有比對成功,表示今天已經開機過了
# Today is not 1st boot !
# Network down ...
ifconfig en0 down #就關閉網路
date +%m%d"20"%y" "%H":"%M" >> Check time" >> $Dstamp_file #將日期時間寫入 date_stamp檔案中
fi
at 指令用於定時工作, 當時間到了就執行 script 的內容
這當中 ifconfig en0 down 就是將 en0 這個網路設備關閉
如果不知道適用哪一個,可以用 ifconfig 指令查詢,可以看最後補充的部份
at_script 的內容:

#!/bin/bash
Dstamp_file=/Users/jkchang/check_net/date_stamp
ifconfig en0 down
date +%m%d"20"%y" "%H":"%M">>Check time stop!" >> $Dstamp_file
然後到 /etc目錄下用root權限將 rc 檔案備份
cp rc rc.org
接者修改 rc 檔案,在最後倒數第2行加上
/Users/jkchang/check_net/check
也就是開機時執行 check 這個 script

由於OSX 10.4 內定at的功能是關閉的(manual說的)所以要將它打開:

先到 /System/Library/LaunchDaemons 目錄下將 com.apple.atrun.plist 備份
cp com.apple.atrun.plist com.apple.atrun.plist.org

將 com.apple.atrun.plist 檔案中的 <integer>300</integer> 的 300改為10 這樣 會比較準時,如果維持300也行,但是時間會超過,
這個我想應該是在300秒內完成at的工作吧?

然後輸入launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

ok這樣就可以了, 重新開機.
開機的時間會記錄在 date_stamp這個檔案中, 順便可以知道小孩開機的時間, 和網路關閉的時間

有一點必須要注意的是 rc file 一定要備份,這個檔案攸關開機執行系統的程序,
還有就是這範例中的1小時是在登入畫面之前就開始計算囉!
希望對有需要的人有幫助!

12/16晚間補充:
如果網路是用cable 的那用 ifconfig 查詢的結果可能如下:
那要關閉或啟動就可以這樣寫:
ifconfig en0 down
ifconfig en0 up

相同的,如果是用無線網路,那查詢的結果可能如下圖
那要關閉或啟動就可以這樣寫:
ifconfig en1 down
ifconfig en1 up

參考資料:
1. O'Reilly bash shell 入門
2. 線上 manual
3. 【分享教學】定時執行排程:at 指令


























































































