系統運維
使用模塊queue 隊列控制訪問全局變量
創新互聯建站專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站制作、成都網站建設、南縣網絡推廣、微信小程序開發、南縣網絡營銷、南縣企業策劃、南縣品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創新互聯建站為所有大學生創業者提供南縣建站搭建服務,24小時服務熱線:028-86922220,官方網址:vcdvsql.cnsuprocess 創建子進程生成多個shell
此腳本可用于網絡割接改造時 判斷各個設備的網絡連通性,ip地址和設備名字均從企業配置庫讀取。利用隊列控制變量讀取。2秒之內快速ping完
#!/usr/bin/python #-*-?coding:?utf-8?-*-? from?threading?import?Thread import?subprocess from?Queue?import?Queue import?pymysql num_threads=10 q=Queue() def?pingme(i,queue): ????while?True: ????????ip=queue.get() ????????ret=subprocess.call(\'ping?-c?1?%s\'?%?ip[0],shell=True,stdout=open(\'/dev/null\',\'w\'),stderr=subprocess.STDOUT) ????????#[接受變量字符串為命令,ping發送一個ICMP請求,并且將標準輸出重定向到/dev/null,相當于丟棄,并且將標準錯誤輸出重新定向到標準輸出。 ????????這條語句返回其實就是ping值,就是python程序先創建shell進程,shell創建ping進程,ping進程運行返回值被shell等待,shell返回值給 ????????python程序wait,如果成功則為0.] ????????if?ret==0:?? ????????????print?\'%s-%s?is?up!\'?%(ip[1],ip[0]) ????????elif?ret==1: ????????????print?\'%s?is?down...\'%(ip[1],ip[0]) ????????queue.task_done() #start?num_threads?threads?? for?i?in?range(num_threads): ????t=Thread(target=pingme,args=(i,q))#多線程調用 ????t.setDaemon(True)?#設置守護線程 ????t.start() db?=?pyMysql.connect( ????host=10.50.99.247, ????user=network, ????passwd=xxxx, ????port=3306, ????db=network, ????charset=\'utf8\') cursor?=?db.cursor() cursor.execute(select?ipadd,name?from?net_dev?where?`group`?like?\'xxx%\'?) data?=?cursor.fetchall() for?i?in?data: ????q.put(i)?#上傳列表 q.join(); print?\'完成\' ~
批量測試腳本
當前標題:python多線程ping2秒ping完500個ip地址
瀏覽地址:http://vcdvsql.cn/article40/cheieo.html
成都網站建設公司_創新互聯,為您提供域名注冊、品牌網站設計、關鍵詞優化、電子商務、營銷型網站建設、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯