① 如何在 linux 環境下利用 python 監聽當前系統的滑鼠事件
inux下好辦,所有的設備都當作文件處理了,在『/dev/input』目錄下找到滑鼠對應設備文件讀出來即可。
滑鼠設備文件是『/dev/input/mice』,讀3個位元組,三個位元組的值分別是『Button類型』,『X的相對位移』,『Y的相對位移』。取Button的低3位(Button & 0x07)。 0x01 -> LeftButtonDown, 0x02 -> RightButtonDown.
import struct
mou = open( "/dev/input/mice", "rb" );
def m_event():
m = mou.read(3)
b = ord( m[0] )
bl = b & 0x1
bm = ( b & 0x4 ) > 0
br = ( b & 0x2 ) > 0
x,y = struct.unpack( "bb", m[1:] )
print "Left:%d, Middle: %d, Right: %d, x: %d, y: %d\n" % (bl,bm,br, x, y)
while( 1 ):
m_event()
mou.close();
② Python 在 Linux 系統運維中都有哪些應用
Python對日常運維工作來說比Perl和Bash都弱。Python做Web開發也比PHP麻煩很多。我個人的感覺Python更像Java,不適合與Perl/Bash比較。
我個人常用的運維工具是Bash為主,Python主要用來做一些演算法演算。因為我的日常維護任務以文件系統維護為主,比較語言要結合場景。
絕大部分的應用需求,所有語言都能完成,但是難易程度不同,選擇語言要看開發者的熟練程度和需求的復雜程度。
如果只是「grep」需求,你選Bash執行grep最簡單,如果稍復雜就用awk,再復雜就用perl。用更通用的語言就是費力不討好。
如果是個矩陣計算需求,perl的數組能把你折騰死,bash的管道能把機器折騰死。
我下面這個觀點一定會有爭議(尤其是PHPer),我傾向於把高級語言分成三類:
1) 底層的C/C++
這是可以寫操作系統,操作硬體的。可以解決一切問題,但是絕大多數互聯網項目不應該用。
2) 中性的Java/Python/Ruby/.NET系列
這是做項目的主要語言,平衡開發效率和執行效率。沒有明顯的亮點,亦沒有明顯的缺點。
3) 特長的PHP/Bash/Perl
在某些特定領域,應該選擇這些有特長的語言。隨著需求越來越全面,語言的短板越用越多,應該控制擴散。
③ Python如何監測Linux隱藏進程
我理解你說的隱藏進程可能是類似惡意軟體隱藏自身的進程。
python可以通過讀取/proc的結果來對比ps的結果來找到和監視這些隱藏的進程。
④ python監控linux下啟動了多少進程
任何一種編程語言,啟動進程和關閉進程都是跟操作系統相關的操作,python中與操作系統打交道的話,推薦使用os模塊。
os.system() 函數可以啟動一個進程,執行完之後返回狀態碼。
os.fork() 復制一個進程,如果是子進程返回0,如果是父進程返回子進程的pid,使用這個函數的時候,建議你學習一下linux編程的知識。
os.popen 以管道的方式創建進程。
os.spawnl 也可以創建進程,並能指定環境變數。
os.kill(pid, sig) 關閉一個進程,pid是進程號,sig是信號。與fork配合使用,例如你剛才用fork創建了一個子進程,它的pid是11990, 那麼調用
os.kill( 11990, signal.CTRL_BREAK_EVENT)
就以ctrl+c的方式殺死了這個進程。
另外還有一個模塊multiprocessing,這個模塊封裝了很多創建進程和進程間通信的操作,可以讓你發揮多核的威力。
⑤ Python 在 Linux 系統運維中都有哪些應用
python在系統管理上的優勢在與強大的開發能力和完整的工具鏈。python的工程開發能力強大,遠強於各種shell和perl。易讀易寫,兼具面向對象和函數式風格,還有不錯元編程能力。通過系統化的將各種管理工具結合,對上述的各類工具進行二次開發,形成統一的伺服器管理系統。
和python類似的ruby也很適合編寫系統管理軟體,但是在相關庫和工具上,比python差太多。
舉個例子: 某牛人,精通 bash,python,perl,ruby ,在工作中寫了數百個單一功能的腳本(任何語言)來進行日常操作,涵蓋了監控,部署,網路配置,日誌分析,安全檢測 等等許許多多的方面,無所不包。他所作的,只是操作,並沒有把系統管理這項工作做好。再多的腳本,也只是把「操作」這個行為做到極致。寫再多的腳本,也不能轉化為公司在系統管理上的寶貴資產。
讓系統易於管理,是一個工程。只有像puppet(ruby),saltstack(python) 這樣的自動化管理工具,才能完整的描述整個系統,並且讓系統管理的方方面面納入統一的體系,而不是一堆腳本。
python在伺服器管理工具上非常豐富,配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進程管理 (supervisor) 雲計算(openstack) ...... 還有大部分系統C庫都有python綁定。
對於流程確定的事情,最終一定是納入系統管理的體系,寫成程序,成為系統的一部分。而不是無法復用游離與整體的各種腳本。
隨著雲計算時代的來臨,中小型公司,不需要運維了。大型公司,沒有工程開發能力的運維,是沒有競爭力的。
⑥ Python 在 Linux 系統運維中都有哪些應用
本人主要用shell,結合工作經驗,給出如下常用功能:
1.製作定時任務,可以獲得系統狀態,然後截取系統狀態,發送至故障監控平台或簡訊平台,實現故障的自動預警。
2.提取數據,形成文本,處理文本,得到規格化的數據,提供給相關部門使用。
3.製作shell互動式菜單,提供給其他運維值班人員使用,用以手工監控系統各種狀態
4.版本升級、系統變更等操作需要使用。
⑦ 使用python,在linux上監控遠程windows的CPU、硬碟、內存使用率
你需要安裝wmic,它實現了linux下能使用wmi,安裝以後就可以用了,下面是例子。
import wmi_client_wrapper as wmi
wmic = wmi.WmiClientWrapper(
username="Administrator",
password="password",
host="192.168.1.149",
)
output = wmic.query("SELECT * FROM Win32_Processor")
⑧ Python 在 Linux 系統運維中都有哪些應用
我更喜歡用系統管理形容運維項工作運維聽起偏執行項工作python系統管理優勢與強發能力完整工具鏈python工程發能力強遠強於各種shellperl易讀易寫兼具面向象函數式風格錯元編程能力通系統化各種管理工具結合述各類工具進行二發形統伺服器管理系統
python類似ruby適合編寫系統管理軟體相關庫工具比python差太
舉栗: 某牛精通 bash,python,perl,ruby ,工作寫數百單功能腳本(任何語言)進行操作涵蓋監控部署網路配置志析安全檢測 等等許許面所包所作操作並沒系統管理項工作做再腳本操作行做極致寫再腳本能轉化公司系統管理寶貴資產
讓系統易於管理工程像puppet(ruby)saltstack(python) 自化管理工具才能完整描述整系統並且讓系統管理面面納入統體系堆腳本
python伺服器管理工具非豐富配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進程管理 (supervisor) 雲計算(openstack) ...... 部系統C庫都python綁定
於流程確定事情終定納入系統管理體系寫程序系統部復用游離與整體各種腳本
隨著雲計算代臨型公司需要運維型公司沒工程發能力運維沒競爭力