linux批量修改密码、拷贝文件至远程机器
来源:互联网 发布:欧洲 旅馆 网络 编辑:程序博客网 时间:2024/05/16 05:04
#!/bin/bash
#!/usr/bin/expect -f
#expect需要手动安装:解压/挂在系统镜像,package目录下搜索expect,拷贝到linux服务器下,rpm -ivh expect*进行安装,安装完成后,运行该脚本,sh auto_passwd_scp.sh
#待拷贝文件所在服务器ip(文件服务器ip),自行修改ip
File_Server_IP=192.168.1.1
#待拷贝文件所在路径,执行修改文件路径
File_Locate=/root/Desktop/file.tar
#远程服务器存放待拷贝文件的路径,自行修改目录
Remote_File_Dir=/tmp
#远程服务器欲修改的统一密码,自行修改密码
PASSWD=111111
#假设100台服务器主机ip和对应随机密码存放在“ip_pw_list.txt”文档里,存放格式为“ip 随机密码”,分行存放,示例如下:
#############################
# 192.168.1.1 password1
# 192.168.1.2 password2
# ......
# 192.168.1.100 password100
#############################
#获取100台服务器主机ip,赋值给变量IP
IP=`cat ip_pw_list.txt | awk '{print $1}'`
#获取100台服务器随机密码,赋值给变量PW
PW=`cat ip_pw_list.txt | awk '{print $2}'`
#将100个主机ip赋值给数组IP,IP[0]=192.168.1.1、IP[1]=192.168.1.2、...IP[99]=192.168.1.100
i=0
for IP_Temp in $IP
do
IP[$i]=$IP_Temp
i=$(($i+1))
done
#将100个主机的随机密码赋值给数组PW,PW[0]、PW[1]、PW[2]...PW[99]
j=0
for PW_Temp in $PW
do
PW[$j]=$PW_Temp
j=$(($j+1))
done
#ssh循环登陆远程服务器,修改密码,拷贝文件
for k in {0..99}
do
#ssh远程登陆服务器,并通过expect自动输入随机密码
expect -c "
set timeout 30;
spawn ssh root@${IP[$k]}
expect {
\"yes/no\" {send \"yes\r\";exp_continue}
\"password:\" {send \"${PW[$k]}\r\";interact}
}
"
#登陆远程服务器后,通过passwd命令修改root密码,通过expect自动传递修改密码
expect -c "
set timeout 30;
spawn passwd
expect {
\"password:\" {send \"$PASSWD\r\";exp_continue}
\"password:\" {send \"$PASSWD\r\";interact}
}
"
#登陆远程服务器后,通过scp命令拷贝文件到该远程服务器
expect -c "
set timeout 30;
spawn scp root@${File_Server_IP}:/$File_Locate /$Remote_File_Dir
expect {
\"yes/no:\" {send \"yes\r\";exp_continue}
\"password:\" {send \"$PASSWD\r\";interact}
}
"
#!/usr/bin/expect -f
#expect需要手动安装:解压/挂在系统镜像,package目录下搜索expect,拷贝到linux服务器下,rpm -ivh expect*进行安装,安装完成后,运行该脚本,sh auto_passwd_scp.sh
#待拷贝文件所在服务器ip(文件服务器ip),自行修改ip
File_Server_IP=192.168.1.1
#待拷贝文件所在路径,执行修改文件路径
File_Locate=/root/Desktop/file.tar
#远程服务器存放待拷贝文件的路径,自行修改目录
Remote_File_Dir=/tmp
#远程服务器欲修改的统一密码,自行修改密码
PASSWD=111111
#假设100台服务器主机ip和对应随机密码存放在“ip_pw_list.txt”文档里,存放格式为“ip 随机密码”,分行存放,示例如下:
#############################
# 192.168.1.1 password1
# 192.168.1.2 password2
# ......
# 192.168.1.100 password100
#############################
#获取100台服务器主机ip,赋值给变量IP
IP=`cat ip_pw_list.txt | awk '{print $1}'`
#获取100台服务器随机密码,赋值给变量PW
PW=`cat ip_pw_list.txt | awk '{print $2}'`
#将100个主机ip赋值给数组IP,IP[0]=192.168.1.1、IP[1]=192.168.1.2、...IP[99]=192.168.1.100
i=0
for IP_Temp in $IP
do
IP[$i]=$IP_Temp
i=$(($i+1))
done
#将100个主机的随机密码赋值给数组PW,PW[0]、PW[1]、PW[2]...PW[99]
j=0
for PW_Temp in $PW
do
PW[$j]=$PW_Temp
j=$(($j+1))
done
#ssh循环登陆远程服务器,修改密码,拷贝文件
for k in {0..99}
do
#ssh远程登陆服务器,并通过expect自动输入随机密码
expect -c "
set timeout 30;
spawn ssh root@${IP[$k]}
expect {
\"yes/no\" {send \"yes\r\";exp_continue}
\"password:\" {send \"${PW[$k]}\r\";interact}
}
"
#登陆远程服务器后,通过passwd命令修改root密码,通过expect自动传递修改密码
expect -c "
set timeout 30;
spawn passwd
expect {
\"password:\" {send \"$PASSWD\r\";exp_continue}
\"password:\" {send \"$PASSWD\r\";interact}
}
"
#登陆远程服务器后,通过scp命令拷贝文件到该远程服务器
expect -c "
set timeout 30;
spawn scp root@${File_Server_IP}:/$File_Locate /$Remote_File_Dir
expect {
\"yes/no:\" {send \"yes\r\";exp_continue}
\"password:\" {send \"$PASSWD\r\";interact}
}
"
done
0 0
- linux批量修改密码、拷贝文件至远程机器
- Linux远程批量修改服务器密码
- 批量修改linux密码
- Linux远程服务器之间下拷贝文件不输入密码
- linux 拷贝远程文件
- Linux 批量拷贝数据脚本 + ssh 无密码登陆远程LINUX主机
- expect无信任远程批量拷贝文件
- Linux 批量修改服务器密码
- linux shell批量拷贝文件
- linux 批量修改文件
- linux批量修改文件
- Linux远程服务器文件拷贝
- LINUX SCP 远程 文件 拷贝
- linux机器间文件拷贝
- Linux机器件拷贝文件
- python 远程批量更改linux主机密码
- linux下scp远程拷贝文件无需输入密码工具之expect
- linux 批量修改文件内容
- 深度优先算法--之模拟迷宫
- servlet之response和request对象的引用
- NGUI-EventDelegate使用
- 代码————刷新验证码
- Android开源动画框架:NineOldAndroids
- linux批量修改密码、拷贝文件至远程机器
- 美国NOAA/AVHRR遥感数据
- spring-boot中使用springloaded实现热部署
- 用字符指针变量指向一个字符串,然后输出字符及其长度
- Java1.5语法糖的味道--增强for循环
- 欢迎使用CSDN-markdown编辑器
- char如何计算溢出值
- Shell学习笔记(6)
- 芥末菌的算法笔记——递归与分治(二)二分搜索