【Python】绑定修改网卡绑定关系的python程序
作者:互联网
标签: <绑定修改网卡绑定关系的python程序>
python -s ethx -l hostname 用来查看网卡信息,例如光卡还是电卡
python set_ethx.py -f ethx -i x.x.x.x -m 255.x.x.x -l [host] -e ethx 根据需要用来配置ifcfg-ethx文件,DECIVE=(-e 后面的参数)
- [代码][Python]代码
#!/usr/bin/env python
#-*-: coding: utf-8 -*-
import subprocess
import sys
import re
import optparse
import pxssh
import os
if sys.hexversion < 0x02040000:
print >> sys.stderr, 'Your python version is too old (%s)' % \
(sys.version.split()[0])
print >> sys.stderr, 'You need at least Python 2.4'
sys.exit(1)
class RemoteDispatch(object):
def __init__(self, host, usrname, password):
self.host = host
self.usr = usrname
self.pwd = password
def login(self):
self.s=pxssh.pxssh()
try:
self.s.login(self.host, self.usr, self.pwd)
except:
print "Login %s Failed !" % self.host
def trasmit_cmd(self, cmdline):
self.s.sendline(cmdline)
self.s.prompt()
return self.s.before.strip()
def logout(self):
self.s.logout()
class SetEthx(object):
def __init__(self, host, username, password, options):
self.opts = options
self.host = host
self.remote = RemoteDispatch(self.host, username, password)
self.sock = self.remote.login()
def search(self):
output = self.remote.trasmit_cmd("ethtool -i %s" % self.opts.search)
for i in output.split('\n')[1:]:
print i
def modify(self):
if self.opts.ip:
output = self.remote.trasmit_cmd("ifconfig %s" % self.opts.eth)
content = self.process(output)
self.remote.trasmit_cmd("echo '%s' > /etc//etc/sysconfig/network-scripts/ifcfg-%s" % (content, self.opts.file))
self.remote.logout()
else:
print "Error ! Please press -i x.x.x.x !"
sys.exit(1)
def process(self, output):
olist = output.split('\n')[1]
m = re.match(".*HWaddr (.*).*", olist)
if m:
hwaddr = m.group(1)
if hwaddr is None:
print "have no hwaddr !"
sys.exit(1)
else:
return "DEVICE=%s\nBOOTPROTO=static\nIPADDR=%s\nNETMASK=%sHWADDR=%s\nONBOOT=yes\n" % (self.opts.eth, self.opts.ip, self.opts.mask, hwaddr)
else:
print "Don't finde HWaddr work !"
sys.exit(1)
def parse_cmd():
p = optparse.OptionParser(description="ethernet setup", prog="set_ethx", version="1.0",
usage="%prog [options] [ethx]")
p.add_option("-s", "--search", action="store", dest="search", help="search ethernet tpye",
type="str")
p.add_option("-f", "--file", action="store", dest="ifcfg-ethx file", help="modified ifcfg file",
type="str")
p.add_option("-i", "--ip", action="store", dest="ip", help="setup ip", type="str")
p.add_option("-e", "--eth", action="store", dest="eth", help="set up ethx", type="str")
p.add_option("-m", "--mask", action="store", dest="mask", help="set up mask", type="str")
p.add_option("-l", "--host", action="store", dest="host", help="host name", type="str")
(opts, args) = p.parse_args()
return opts, args
def usage():
print "python set_ethx.py -s ethx -l [host]\npython set_ethx.py -f ethx -i x.x.x.x -m 255.x.x.x -l [host] -e ethx"
def main():
flag = False
USERNAME = 'xxx'
PASSWORD = 'xxxxxxx'
opts, args = parse_cmd()
try:
if opts.host:
obj = SetEthx(opts.host, USERNAME, PASSWORD, opts)
if opts.search:
obj.search()
flag = True
if flag == False:
if opts.file and opts.ip and opts.eth and opts.mask:
obj.modify()
except:
print "set_ethx.py --help"
usage()
sys.exit(1)
if __name__ == '__main__':
main()
资源分享qun-855408893 教程视频,工具,各类实战操作
标签:sys,Python,self,绑定,网卡,host,def,ethx,opts 来源: https://blog.csdn.net/jhj8989/article/details/94892604