2016/04/17

因為ascenflow GG了
所以把認証移到forti上去
順便想看一下線上人數並記錄
但找了一下forti的mib
並沒有提供這個值
所以只好自行寫程式來撈了

使用python來撈目前online user的所有資料 並從中取出線上人數 在輸出的最後一行
直接使用shell也可以

#!/usr/bin/python

import os
import telnetlib

host="192.168.1.1"
user="admin"
passwd="password"

tn = telnetlib.Telnet(host)

tn.read_until("FG600C login: ")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(passwd + "\n")
tn.read_until("FG600C # ")
tn.write("diagnose firewall auth filter group auth_user_group(radius_server)" + "\n")
tn.read_until("FG600C # ")
tn.write("diagnose firewall auth list" + "\n")
#tn.read_until("FG600C # ")
tn.write("exit" + "\n")

print tn.read_all()
tn.close()

取出後把值吐給cacti來畫圖

步驟如下

1. 建立data input methods 使用自行寫好的程式










2. 使用步驟1 的資料來新增data templates














3.使用步驟2 的資料來產生 graph templates













4. 在forti上新增步驟3所產生的graph template






等待一段時間後畫出的圖如下












發現有小數出現 雖然說不太會影響判讀 但感覺就是怪怪的
找了一下資料
發現把graph template的gprint type改成exact numbers就可以顯示整數了













改好後如下圖 看起來正常多了









2016/04/06

如何使用python利用telnet指令到網路設備下指令並捉取回傳的資料
範例如下 

#!/usr/bin/python

import os
import telnetlib

host="1.1.1.1"
user="abc"
passwd="password"

tn = telnetlib.Telnet(host)
tn.read_until("login: ")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(passwd + "\n")

#read_until()到下完password 即可 接下來的指令必須一直下
#不再使用read_until() 否則最後的 print tn.read_all() 會沒有資料

tn.write("ls -al" + "\n")
tn.write("exit" + "\n")
print tn.read_all()

2016/04/02

有台ubuntu好久沒update了
今天要update時出現以下的訊息

W: GPG error: http://tw.archive.ubuntu.com trusty Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/tw.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
E: The package lists or status file could not be parsed or opened.

看來好像是list有問題
找了下一下資料
用以下的方法處理後就ok了

cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get update