今天接到上面工作任务,让更改多台主机的主机名称。使用python paramiko Module,随手写了一个批量修改主机名的脚本。

#!/usr/bin/env python#-*- coding:utf-8 -*-import paramikoHOSTNAME='root'PORT=22PASSWD='123456'NUM=range(139, 144)def changNetwork():    """ change /etc/sysconfig/network HOSTNAME. """    name = 1    for i in NUM:        NM = "dcache-ct3-node%s.et.letv.com" % name        HOST = "10.180.91.%s" % i        ssh = paramiko.SSHClient()        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())        ssh.connect(HOST, port=PORT, username=HOSTNAME, password=PASSWD)        ssh.exec_command('sed -i "s/HOSTNAME=.*/HOSTNAME=%s/" /etc/sysconfig/network' % NM)        ssh.close()        name +=1def changeHostName():    """ change hostname. """    name = 1    for i in NUM:        NM = "dcache-ct3-node%s.et.letv.com" % name        HOST = "10.180.91.%s" % i        ssh = paramiko.SSHClient()        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())        ssh.connect(HOST, port=PORT, username=HOSTNAME, password=PASSWD)        ssh.exec_command('hostname %s ' % NM)        ssh.close()        name +=1def showNetwork():    """ show /etc/sysconfig/network HOSTNAME. """    name = 1    for i in NUM:        HOST = "10.180.91.%s" % i        ssh = paramiko.SSHClient()        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())        ssh.connect(HOST, port=PORT, username=HOSTNAME, password=PASSWD)        stdin, stdout, stderr = ssh.exec_command('cat /etc/sysconfig/network | grep "^HOSTNAME="')        for i in stdout:            print i        print HOST        ssh.close()        #print "dcache-zb6-node%s.et.letv.com" % name        #name +=1              def showHostName():""" show hostname. """    name = 1    for i in NUM:        HOST = "10.180.91.%s" % i        ssh = paramiko.SSHClient()        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())        ssh.connect(HOST, port=PORT, username=HOSTNAME, password=PASSWD)        stdin, stdout, stderr = ssh.exec_command('hostname')        for i in stdout:            print i        print HOST        ssh.close()if __name__ == "__main__":    changNetwork()    changeHostName()    showNetwork()    showHostName()