場景是這樣的:一個生産機房,會有很多的測試機器和生産機器(也就是30台左右吧),由于管理較為混亂導緻了哪台機器有人用、哪台機器沒人用都不清楚,進而産生了一個想法--利用一台機器來管理所有的機器,記錄裝置責任人、裝置使用狀态等等資訊....那麼,為什麼選擇python,python足夠簡單并且擁有豐富的第三方庫的支援。
由于剛參加工作不久,對這些東西也都沒有接觸過,輪崗到某個部門需要做出點東西來(項目是什麼還沒情況,就要做出東西來,沒辦法硬着頭皮想點子吧)。。。
本想做一個簡單點的自動化測試的工具,但這項目的測試方法和測試用例暫時不能使用這種通用的測試手段(輸入和輸出都确定不了),進而作罷...

那麼做點什麼東西,經常發現同僚們問208誰用的?201誰用的?那IP是我的!!!你是不是把我得網線給拔掉了?242那機器到底是哪台?
突然間,春天來了,是不是可以做一個系統用來檢測IP和記錄裝置的使用人,甚至可以按需要在某台裝置上運作一個腳本或指令?把這個矮矬窮的想法和leader溝通過後,确認可以做,那麼就開始吧!!!
該系統的大概思想:
1. 要獲得所有伺服器的各種資訊,需要在任意一台伺服器上部署一個agent作為資訊擷取的節點,定時向管理伺服器節點發送伺服器資訊資料。
2. server作為綜合管理節點,接收并儲存agent送出的資訊。
3. 為了友善使用,采用web頁面的形式做展示。
1. 開發語言:python
之是以選擇python,簡單,第三方庫豐富,不用造輪子
2. 資料庫:mysql
簡單、易用
3. webpy:web架構
入門簡單、部署友善
4. bootstrap:前端架構
不要關心太多前端問題
5. paramiko:python庫,遵循SSH2協定,支援以加密和認證的方式,進行遠端伺服器的連接配接
通過SSH方式連接配接agent伺服器:遠端運作指令、傳輸檔案
6. scapy: python庫,可用來發送、嗅探、解析和僞造網絡資料包,這裡用來掃描IP
7. MySQLdb: 連接配接mysql
8. shell 和 python腳本接口: 為其他人提供shell腳本的接口
1. 前端對我來說是新東西,從來沒弄過,頁面的動畫效果,腳本運作時的過渡都是需要考慮的,開始考慮利用倒計時,但是這個時間是不可控的,後來采用ajax來處理這個問題
2. agent要自動部署到每台機器,并可以通過server來控制重新整理時間
3. 建立一個可擴充的表是非常重要的,而且一些重要的資訊需要寫入磁盤,在資料庫失效的情況下,可以從磁盤擷取資料
4. 資料庫的連接配接,如果長時間沒有操作的話會逾時,要考慮到
... ...
1. website.py為webpy的主程式,設定了url映射
2. model.py為webpy的url映射類,處理請求和傳回
3. static中存放靜态資源
4. scripts用來存放處理的腳本,這裡起的名字有些問題
使用MyQSLdb連接配接mysql,在這裡我沒有使用webpy提供的資料庫接口,而是自己封裝了一套
paramiko實作ssh連接配接、與資料傳輸、執行指令和腳本
View Code
使用scapy進行IP掃描
本文轉自cococo點點部落格園部落格,原文連結:http://www.cnblogs.com/coder2012/p/4034614.html,如需轉載請自行聯系原作者