服务器
最近项目中新出现了两台钟表设备。 必须将网络中的100多台linux服务器配置为NTP服务器,以实现与时钟设备的时间同步。 为了避免逐一配置每个设备的麻烦,编写了python脚本。 脚本分为三个文件,第一个是python脚本,第二个是主机清单,其中包含IP地址和密码两个文件。 第三个命令文件包含yum在安装ntp软件包、配置ntp.conf参数文件和启动ntp服务之间执行的操作语句。 当运行脚本并调用这两个文件时,网络中的所有服务器NTP安装都将配置并完成服务。 事实上,该脚本可以执行各种批量操作,只需修改命令文件,而无需对脚本进行任何修改。
cat cmd_list.txt
###NTP文件配置
mv/etc/NTP.conf/etc/NTP.conf.bak
echo&; #039; server192.168.5.200&; #039; /etc/NTP.conf
echo&; #039; fudge 192.168.5.200 stratum 10 & amp; #039; /etc/NTP.conf
# # #安装NTP程序包并启动NTP服务
rm /etc/yum.repos.d/*.repo
echo&; #039; [ol7_U5_base]&; #039; /etc/yum.repos.d/local.repo
echo&; #039; name=OracleLinux&; #039; /etc/yum.repos.d/local.repo
Echo&; #039; base URL=http://192.168.5.250/red hat7& amp; #039; /etc/yum.repos.d/local.Repo
ECHO&; #039; gpg key=http://192.168.5.250/red hat7/rpm-gpg-key-red hat-release & amp; #039; /etc/yum.repos.d/local.reecal
ECHO&; #039; gpgcheck=1&; #039; /etc/yum.repos.d/local.repo
Echo&; #039; enabled=1&; #039; /etc/yum.repos.d/local.repo
yum install -y ntp*
系统开始ntpd
系统启用ntpd
cat host.txt
192.168.5.1
通过1
192.168.5.2通过
……
192.168.5.254通过254
cat auto_ntp.py
导入参数
导入时间
导入系统
导入套接字
host=open(sys.argv[1] ) ) ) ) ) ) ) )。
host_list=[]
username=&; #039; 根&映射; #039;
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 (
sh _ client.set _ missing _ host _ key _ policy ( paramiko.autoaddpolicy ( )
try :
ssh _ client.connect ( hostname=hostname,username=username,password=password ) )。
print(successfullconnectedto,hostname ) )。
cmd.seek(0) )。
stdin,stdout,stderr=ssh _ client.exec _ command ( hostname ) ) ) )。
f.write(hostname&; #039; stdout.read ).decode ) &; #039; utf-8&; #039; ) ) (\n ) ) ) ) ) ) ) ) ) ) ) 652 )
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 ) )
exceptparamiko.ssh _ exception.authenticationexception :
打印( userauthenticationfailedfor & amp ); #039; username ) )。
except socket.error :
打印(主机名称& amp; #039; isnotreachable.&; #039; )
cmd.close (
f.close ( ) )
ssh_client.close (
执行:
python auto _ NTP.py host.txt cmd _ list.txt
通过修改cmd_list.txt文件中的操作语句,可以批量执行任何其他操作
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn