Shell之expect的测试】的更多相关文章

测试:./sshLogin.sh Slave1 caipeichao 1qaz@WSX hadoop lk198981 HadoopCluster #!/usr/bin/expect -f #auto ssh login if {$argc<6} {    puts stderr "Usage: $argv0(host_name) $argv1(login_name) $argv2(login_pwd) $argv3(newuser) $argv4(newuserpwd) $argv5(n…
shell脚本中文件测试 author:headsen chen  2017-10-17  14:35:19 个人原创,转载请注明作者,否则 依法追究法律责任 [ -f  filename  ]   ,文件filename存在且为普通文件时,返回真(0) [ -d  filename ]  ,文件存在且为目录,返回真. [ -L filename  ],文件存在且为链接文件时,返回真 [ -e  filename ] , 文件或目录存在,返回真. [ -x  filename  ], 文件或目录…
Shell学习之条件测试 目录 逻辑测试 文件测试 数值比较 字符串比较 逻辑测试 格式: [ 表达式 ] 操作符 [ 表达式2 ] …… 命令1 操作符 命令2 …… 常用的操作符 ( 注意:-a和-o放在[]里面用,&&和||放在[]外面用 ) -a 或 && 逻辑与 -o 或 || 逻辑或 ! 逻辑否 文件测试 文件测试 格式1: [ 操作符 文件或目录 ] 格式2:test 操作符 文件或目录 常用的测试操作符 -d :测试是否为目录( Directory ) -e…
Shell结合Expect自动输入密码示例 #!/bin/bash cd /data/live /usr/bin/expect <<-EOF spawn git clone "ssh://xxxxxxxxxxxx" expect "*passphrase*" send "passwordhere\n" expect eof EOF time=`/bin/date "+%Y%m%d%H%M%S"` cd dir1 &…
expect介绍 借助Expect处理交互的命令,可以将交互 过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成.尤其适用于需 要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率 expect安装 [root@ansible ssh]# rpm -qa | grep expect       expect-5.45-14.el7_1.x86_64   [root@ansible ssh]# yum install expect expect 语法 expect […
shell 结合expect 写的批量scp脚本工具 except安装:http://www.cnblogs.com/lovychen/p/6525623.html expect用于自动化地执行linux环境下的命令行交互任务,例如scp.ssh之类需要用户手动输入密码然后确认的任务.有了这个工具,定义在scp过程中可能遇到的情况,然后编写相应的处理语句,就可以自动地完成scp操作了 在部署一个任务时,其中有一项必须的过程就是将一些文件,如安装包发送到大量的服务器上去.虽然已有宇哥的脚本可用:通…
shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同.字符长度是否为0,字符串是否为null(注:bash区分长度字符串和空字符串) “=”比较两个字符串是否相同,与“==”等价,如:if [“$a”=“$…
Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试判断,以减少程序运行的错误. 执行条件测试表达式后通常会返回"真"或"假",就行执行命令后返回的值为0表示真,非0表示假一样. Bash编程中条件测试常用的语法: 条件测试语法 说明 语法一:test<测试表达式> 这是利用test命令进行测试表达式的方法.…
六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括号两端必须要有空格 语法3:[[<测试表达式>]] #两端必须要有空格 语法4:((测试表达式)) #两端必不需要空格 语法5:(命令表达式) 语法6:命令表达式 实际应用展示 ①[]条件表达式 [root@centos6-kvm3 scripts]# [ -e /etc/hosts ] &…
1.文件测试表达式的用法 我们在编程时处理一个对象时,需要对对象进行测试,只有符合要求的才采取操作处理:这样做的好处是避免程序出错以及无所畏的消耗系统资源,这个测试的对象可以是文件.字符串.数字等. 下表为常用文件操作符 特别说明:这些操作符对于[[ ]].[].test几乎是通用的,更多的操作可以用man test 查看.上表中的-e只要是有文件就行不管是文件还是目录. 2.文件测试表达式举例 2.1 普通文件(测试文件类型) 2.2 目录文件(测试文件类型) 2.3 测试文件属性 2.4 测…
expect前言观察ssh登录的交互现象有些程序难以避免的需要交互.你该如何解决脚本与程序的交互问题?名词解释期待, 预期, 盼望, 预料,料想, 指望, 希望, 要求,想, 认为一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而Expect就使用来实现这种功能的工具. Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预.…
先用if 判断expect有没有安装 没有就yum install expect #!/bin/bash passwd='123456' /usr/bin/expect <<-EOF set time 30 spawn ssh -p18330 root@192.168.10.22 expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "$p…
1. 测试开关 Shell中自带的一些测试指令, 下表列出这些测试指令的含义以及是否可用于 test命令, bash, ksh. 开关 test bash ksh 定义 -a FILE   支持 支持 只是文件存在 -b FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的磁盘设备之类的块文件 -c FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的TTY设备之类的字符文件 -d FILE 支持 支持 支持 文件存在, 并且是一个标准目录 -e FILE…
在linux操作系统下,使用脚本自动化,一般由两种方案,方案一:telnet+ftp,方案二:ssh+scp+expect. 以下主要使用ssh+scp+expect为例进行说明使用方式. 第一步:安装expect:yum -y install expect 第二步:验证,执行expect是否正确 第三步:编写脚本 ssh_exec(){ ip=$ user=$ passwd=$ cmdstr=$ /usr/bin/expect <<EOF set spawn ssh expect { &qu…
条件测试 1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假, 则命令的Exit Status为1(注意与C语⾔言的逻辑表⽰示正好相反).例如测试两个数的大小关系: 虽然看起来很奇怪,但左方括号[确实是一个命令的名字,传给命令的各参数之间应该⽤空格隔开,比如,$VAR.-gt.3.]是[命令的四个参数,它们之间必须⽤空格隔开.命令test或[的参数形式是相同的,只不过test命令不需要]参数.以[命令为…
条件测试方法综述 test条件测试的简单语法及测试 范例6-1 测试文件(在test命令中使用-f选项:文件存在且为不同文件则表达式成立) [root@adminset ~]# test -f file && echo true || echo false false [root@adminset ~]# touch file [root@adminset ~]# test -f file && echo true || echo false true 范例6-2 测试字符…
本文主要介绍Ansible的几个命令模块,包括: command - 在远程节点上执行命令 shell - 让远程主机在shell进程下执行命令 script - 将本地script传送到远程主机之后执行 raw - 执行低级的和脏的SSH命令 expect - 执行命令并响应提示 telnet - 执行低级的和脏的telnet命令 command模块 简介 command模块用于在给的的节点上运行系统命令,比如echo hello. 它不会通过shell处理命令,因此不支持像$HOME这样的变…
转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或那样的条件测试语句 今天说说Linux中的常用的条件测试语句 1,判断两个数字的大小 -eq 相等或等于 -ne 不想等或不等于 -gt 第一个数大于第二个数 -lt 第一个数小于第二个数 -le 第一个数小于等于第二个数 -ge 第一个数大于等于第二个数 -z 空串 = 两个字符相等 != 两个字…
安装: yum list | grep expect yum install expect 批量创建用户: ansible mysqldb -m user -a 'name=ansible state=present' ansible mysqldb -m raw -a 'echo 123456|passwd --stdin ansible' 批量添加sudo权限: [root@zabbix ~]# cat ansible-sudo               ----编辑sudo文件 ## A…
1.条件测试:test或[ 如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为0 运行结果: 带与.或.非的测试命令[ ! EXPR ] : EXPR可以是上表中的任意一种测试条件,!表示逻辑反[ EXPR1 -a EXPR2 ] : EXPR1和EXPR2可以是上表中的任意一种测试条件,-a表示逻辑 与[ EXPR1 -o EXPR2 ] :EXPR1和EXPR2可以是上表中的任意一种测试条件,-o表示逻辑 或 2. if/then/el…
1.字符串测试操作符 字符串测试操作符的作用有:比较两个字符串是否相同.字符串的长度是否为零,字符串是否为NULL(注:bash区分零长度字符串和空字符串等) 下表为常用字符串操作符 也可以通过man test查看字符串测试操作符 字符串测试操作符提示: (1)-n比较字符串长度是否不为零,如果不为零则为真,如:[ -n "$myvar" ] (2)-z比较字符串长度是否等于零,如果等于零则为真,如:[ -z "$myvar" ] 特别注意:对于以上表格中的字符串测…
监控脚本项目 信号处理 1 什么是信号 由键盘组合键或者 kill 命令发出操作称之为信号 信号是发送给进程的,进程在收到信号后会作出默认的响应 2 为何要在进程内处理信号 进程在收到信号后会有默认的响应, 如果我们想改变进程在接收到信号后的反应,那么需要在进程内捕捉信号执行我们自定义的操作 主要的应用场景: 在进程内捕捉终止信号,然后忽略掉,从而达到让进程不受外界干扰正常运行完毕的效果 ps:不是所有的信号都可以被捕捉,比如-9 3.如何处理信号 trap "捕捉到信号之后要执行的命令&quo…
#!/bin/bash rm -f result.txt cat ip.txt | fping > result.txt 2行代码就搞定,很方便,初学shell,很强大,问了下同事,但是shell的高并发还是没py的强大 效果: ps 如果提示fping这个命令没有找到的话,直接yum install fping就OK了…
格式:test 测试条件 字符串测试: 注意空格: test str1 == str2 测试字符串是否相等 test str1 != str2 测试字符串是否不相等 test str1 测试字符串是否不为空 test -n str1 测试字符串是否不为空 test -z str1 测试字符串是否为空 整数测试 test int1 -eq int2 测试整数是否相等 test int1 -ge int2 测试int1是否>=int2 test int1 -gt int2 测试int1是否>int…
vi auto_ssh.exp #!/usr/bin/expect   set ipaddress "123.227.159.159" set passwd "你的密码" set timeout 30   spawn ssh root@$ipaddress   expect { "yes/no" {send "yes\r";exp_continue} "password" {send "$pass…
格式:test 测试条件 字符串测试: 注意空格: test str1 == str2 测试字符串是否相等 test str1 != str2 测试字符串是否不相等 test str1 测试字符串是否不为空 test -n str1 测试字符串是否不为空 test -z str1 测试字符串是否为空 整数测试 test int1 -eq int2 测试整数是否相等 test int1 -ge int2 测试int1是否>=int2 test int1 -gt int2 测试int1是否>int…
声明:$ 后面跟linux可执行命令 一.变量替换                   语法                      说明 ${变量名#匹配规则} 从变量的开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量的开头进行规则匹配,将符合最长的数据删除 ${变量名%匹配规则} 从变量的尾部进行规则匹配,将符合最短的数据删除 ${变量名%%匹配规则} 从变量的尾部进行规则匹配,将符合最长的数据删除 ${变量名/旧字符串/新字符串} 变量内容包含旧字符串,则第一个旧…
条件测试 (一)概念:对特定的条件进行判断,以决定如何执行操作,当条件成立时,测试语句的返回值为0,否则为其他数值,意思就是如果 echo $? 的值是0,那么条件成立.条件测试的分类:文件测试.整数测试.字符串测试.逻辑测试. 测试方法: 方法1:test 条件表达式 方法2:[  条件表达式  ] (二)测试方法: 1.文件测试 格式1:  [  操作符 文件或目录  ] 格式2:test  操作符 文件或目录 常用的测试操作符 -d :测试是否为目录( Directory ) -e :测试…
. 文件测试操作 ---------------- 返回true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个regular 文件(不是目录或者设备文件) -s 文件长度不为0 -d 文件是个目录 -b 文件是个块设备(软盘,cdrom 等等) -c 文件是个字符设备(键盘,modem,声卡等等) -p 文件是个管道 -h 文件是个符号链接 -L 文件是个符号链接 -S 文件是个socket -t 关联到一个终…
一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同.字符长度是否为0,字符串是否为null(注:bash区分长度字符串和空字符串) “=”比较两个字符串是否相同,与“==”等价,如:if [“$a”=“$b”],其中$a这样的变量最好用””括起来,因为如果中间有空格等就会出错.更好的方法是if [“${a}”=“${b}”]. “!=”比较两个字符串…