linux 批量修改主机名脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 批量修改主机名脚本相关的知识,希望对你有一定的参考价值。
求一批量修改主机名脚本,一个IP地址对应一个主机名,不管是python expect shell脚本 只要能达到目录即可! 在线等,thanks......
参考技术A 以下方法可以实现你的要求#!/bin/bash
for i in `cat server`
do
Ipaddr=`echo $i|awk 'print $1'`
#Uname=`echo $i|awk 'print $2'`
#Upasswd=`echo $i|awk 'print $3'`
/usr/bin/expect >/dev/null <<EOF1
set timeout 5
spawn ssh root@$Ipaddr
#spawn ssh $Uname@$Ipaddr
expect
"*yes/no" send "yes\r"; exp_continue
"*assword:" send "root\r"
# "*assword:" send "Upasswd\r"
expect "#*"
send "修改主机名;\r"
send "重启服务;\r"
expect eof
EOF1
done追问
能否把 cat server 内容举例出来,thanks.....
追答192.168.1.1 root root ----这种格式
本回答被提问者采纳 参考技术B 1、为了脚本在目标主机执行命令,你需要实现ssh无密码访问目标主机2、ip.txt每行一个ip,新主机名包含ip,-p22不是必须的,可以去掉,或者替换成ssh定制的端口。
3、实例
#!/bin/bash
for dst_ip in `cat ip.txt`;do
HOSTNAME=`ssh -p22 root@$dst_ip "hostname"`
NEWNAME=server_$dst_ip
ssh -p22 root@$dst_ip 'sed -i 's!$HOSTNAME!$NEWNAME!g' /etc/sysconfig/network'
ssh -p22 root@$dst_ip 'service syslog restart'
done追问
您好:
我刚试了你写的脚本,当执行完脚本以后,脚本所在的服务器可以更改主机名,另外两台远程服务器无法更改,方便的话加我QQ 553188870。。。。。。。
谢谢
批量修改Linux密码脚本(Python)
搭建环境
centos 7.4
使用脚本
python
批量修改connect用户的密码
生成密码为随机密码 保存为xls文档
#!/usr/bin/env python # -*- coding: utf-8 -*- ############################################ #通过脚本批量修改Linux主机密码并保存到xls中 #雪文龙 2018-5-18 V1 # #修改者:xxx #修改时间:2018-xx-xx #修改内容:修改内容描述 ############################################ import random import string,os import pexpect import xlrd,xlwt from xlwt import Style from xlutils.copy import copy def passwd_creat(): salt = ‘‘.join(random.sample(string.ascii_letters + string.digits, 8)) return salt def passwd_change(userip, oldpasswd, newpasswd): child = pexpect.spawn(‘ssh connect@‘+userip) ###connect 用户可改root fout = file(‘/home/shell/passwd/newpasslog.txt‘,‘a‘) ##定义日志文件, child.logfile = fout index = child.expect([‘password:‘,‘continue connecting (yes/no)?‘]) if index == 0: child.sendline(oldpasswd) elif index == 1: child.sendline(‘yes‘) child.expect(‘password:‘) child.sendline(oldpasswd) child.expect(‘$‘) child.sendline(‘sudo -i‘) child.expect(‘#‘) child.sendline(‘echo ‘+newpasswd+‘ | passwd --stdin connect‘) ### connect 用户可改root child.expect(‘#‘) child.sendline(‘exit‘) def open_excel(passwdfile): data = xlrd.open_workbook(passwdfile) return data def get_coldata(passwdfile,sheet_name,num): data = open_excel(passwdfile) table = data.sheet_by_name(sheet_name) coldata = table.row_values(num) return coldata def get_rownum(passwdfile,sheet_name): data = open_excel(passwdfile) table = data.sheet_by_name(sheet_name) rowsNum = table.nrows #获取总行数 colsNum = table.ncols #获取总列数 return rowsNum,colsNum def add_newpwd(row, col, str): rb = xlrd.open_workbook(passwdfile, formatting_info=True) wb = copy(rb) ws = wb.get_sheet(0) ws.write(row, col, str) wb.save(passwdfile) if __name__ == "__main__": passwdfile = "/home/shell/passwd/newpasswd.xls" #文档读取输出路径 sheet_name = "Sheet1" rowsNum, colsNum = get_rownum(passwdfile,sheet_name) add_newpwd(0,colsNum,‘newpasswd‘) for i in range(1,rowsNum): newpasswd = passwd_creat() coldata = get_coldata(passwdfile,sheet_name,i) passwd_change(coldata[0], coldata[1], newpasswd) add_newpwd(i,colsNum,newpasswd)
1. 上传脚本,以及脚本需要的模块
1.1 创建转到脚本,模块包存放地址。
1.2安装上传工具。
1.3上传模块包脚本。
rz上传
sz下载
2.安装所需要的模块。
2.1 解压gz包。
2.2 cd到解压文件目录下
2.3 执行脚本安装模块
目录下的所有gz包都要安装过程略过
3.执行脚本测试实验。
3.1创建一个connect用户并设置密码。并登陆测试。
3.2创建文档(文档名需要和脚本里的名称一样)
3.3上传文档到定义的路径下
3.4执行脚本测试
3.5
sz下载表格查看密码
3.6 使用新密码登陆测试
以上是关于linux 批量修改主机名脚本的主要内容,如果未能解决你的问题,请参考以下文章