shell结合expect的非交互式脚本

简单需求来讲解shell+expect

先安装下expect,yum安装

yum install expect -y

#!/bin/bash

ip=‘192.168.80.20‘    #定义远程交换服务器的IP

password=‘[email protected]‘    #定义输入的密码

expect << EOF

spawn ssh [email protected]$ip ls    #在expect中执行命令

set timeout -1            #定义超时时间,-1为永不超时

expect "*:"                #如果输出*:

set timeout -1

send "$password\r"        #自动输入password

expect eof            #结束

EOF

时间: 2024-10-21 17:00:50

shell结合expect的非交互式脚本的相关文章

shell脚本分为三类:登录脚本、交互式脚本、非交互式脚本

一. 登录脚本类似于windows下的计算机设置中的登录脚本和账户设置下的登录脚本的合集(我是这么理解的哈). 其配置文件的关键词为prefile,它有以下几个关键配置文件: /etc/prefile 这个是计算机脚本; [$home/.prefile ; $home/.bash_prefile ; $home/.bash_login]这三个是账户脚本,根据不同发行版名字不同(坑爹的linux) ; 说明:/etc/prefile之所以这么牛逼,应该与其内部含有export有关,export定义

登录式与非登录式&amp;交互式与非交互式shell及其环境初始化过程

交互式shell和非交互式shell(interactive shell and non-interactive shell) 交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.退出.当你退出后,shell也终止了. shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行.在这种模式 下,shell不与你进行交互,而是读取存

/etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的区别

线上的memcached又挂了,仍然没有得到core文件.排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作目录,有可能core dump时没有工作目录写权限 这些脚本由crontab启动.脚本中没有设置工作目录,而这是非root用户的crontab.启动memcached时,工作目录不是memcached可执行文件所在目录.实验证明,这个是用户的home目录,crontab运行的脚本中打印pwd,结果是"home/work",work

expect非交互式功能实战

非交互式工具:expect,sshpass,pash 在管理机m01上面安装expece [[email protected] ~]# rpm -qa expect  #检查有没有安装expect[[email protected] ~]# yum install expect -y #用yum安装expect 安装完后再查看是否有 [[email protected] ~]# rpm -qa expectexpect-5.44.1.15-5.el6_4.x86_64 检查已经安装 非交互式生成

/etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的差别

线上的memcached又挂了.仍然没有得到core文件. 排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作文件夹,有可能core dump时没有工作文件夹写权限 这些脚本由crontab启动.脚本中没有设置工作文件夹.而这是非root用户的crontab.启动memcached时,工作文件夹不是memcached可执行文件所在文件夹.实验证明,这个是用户的home文件夹,crontab执行的脚本中打印pwd,结果是"home/work&quo

(转)SSH批量分发管理&amp;非交互式expect

目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3.3 利用rsync来实现增量备份 1.4 SSH批量管理分发脚本实战 1.5 SSH批量管理总结 2 非交互式expect 2.1 非交互式生成密钥及实现批量管理 2.2 一键批量安装httpd服务 2.3 一键自动化50台规模集群网站 1 SSH批量分发管理 基于口令的,如何实现批量管理:expe

推送文件(expect交互式方式与sshpass非交互式方式)

前提条件 以下两种推送的文件是SSH的公钥,推送方式依赖于SSH,基于SSH的相关方面操作和机器相关配置请参考我的上一篇博文"ssh服务批量管理例子" 1.expect交互式方式 1.1上传文件及文件内容 #以10机器为例. #执行rz –y分别上传"dis-sshkey"."expect-copy-sshkey.exp"和"iplist",三者文件内容如下: [[email protected] ~]$ ls -l dis-

交互式shell与非交互式shell

首先一点是明确的:/etc/profile是设置所有用户的环境变量的配置文件,/home/omm/.profile是针对特定的用户设置环境变量的配置文件(omm用户). 但是重要的区别是:/etc/profile并不是每次都会加载的.它要区分login,non-login,interactive和non-interactive 模式的情况. login 代表用户登入, 比如使用 "su -" 命令, 或者用 ssh 连接到某一个服务器上, 都会使用该用户默认 shell 启动 logi

交互式shell和非交互式shell、登录shell和非登录shell的区别

交互式shell和非交互式shell.登录shell和非登录shell的区别.首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录. 交互式shell和非交互式shell(interactive shell and non-interactive shell)交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.退出.当你退出后,shell也终止了.s