批量修改主机名
脚本内容如下
import os
import subprocess
# 设置要修改的主机名前缀
NEW_HOSTNAME_PREFIX = 'server'
# 设置要修改主机名的IP地址列表
TARGET_IPS = ['10.0.0.1', '10.0.0.2', '10.0.0.3']
def change_hostname(ip, new_hostname):
"""使用SSH远程修改主机名"""
ssh_cmd = f'ssh root@{ip} "hostnamectl set-hostname {new_hostname}"'
subprocess.run(ssh_cmd, shell=True, check=True)
print(f'主机 {ip} 的主机名已修改为 {new_hostname}')
def main():
for i, ip in enumerate(TARGET_IPS, start=1):
new_hostname = f'{NEW_HOSTNAME_PREFIX}{i:02d}'
try:
change_hostname(ip, new_hostname)
except subprocess.CalledProcessError as e:
print(f'无法修改主机 {ip} 的主机名: {e}')
if __name__ == '__main__':
main()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
注意,该脚本假设您已经在目标主机上配置了无密码SSH访问权限。如果没有,您需要手动输入密码,或者使用SSH密钥对进行身份验证。
上次更新: 2024/12/04, 17:15:49