今天接到上面工作任务,让更改多台主机的主机名称。使用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()