expect.sh】的更多相关文章

#!/usr/bin/expect spawn /usr/bin/ssh root@192.168.43.43 -p 22 expect "password:" send "tigergao\r" expect efo interact…
原文章摘自:http://lizhenliang.blog.51cto.com/7876557/1607723/ Linux下实现免交互登陆一般有两种: 1. SSH无密码认证方式 客户端使用ssh-keygen生成密钥对,将公钥复制到服务端(authorized_keys),SSH提供公钥登陆,当SSH访问服务端时,服务端先在本机寻找客户端的公钥,然后把客户端发来的公钥进行比较,如果一致,则用公钥加密给客户端,客户端再用私钥进行解密,实现加密所有传输的数据. 1>.在客户机上创建密钥对 # s…
有个需求,有个文件删除了,但是不确定线上机器还都存不存在 #!/home/work/.jumbo/bin/expect -f set timeout - set mac [lindex $argv ] set password "***" spawn ssh username@$mac expect { "(yes/no)?" { send "yes\r" expect "*password:" { send "$p…
[oracle@OAPRIMARY shell]$ cat expect.sh while read line do user=`echo $line | awk '{print $1}'` ip=`echo $line |awk '{print $2}'` passwd=`echo $line | awk '{print $3}'` #把shell中的$user $ip $passwd参数传递给expect脚本 expect expect2.exp $user $ip $passwd done…
一.目的 在一台服务器上面管理所有机器的应用程序. 设想是通过一条命令能够知道所有应用程序是否running 如果not running 查看具体项目的log 跟踪具体原因,程序问题汇报相关负责人 二.环境搭建(68部署服务器) 公司部门:业务部,数据处理部,系统运维部,数据挖掘部 /home/release/business /home/release/datamining /home/release/ops /home/release/platform ok 创建好目录我们来进行程序的上线操…
用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下:  ##############################################  #!/usr/bin/expect  set timeout 30  spawn ssh -l username 192.168.1.1  expect "password:"  send "ispa…
问题描述 前几天有个小需求,用到expect脚本去循环的发送一些数据,主要问题代码如下: #! /usr/bin/expect while {true} { set timeout 60 spawn telnet ip port expect "]'."; send "***********一些数据***********\r" expect "*********一些回复************"; send "exit\r"…
写了一个expect脚本 执行ssh命令远程登录 然后telnet另外一台机器 大致如下: #!/usr/bin/expect -f set timeout set port_type [lindex $argv ] set p1 [lindex $argv ] set p2 [lindex $argv ] set p3 [lindex $argv ] set p4 [lindex $argv ] set p5 [lindex $argv ] if { $port_type eq "http&q…
[root@runstone ssh_lianxi]# cat expect.sh #!/usr/bin/env expect } { #判断命令行参数的个数 send_user "usage: expect expect.ssh ip user passwd\n" #send_user 表示输出到标准输出 exit #退出程序 } #下面[]的意思是执行中括号里面的命令,然后把值赋值给其他变量,中括号里面的意思表示获取argv变量的第一个参数的值赋值给server. ] ] ] sp…
.安装软件 yum install expect -y .查看expect命令位置 expect命令的位置也可能是在 /usr/local/bin/expect,使用前用户应确认工具是否存在(确认方法是在root用户下运行“which expect”命令) .expect非交互拷贝秘钥 注意这里的spawn ssh -l,因为这个脚本属于登录脚本,所以需要加ssh -l,其他的几个修改密码的脚本不要加 cat > expect.sh<<EOF 或者 expect.py 都可以 #!/us…
监视磁盘的使用情况 $ du file1.txt file2.txt $ du -a file_or_dir #-a递归输出指定目录的所有文件统计 $ du file_or_dir #这只是显示子目录使用的情况不显示每个文件占用空间情况$ du -h filename #-h 显示的更方便人阅读$ du -c file1 file2 #-c 最后有一个统计$ du -s FILES(s) #-s 只输出合计数据$ du -b FILE(s) #以特定的单位输出文件大小 -b(字节) -k(KB)…
用 cat 进行拼接 文件查找与文件列表玩转 xargs 用 tr 进行转换排序临时文件命名与随机数分割文件和数据根据扩展名切分文件名mv 批量重命名文件交互输入自动化 cat: echo 'Text through stdin' | cat - file.txt # - 被作为 stdin 文本的文件名. $ cat -s file #压缩相邻的空白行 $ cat -T file.py #将制表符显示为^I $ cat -n lines.txt #显示行号 find: $ find . -pr…
笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上. 文中采用清空日志的方式,优点是不用重启tomcat就能回收磁盘空间,缺点可能会丢失一小部分日志内容,所以笔者定时在了夜里3点执行. 本文中远程执行命令和scp用到了expect脚本,请查看expect的博文http://www.cnblogs.com/Eisenhower/p/7900907.html 1 2 3 4 5 6 7 8 9…
字串处理 子串截取方法一:使用${}表达式格式:echo ${x:起始位置:长度}(起始位置编号从0开始,可省略) 方法二:使用expr substr格式:expr substr "$x" 起始位置 长度(起始位置编号从1开始) 方法三:使用cut工具格式:ceho $x|cut -b 起始位置-结束位置(起始位置编号从1开始)-b:字节过滤-c:过滤字符-f:过滤列 示例:截取QQ1520029989[root@ceshiji ~]# x=1520029989[root@ceshij…
Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码.对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用$?变量.它的值会变成由shell所执行的最后一条命令的退出状态码: [root@host1 test]# date 2017年 07月 19日 星期三 :: CST [root@host1 test]# echo $? 按照惯例,一个成功结束的命令的退出状态码是0.如果一个命令结束时有错误,退出状态码就是一个正数值(1-255): [root@host1 test]# q…
批量执行工具PSSH详解 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问. 安装pssh包 yum 安装: yum install pssh -y 编译安装: # 安装setuptools包,如果安装了跳过 wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz --no-check-cert…
背景: 有时候我们在两个主机之间复制文件的时候,提示输入密码,很不方便,那如何免密码复制呢?,就是使用通过linux公钥和秘钥,建立双机信任关系. 在整理之前,我先说下ssh免密码的要点 : 你想免密码登陆到哪个主机哪个用户, 就把你自己的公钥文件内容追加到远程主机对应用户下的authorized_keys文件中(对面可能没有这个文件,创建即可). 1. 生成秘钥,并添加信任 我的环境中node1的ip是192.168.168.201,node2的ip是192.168.168.202. [roo…
``` 小问题,在此记录一下,有时在shell下执行命令重定向到文件时提示无权限-bash: temp_20181015.log: Permission denied,而且加sudo执行依提示无权限,示例如下: [online@USER ngx]$ sudo head -n 100000 access_20181015.log >> temp_20181015.log -bash: temp_20181015.log: Permission denied [online@USER ngx]$…
本次分为3个脚本, scp.sh放进第一台机器(负责传输文件), schenglee.sh放进第一台机器(自动部署), schenglee2.sh放进第二台机器(自动部署) 环境 tomcat1: 192.168.137.176 tomcat2: 192.168.137.177 脚本 scp.sh #!/usr/bin/expect #************************************************************************* # > Fil…
一个偷懒的小shell, #!/usr/bin/expect #************************************************************************* # > File Name: expect.sh # > Author: chenglee # > Main : chengkenlee@sina.com # > Blog : http://www.cnblogs.com/chenglee/ # > Created…
转自:http://blog.51cto.com/lizhenliang/1607723 注意:使用expect脚本时,需要把脚本添加执行权限,然后./test.sh直接执行,不能用sh或者source执行,否则不能找到expect内置命令. Linux下实现免交互登陆一般有两种: 1. SSH无密码认证方式 客户端使用ssh-keygen生成密钥对,将公钥复制到服务端(authorized_keys),SSH提供公钥登陆,当SSH访问服务端时,服务端先在本机寻找客户端的公钥,然后把客户端发来的…
#!/usr/bin/expect set ip [lindex $argv ] set password [lindex $argv ] spawn -l root ${ip} "hostname" expect { "(yes/no)? " { send "yes\n" expect "*assword:*" { exit } } "*assword: " { exit } exit } catch w…
一.编写脚本,接收二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www [root@centos7 data]# cat user.sh #!/bin/bash user=$ [ $# -ne ] && =~ ^(\/.*) ]];then homedir=$ else echo "The homedir must be a directory" exit fi if id $user &…
一.准备工作: 两台服务器:192.168.206.212,192.168.206.213 自己新建一个maven项目 其中两台机子做下面的软件配置 212机子: 安装expect并配置: 安装jenkins 安装docker 安装私有镜像仓库 安装JDK并配置: 安装maven并配置: 213机子: 安装SVN 安装JDK并配置: 安装maven并配置: 安装docker 其中项目的话可以参照截图,controller,model什么的这些自定义就行. 重点注意红框框的这几个 1.proper…
自动登录主机(ssh) 建脚本item2login.sh,包含如下内容 #!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2] expect { "(yes/no)?" {send "yes\n";exp_continue} "password:" {send "[lindex $argv 3]\n&…
[root@localhost scripts]# cat exptest.sh #!/usr/bin/expect spawn ssh root@127.0.0.1 expect "password: " send "oracle\r" send "ls\r" #send "ls >/tmp/l3.log\r" send "echo status:$?\r" expect -re ,string)…
一.命令 except 实例详解 1. 介绍 expect 使用场景 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法了.所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令. 使用之前先安装 expect 软件 yum install -y expect 2. 自动远程登录,登陆后不退出 #! /usr/bin/expect…
需求:现在有一百多台的机器,都是使用用户名密码登录做一些运维操作,不想因为密码变更造成管理上的一些麻烦,所以改为通过密钥文件的方式进行登录,需要提前做一些准备工作,把准备好的.SSH文件复制到各机器的特定用户目录下. 操作:需要使用到EXPECT或者SSHPASS.这里选择EXPECT为例: 保存为 myscp.sh,替换为真正的密码,使用的时候传递目标IP参数. #!/bin/bash expect -c " set timeout 1200; spawn /usr/bin/scp -r /h…
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Better Me的博客:blog.csdn.net/tantexian 如需交流,欢迎大家博客留言.   无密钥登录的自动脚本实现: vim auto_ssh.sh    #!/usr/bin/expect ] ] ] spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$hostname expect { #first…
#!/bin/sh echo "helo" password='xxxx' ###不能在下面的expect脚本段设置成 set password xxxx否则获取不到变量,单独的expect脚本变量可以这样设置 /usr/local/bin/expect <<EOF  ###安装的expect的路径一般为/usr/bin/expect spawn scp -rp /home/test/ user@x.x.x.x:/home/test expect { "(yes/…