自己的網路是使用 SeedNet 的

總是會想網路的頻寬是否有在正常狀態下
剛好 ISP 有提供透過 ftp 傳輸檔案來測試速度的服務
所以在 Linux 中寫 Shell Script 來自動跑測試流程
並將測試結果 Mail 給管理者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
#
# SeedNet Speed Test
#
SENDMAIL="Y" # Y or N
MAILTO="xxx@xxx.xxx"

LOGFILENAME="SeedNetLanSpeedTest.log"

### 開始
cd /tmp
if [ -e $LOGFILENAME ]
then
   echo -n > $LOGFILENAME
fi

### 用 ftp 測試上傳與下傳速度
ftp -nv >> $LOGFILENAME 2>> $LOGFILENAME <<EOF
open pftest3.seed.net.tw
user ftp ftp
hash
get 10m.dat
cd upload
put 10m.dat
bye
EOF


### 取得傳輸速度
## 10485760 bytes received in 7.6 seconds (1.3e+03 Kbytes/s)
## 10485760 bytes sent in 45 seconds (2.3e+02 Kbytes/s)
echo -n > mail.log
sed -n -e '/seconds/p' $LOGFILENAME >> mail.log

### EMail 傳輸速度報告
if [ $SENDMAIL = "Y" ]
then
   mail -s "SeedNet Lan Speed Test Result" $MAILTO < mail.log
fi

rm $LOGFILENAME
if [ -e "mail.log" ]
then
   rm mail.log
fi
if [ -e "10m.dat" ]
then
   rm 10m.dat
fi

真的太久沒寫了,有任何建議請指教。

手動執行後應該要收到 Mail 內容如下:

1
2
10485760 bytes received in 7.5 seconds (1.4e+03 Kbytes/s)
10485760 bytes sent in 41 seconds (2.5e+02 Kbytes/s)

然後加入到 Cron 中定期執行收報告就可以了。