標籤:網域名稱解析 python python執行系統命令
python指令碼:
21,0-1 All#!/usr/bin/python# -*- coding: utf-8 -*-#此指令碼用於檢測網域名稱解析是否正常import osnamelist = {‘www.51cto.com‘:‘218.11.0.91‘,‘www.51talk.com‘:‘60.205.82.82‘}mail = [‘[email protected]‘,‘[email protected]‘]def check_domain(): ‘‘‘使用nslook網域名稱解析並與字典ip對比,如果解析異常發郵件給指定收件者‘‘‘ for i in namelist: address = os.popen("nslookup %s | grep -v ‘#53‘ | awk -F‘:‘ ‘/^Address/{print $2}‘" % i).read().strip() if (address == namelist[i]): pass else: for j in mail: os.popen("echo ‘%s網域名稱解析異常,請確認!‘| mail -s ‘%s網域名稱解析異常‘ %s" %(i,i,j)) #os.popen括弧中百分比符號後面的i,i,j分別是將python的指定變數傳到shell命令中check_domain()
小結:
上述python指令碼中,需要將python中的某些變數傳遞給shell中引用,在此總結學習到的幾種方法如下
執行個體1:
#!/usr/bin/python# -*- coding: utf-8 -*-import osvar = ‘test‘os.environ[‘var‘] = str(var) #environ的索引值必須是字串os.system(‘echo $var‘)
執行個體2:
#!/usr/bin/python# -*- coding: utf-8 -*-import osvar = ‘test‘os.system("echo %s" % var)
執行個體3:
#!/usr/bin/python# -*- coding: utf-8 -*-import osvar = ‘test‘output = os.popen("echo %s" % var)print output.read().strip()
本文出自 “Just do myself” 部落格,請務必保留此出處http://liubin0505star.blog.51cto.com/5550456/1884233
使用python指令碼監控指定網域名稱解析