跳到主要内容

1、批量修改主机名

https://onedayxyy.cn/scripts/Batch_execution_linux_command/Batch_execution_linux_command_modify_hostname/ip.txt

ip.txt

/192.168.1.1/newName1/
/192.168.1.2/newName2/

https://onedayxyy.cn/scripts/Batch_execution_linux_command/Batch_execution_linux_command_modify_hostname/ModifyHostname.py

ModifyHostname.py

import paramiko
import sys

def ssh_exec_cmd(hostname, port, username, password, command):
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname=hostname, port=port, username=username, password=password)
# 执行命令
stdin, stdout, stderr = ssh.exec_command(command)
# 获取命令结果
cmd_result = stdout.read()
# 关闭连接
ssh.close()
# 返回结果
return cmd_result.decode()

#注意:
# 命令列表(截取掉第一个元素)
cmd_args = sys.argv[1:]
# 把列表里的元素用空格连接,组成命令
cmd = ' '.join(cmd_args)


# for循环遍历列表
for server in open(r'ip.txt'):
ip=server.split("/")[1]
value=server.split("/")[2]
# print(ip)
# print(value)


# 执行命令
result = ssh_exec_cmd(hostname=ip, port=22, username='root', password='123456',command="hostnamectl --static set-hostname {}".format(value))
result = ssh_exec_cmd(hostname=ip, port=22, username='root', password='123456',command="hostname")
# result = ssh_exec_cmd(hostname=ip, port=22, username='root', password='password',command='sh test.sh') #执行脚本也是没问题的
# 输出结果
print(ip,"has be modified success !!!")
print(result)