目录

一、免交互概念

二、基本免交互例子

三、expect

四、实验演示

 

 

 

 

 

 

 

 

一、免交互概念

  概念:对于shell脚本的自动化运维,就要实现免交互来达到自动化运维的效果

 

二、基本免交互例子

  可以免交互统计出行号

  1.命令行免交互统计

   2.使用脚本免交互统计

   3.使用免交互命令打印

   4.免交互修改密码

   5.重定向查看

   6.重定向到指定文件

   7.重定向直接指定文件

   8.使用脚本完成重定向输入

   9.免交互脚本完成赋值变量

   10.关闭变量替换功能,按照原来样子输出

   11.去tab键,无法去空格

   12.注释打印,无法生效:批量注释

  (1)脚本展示

   (2)命令行展示

 

 

 

三、expect

  expect:建立在tcl语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互相关的问题。

  使用方法:表示捕捉关键词展示行

  1.脚本解释器

  (1)加入引用程序路径表示使用expect,表明使用这个shell

    运行只能使用./运行,运行前赋权777

   (2)嵌套使用

    可以使用sh运行

   

  2.expect符号:

    n:表示换行符。
    t:表示制表符。
    r:表示回车符。
    b:表示退格符。

  3.执行命令

    spawn 后面通常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交互信息。

  例如:

   3.send

    向进程发送字符串,用于模拟用户的输入;该命令不能自动回车换行,一般要加r(回车)或者n

  例子:

 

   4.expect多分支

   例子演示:ssh远程登录

 

   5.结束符

    expect eof:表示交互结束,等待执行结束,退回到原用户,与spawn对应

    interact:执行完成后保持交互状态,把控制权交给控制台,会停留在目标终端而不会退回到原终端,interact后的命令不起作用

    (1)expect(会在固定时间退回原先页面)

 

     (2)interact(停留在操作页面)

   6.set

    expect 默认的超时时间是 10 秒,通过 set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1。

      例:set timeout 5

 

  7.exp_continue

    exp_continue 类似于控制语句中的 continue 语句。表示允许 expect 继续向下执行指令。

 

  8.send_user

    send_user 表示回显命令,相当于 echo。打印的功能

  例子演示:

 

   9.接收参数

    expect 脚本可以接受从bash命令行传递的参数

      使用[lindex $argv n]获得。其中n从0开始

  例子演示:

 

四、实验演示

  1.免交互预设值修改用户密码

 

   2.su切换用户

 

   3.创建用户并设置密码

 

   4.实现 ssh 自动登录

    5.怎么能够实现密码输入错误的提示

 

   6.用免交互的方式给硬盘分区,格式化,挂载

 

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zhende/p/17474717.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!