首页 > 系统相关 >shell脚本,结合expect给当前网段所有主机分发任意文件

shell脚本,结合expect给当前网段所有主机分发任意文件

时间:2023-06-21 10:01:30浏览次数:49  
标签:分发 shell 网段 log ip expect test txt root

1.安装expect yum -y install expect

2.root目录下创建iplist.txt文件(要分发的IP地址) 192.168.100.129 192.168.100.130

3.root目录下创建user.txt(是服务器的密码) 123456 123456 4.创建脚本 test.sh,test.log(脚本后面不可以有注释的)

#!/bin/bash
echo "拷贝情况如下:" > /root/test.log
n=`cat /root/iplist.txt | wc -l` #分发的ip数量
for (( i=1; i<=$n; i++ ))
do
	passwd=`cat /root/user.txt|head -$i|tail -1`#第i个IP地址的密码

    ip=`cat /root/iplist.txt|head -$i|tail -1`#第i个IP地址
    echo $ip
##自动交互
/usr/bin/expect <<EOF
spawn scp /root/1.txt $ip:/root/
expect "yes/no" {send "yes\n;exp_untinue"}
expect "password" {send "$passwd\n"}
expect eof
EOF
if [ $? -eq 0 ];then
   echo "$ip:成功" >>/root/test.log
else
   echo "$ip:失败" >>/root/test.log
fi        
done

标签:分发,shell,网段,log,ip,expect,test,txt,root
From: https://blog.51cto.com/u_15411817/6527484

相关文章

  • pycharm 中shell无法打开
    python3manage.pyshll无法打开调试命令行?......
  • 使用poi时报错:java.io.EOFException: Unexpected end of ZLIB input stream
    原文:点击查看代码FileexcelFile=newFile(filePath);try{if(excelFile.exists()){wb=newSXSSFWorkbook(newXSSFWorkbook(excelFile),1000,true);}else{wb=newSXSSFWorkbook(1000);}}catch(IOExceptione){logger.error(tra......
  • shell $?退出值含义,退出状态码
    Shell中运行的命令会使用0-255之间的整数值,作为退出状态码,并以此来告知shell该命令执行的状态。通常情况下,约定0代表命令成功结束,非0代表程序非正常退出。典型退出状态码及其含义含义0命令运行成功1通知未知错误2误用shell命令126命令不可执行127没有找到命令......
  • debian11 安装powershell,powercli
    习惯了Linux,用不惯Windowssudoaptupdatesudoaptinstall-ycurlgnupgapt-transport-httpscurlhttps://packages.microsoft.com/keys/microsoft.asc|sudogpg--dearmor-o/etc/apt/trusted.gpg.d/microsoft.gpgsudoecho"deb[arch=amd64]https://packages.m......
  • Linux shell内置变量
    BashShell环境变量变量说明$*含有所有命令行参数(以单个文本值的形式)$@含有所有命令行参数(以多个文本值的形式)$#命令行参数数目$?最近使用的前台进程的退出状态码$-当前命令行选项标记$$当前shell的进程ID(PID)$!最近执行的后台进程的PID$0命令行中......
  • 批量打印文件doc,设置几分,powershell实现
    $folderPath="C:\path\to\folder"$printCopies=3Get-ChildItem-Path$folderPath-Filter*.doc|ForEach-Object{for($i=0;$i-lt$printCopies;$i++){Start-Process-FilePath$_.FullName-VerbPrint}}#一定要指定默认打印机......
  • 更改centos linux 7ip地址的shell语句
    #!/bin/sh#autoChangeipnetmaskgatewayscripts#chenhao2023-06-17cat<<EOF++++++++自动:修改ip和主机名等相关信息+++++++++ETHCONF=/etc/sysconfig/network-scripts/ifcfg-ens33HOSTS=/etc/hostsNETWORK=/etc/sysconfig/networkDIR=/data/backup/`date+%Y%......
  • 《Linux命令行与shell脚本编程大全》研读笔记
    目录命令总结进程相关环境变量相关第六章Linux环境变量命令总结进程相关命令名称作用举例psProcessStatus,用来列出系统中当前运行的那些进程ps-ftop动态地显示进程信息top环境变量相关命令名称作用举例env列出全局环境变量env......
  • Windows下载更新powershell
    在使用windows系统默认的powershell时,打开使用的时候一般都会碰到以下这种情况,有新的版本可以尝试使用在powershell中使用命令:$PSVersionTable;可以查看到当前powershell的一些信息安装新版本powershellWindows官方powershell文档:https://aka.ms/pscore6Powershell7.1的官方Git......
  • Shell-特殊符号
    变量说明:$$——Shell本身的PID(ProcessID)$!——Shell最后运行的后台Process的PID$?——最后运行的命令的结束代码(返回值)$-——使用Set命令设定的Flag一览$*——所有参数列表。如"$*"用「"」括起来的情况、以"$1$2…$n"的形式输出所有参数。$@——所有参数列表。如......