ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python】绑定修改网卡绑定关系的python程序

2019-07-06 20:37:26  阅读:209  来源: 互联网

标签:sys Python self 绑定 网卡 host def ethx opts


标签: <绑定修改网卡绑定关系的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 后面的参数)

  1. [代码][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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有