今天写一个脚本,需要与终端输出交互,学习着使用了简单的spawn与expect,感觉很方便,记录一下。

1. 首先要保证linux server上安装了expect,我自己的服务器跑的是suse 10.2,比较老的版本,默认没有安装expect,下了个rpm包装上先。(现在外面跑得suse enterprise基本都是11或者12的,看来要赶紧升级了,不然下个rpm包很多都没有对应的版本)安装了之后,/usr/bin/目录下有expect可执行文件。

2. 关于expect,先说明一下,只有spawn的内容才能expect捕获到,expect的内容包括了:终端的输出,eof和超时。

3. 根据个简单的登录脚本说明下:

#!/usr/bin/expect--> 1

set timeout 30--> 2

spawn ssh root@192.168.1.199 -p 22--> 3

#expect {

# "(yes/no)?" {send "yes\r"}

#}

expect {

"Password:" {send "****\r"}--> 4

}

expect {

"#" {send "cd /home/software\r"}--> 5

}

interact-->6

其中:

1)#!/usr/bin/expect,不再是#!/bin/sh了

2) set timeout 30,首先设置一个超时时间;

3) spawn一个ssh登录进程;

4) 当终端输出“Password”时输入密码;

5) 登录之后,输入一个路径;

6) interact,等待交互;如果此处不用interact,就会自动退出了;

4. 简单交互,使用spawn与expect很方便;expect也有很多高级的应用,没有研究过,有本书专门讲这个的,叫《exploring expect》,在这里有的下载:http://bbs.chinaunix.net/thread-1769951-1-1.html

linux的spawn权限不足,linux expect, spawn自动登录相关推荐

  1. Linux执行命令提示Password,linux expect远程自动登录以及执行命令

    linux远程自动登录以及执行命令 远程登录 该自动登录的过程是通过shell里面expect实现的,类似相当于开了一个类似于cmd的命令段输出IP和密码. 注意该脚本能够执行的前提是安装了expec ...

  2. shell中spawn什么意思_linux expect spawn的用法

    1. [#!/usr/bin/expect] 这一行告诉操作系统脚本里的代码使用那一个shell来执行.这里的expect其实和linux下的bash.windows下的cmd是一类东西. 注意:这一 ...

  3. linux文件的权限模式,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  4. linux设置账号权限设置,Linux账号管理与ACL权限设置

    1:UID和GID 用户ID:在/etc/passwd中 群组ID:在/etc/group中 2:有效群组与初始群组 初始群组:/etc/passwd文件里面的GID 有效群组: groups #查看 ...

  5. Linux中expect实现自动登录

    cnde1:/home/boco4a#more ssh.sh #!/usr/bin/expect spawn ssh -l boco4a -p 22 10.226.100.32 expect &quo ...

  6. linux用户命令权限管理,Linux命令-用户、权限管理

    用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同 ...

  7. linux借助expect完成自动登录

    From: http://www.cnblogs.com/sunss/archive/2010/12/23/1914763.html 在工作中,我需要把远程服务器上的文件,拷贝到本地,可是scp的时候 ...

  8. linux 敏感标记 权限,闲话Linux系统安全(二)——强制访问控制(MAC)

    安全秘笈第二式--不安全的特殊权限和强制访问控制(MAC) 在DAC的机制中,不管是所有权加权限的管理办法,还是文件系统访问控制列表(facl),都是非常强大的访问控制机制,均可以对文件资源进行比较有 ...

  9. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

最新文章

  1. Ubuntu12.04LTS添加broadcom 802.11g无线网卡驱动
  2. Java设计模式之策略模式与状态模式
  3. 关于“IE下无法查看此样式表,因为它的源页面不在同一个域中”的问题
  4. 大量多风格多功能后台管理模板
  5. 面向.NET开发人员的Dapr——发布和订阅
  6. jquery 选择器之children与find
  7. Zuul转发请求时HttpHostConnectException can‘t cast to ZuulException问题解决方法
  8. 董明珠今晚开启抖音直播首秀;传苹果将去掉 iPhone 闪电接口;PyTorch 1.5 发布 | 极客头条...
  9. 阴阳师bug以及服务器维护问题,阴阳师业原火bug处理公告汇总
  10. docker 监控容器的cpu、内存、网络、io情况
  11. 聊聊flink JobManager的heap大小设置 1
  12. Flutter 35: 图解自定义 View 之 Canvas (二)
  13. safari打不开cookies_从Mac和iOS上的safari阻止cookies的设置方法
  14. 2017年,阿里巴巴开源的那些事
  15. 苹果手机显示服务器返回数据异常,iOS 请求数据 返回-9843 的错误
  16. 阿里IoT云VS腾讯IoT云,相互抄袭还是一女俩嫁?
  17. 哪里可以买到苹果手机原装电池?
  18. Mina2框架--服务端与客户端通信
  19. 苹果搜索广告ASA“保姆级”开户教程来袭!拿来吧你!
  20. 从VHDL到UVM验证平台转变的优点评估

热门文章

  1. 时间序列中季节性和非季节_季节的故事和游戏翻译的困难
  2. html5实现安卓的手写功能,html5 canvas手写字代码(兼容手机端)(示例代码)
  3. CANoe-Trace-CAN Error
  4. java的互斥锁_java基础之互斥锁初解
  5. K8s Taint 和 Tolerations
  6. java实现多个小球碰壁变色_java小程序(小球碰壁)
  7. 前端学习(HTML)--图片标签
  8. 3.9 push、pop指令
  9. android横竖屏切换方法,Android 4.0 横竖屏切换注意事项
  10. Noip 模拟 13 2018/10/31