系统操作和维护
使用模块队列队列控制对全局变量的访问
sup process创建一个子流程来生成多个shell。
该脚本可用于判断网络割接转换时各设备的网络连通性,从企业配置库中读取ip地址和设备名称。使用队列来控制变量读取。2秒内快速Ping通。
#!/usr/bin/python
#-*-?编码:utf-8?-*-?
从哪里?穿线?进口?线
进口?子过程
从哪里?排队?进口?长队
进口?pymysql
线程数=10
q=队列()
def?pingme(我,队列):
什么时候?真实:
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程序等待,如果成功则为0。]
如果?ret==0:
打印?\\\'%s-%s?是吗?起来。\\\'%(ip[1],ip[0])
埃利夫?ret==1:
打印?\\\'%s?是吗?向下.\\\'%(ip[1],ip[0])
queue.task_done()
#开始?线程数?线
为了什么?我?在?范围(线程数):
T=thread (target=pingme,args=(I,q)) #多线程调用
t.setDaemon(True)?#设置守护线程
启动()
db?=?pyMysql.connect(
主机=10.50.99.247,
用户=网络,
passwd=xxxx,
端口=3306,
db=网络,
charset=\\\'utf8\\\ ')
光标?=?db.cursor()
游标. execute(选择?ipadd,名字?从哪里?net_dev?在哪里?`组`?比如?\\\'xxx%\\\ ')
数据?=?cursor.fetchall()
为了什么?我?在?数据:
q.put(i)?#上传列表
q . join();
打印?\ \ '完成\ \ '
~
批量测试脚本
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。