自动批量对linux服务器安装配置NTP服务

发布时间:2025-09-21 点击:17
服务器
最近项目上新上了2台时钟设备,需要把网络内的一百多台linux服务器配置ntp服务,实现和时钟设备时间同步,为了避免每台设备挨个配置的麻烦,写了一个python脚本。脚本分3个文件,第一个是python脚本,第二个是主机清单,里面包含ip地址和密码两项,第三个是命令文件,包含从yum安装ntp软件包到配置ntp.conf参数文件到启动ntp服务所要执行的操作语句。执行脚本,调用这个两个文件,网络内的所有服务器ntp安装配置起服务就完成了。事实上这个脚本可以做各种批量操作,只需要改一下命令文件即可,脚本不用做任何更改。
cat cmd_list.txt
###配置ntp文件
mv /etc/ntp.conf /etc/ntp.conf.bak
echo 'server 192.168.5.200' >> /etc/ntp.conf
echo 'fudge 192.168.5.200 stratum 10' >> /etc/ntp.conf
###安装ntp软件包并启动ntp服务
rm /etc/yum.repos.d/*.repo
echo '[ol7_u5_base]' >> /etc/yum.repos.d/local.repo
echo 'name=oracle linux' >> /etc/yum.repos.d/local.repo
echo 'baseurl=http://192.168.5.250/redhat7' >> /etc/yum.repos.d/local.repo
echo 'gpgkey=http://192.168.5.250/redhat7/rpm-gpg-key-redhat-release' >> /etc/yum.repos.d/local.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/local.repo
echo 'enabled=1' >> /etc/yum.repos.d/local.repo
yum install -y ntp*
systemctl start ntpd
systemctl enable ntpd
cat host.txt
192.168.5.1
pass1
192.168.5.2 pass2

192.168.5.254 pass254
cat auto_ntp.py
import paramiko
import time
import sys
import socket
host = open(sys.argv[1])
host_list = []
username="root"
for hosta in host.readlines():
host_list.append(hosta.strip().split())
f = open('log.txt', 'a')
cmd = open(sys.argv[2])
for hostname,password in host_list:
ssh_client = paramiko.sshclient()
ssh_client.set_missing_host_key_policy(paramiko.autoaddpolicy())
try:
ssh_client.connect(hostname=hostname, username=username, password=password)
print("successfull connected to ", hostname)
cmd.seek(0)
stdin, stdout, stderr = ssh_client.exec_command('hostname')
f.write(hostname ' ' stdout.read().decode('utf-8') "\\\\n")
for ccc in cmd.readlines():
c = ccc.strip()
stdin, stdout, stderr = ssh_client.exec_command(c)
f.write(stdout.read().decode('utf-8') "\\\\n")
f.write(stderr.read().decode('utf-8') "\\\\n")
except paramiko.ssh_exception.authenticationexception:
print("user authentication failed for " username)
except socket.error:
print(hostname " is not reachable.")
cmd.close()
f.close()
ssh_client.close()
执行:
python auto_ntp.py host.txt cmd_list.txt
批量做其他任意操作均可,只要修改cmd_list.txt文件中的操作语句即可

域名不实名会怎么样?域名不实名会注销吗?
哪儿有重庆服务器租用云空间
教育直播获客秘密,都在这!
学生买阿里云服务器推荐
什么虚拟主机比较好
如何控制云服务器运行挂机程序
注册域名有什么好处?注册域名注意哪些细节?
在阿里云服务器在腾讯云备案可以