FROM : http://www.pczone.com.tw/vbb3/thread/29/120524/

這個程式可以一次針對大量設備設定 MRTG。

系統: FC4
架構:
1. FC4 主機一台,身兼 NAT, Firewall, Proxy Server, MRTG Server
2. 總公司對外 ADSL 一條,對內 T1 專線一條,連接 ISP 提供的硬體 VPN 線路。
  總公司的子網路是 192.168.0.0/24
3. 45 家分公司,每家店一條 ADSL 連接 ISP 做硬體 VPN,子網路分別是 192.168.1.0/24 到 192.168.45.0/24。

開始:
1. yum install mrtg (廢話),yum 會把相依性的問題解決乾淨。
2. vi /root/setup-mrtg.sh
語法:
-----
#!/bin/sh

# 指定環境語言,否則無法產生網頁檔。
LANG=C

# 將需要個別設定的 ATU-R 寫在這裡,以空格分開。
# 連續範圍子網路的設定在下一段,不要寫在這裡。
ATU_R="202.xxx.xxx.142 192.168.0.252"

for ip in $ATU_R; do
        # 產生設定檔,以 ATU-R 的 IP 為檔名。
        cfgmaker public@$ip \
                --global 'WorkDir: /var/www/mrtg/net' \
                --global 'Options[_]: growright, bits' \
                --global 'Language: big5' \
                > /etc/mrtg/mrtg-$ip.cfg

        # 執行三次 mrtg,產生 ok 的設定檔。
        mrtg /etc/mrtg/mrtg-$ip.cfg
        echo "Generate MRTG report 1..."
        mrtg /etc/mrtg/mrtg-$ip.cfg
        echo "Generate MRTG report 2..."
        mrtg /etc/mrtg/mrtg-$ip.cfg
        echo "Generate MRTG report 3...ok"

        #根據設定檔產生網頁,以 ATU-R 的 IP 為網頁標題。
        indexmaker \
                --output=/var/www/mrtg/net/mrtg-$ip.html \
                --title="$ip" \
                /etc/mrtg/mrtg-$ip.cfg
done

# 指定子網路的範圍,由 192.168.1.0/24 ~ 192.168.45.0/24,如有需要可自行再增加。
for((i=0;i<46;i++))
do
        # 產生設定檔,以分公司 Gateway 為檔名。
        cfgmaker public@192.168.$i.254 \
                --global 'WorkDir: /var/www/mrtg/net' \
                --global 'Options[_]: growright, bits' \
                --global 'Language: big5' \
        > /etc/mrtg/mrtg-192.168.$i.254.cfg

        # 執行三次 mrtg,產生 ok 的設定檔。
        mrtg /etc/mrtg/mrtg-192.168.$i.254.cfg
        echo "Generate MRTG report 1..."
        mrtg /etc/mrtg/mrtg-192.168.$i.254.cfg
        echo "Generate MRTG report 2..."
        mrtg /etc/mrtg/mrtg-192.168.$i.254.cfg
        echo "Generate MRTG report 3...ok"

        # 根據設定檔產生網頁,以分公司 Gateway 為網頁標題
        indexmaker \
                --output=/var/www/mrtg/net/mrtg-192.168.$i.254.html \
                --title="192.168.$i.254" \
                /etc/mrtg/mrtg-192.168.$i.254.cfg
done
-----
3. chmod 711 /root/setup-mrtg.sh,
然後直接執行下去,按照上面範例會偵測 47 台ATU-R,大約20分鐘左右,可以先去泡個茶。
泡完茶後所有的網頁就建立完成了。

4. vi /root/run-mrtg.sh
語法:
-----
#!/bin/sh
LANG=C

# 這是 MRTG 的常駐程式,設定在 /etc/crontab 裡面,每五分鐘執行一次。
# 必須先以 /root/setup-mrtg.sh 設定好全部的設定檔。

# 這裡輸入要單獨偵測的 ATU-R,以空格分開。
ATU_R="202.xxx.xxx.142 192.168.0.252"

for ip in $ATU_R; do
        mrtg /etc/mrtg/mrtg-$ip.cfg > /dev/null 2>&1
done

# 這裡設定全部的分公司 Gateway,從 192.168.0.254 到 192.168.45.254,可自行增加。
for((i=0;i<46;i++))
do
        mrtg /etc/mrtg/mrtg-192.168.$i.254.cfg > /dev/null 2>&1
done
-----

chmod 711 /root/run-mrtg.sh

5. vi /etc/crontab
語法:
-----
*/5 * * * * root /root/run-mrtg.sh             #每五分鐘執行一次 MRTG 更新報表。
-----

然後 service crond restart 就完成了。

6. 如果產生的網頁有亂碼,就將 /etc/httpd/conf/httpd.conf
裡面的 AddDefaultCharset 改為 big5,然後 service httpd restart 就好了。

7. 如果同時對大量裝置做 MRTG,硬體配備要好一點才行。

arrow
arrow
    全站熱搜

    山村有祐 發表在 痞客邦 留言(0) 人氣()