如何部署免交互脚本

目录

一、免交互

什么是免交互

Here Document免交互

二、Expect概述

expect

sed命令

三、如何用ssh实现免交互

四、监控硬盘实现免交互

五、创建硬盘分区如何实现免交互


一、免交互

什么是免交互

交互:需要人工发出指令,来控制程序的运行,程序在接收到人工的指令后,再进行执行

免交互:程序按照编写好的运行方式,进行指定命令指令的动作,在这过程中不需要人工干预,自动化进行执行完毕

Here Document免交互

使用I/O重定向的方式,将命令列表提供给交互性程序

例如统计行数(wc  -l  <<[文件名])

① 标记可以使用任意字符,但是必须给合法字符(EOF)

② 结尾的字符标记一定要顶格去写,前面不能有任何字符

③ 结尾的标记后面也不能有任何字符,包括空格

④ 开头标记前后空格会被省略掉,开头标记与结尾标记必须一致

如何通过cat实现查看和重定向输出到指定文件

命令:cat <test.txt

如何部署免交互脚本_第1张图片

Here Document 变量替换(编写.sh的shell脚本)

如何部署免交互脚本_第2张图片

如何部署免交互脚本_第3张图片

二、Expect概述

expect

① 建立在tcl之上的一个工具

② 用于进行自动化控制和测试

③ expect、send脚本命令

expect脚本的作用

① 判断上次输出结果中是否包含指定的字符串,如果有就立即返回,否则等待超时

② 只能捕捉由spawn启动的进程输出(spawn是expect环境内的内部命令)

③ 用于接收命令执行后的输出,和期望字符串进行匹配

sed命令

① 向进程发送字符串,用于模拟用户输入

② 不能回车换行,加入\r或者\n进行换行

结束符

① expect  eof

② interact

设置超时时间

命令:set  timeout  [数字]

如何部署免交互脚本_第4张图片

exp_continue   #继续向下执行指令

send_user    #相当于echo的打印功能

expect脚本必须赋予777权限才可以进行执行(执行前需要yum额外安装expect)

脚本前第一行一定要加上#!/usr/bin/expect(是expect的编译器)

三、如何用ssh实现免交互

编写一个expect脚本执行

如何部署免交互脚本_第5张图片

赋予变量,输入时需要选参

保证每次输入错误时,要提醒出错,然后终止执行

四、监控硬盘实现免交互

写一个函数库,用定时任务调用这个函数库,每个月1号执行

如何部署免交互脚本_第6张图片

接下来编写一个调用函数库的文件

如何部署免交互脚本_第7张图片

最后创建定时任务,定时执行

如何部署免交互脚本_第8张图片

五、创建硬盘分区如何实现免交互

创建磁盘分区、格式化(文件系统)包括挂载的全流程

如何部署免交互脚本_第9张图片

如何部署免交互脚本_第10张图片

你可能感兴趣的:(服务器,linux,运维,网络)