目录
一、免交互
什么是免交互
Here Document免交互
二、Expect概述
expect
sed命令
三、如何用ssh实现免交互
四、监控硬盘实现免交互
五、创建硬盘分区如何实现免交互
一、免交互
什么是免交互
交互:需要人工发出指令,来控制程序的运行,程序在接收到人工的指令后,再进行执行
免交互:程序按照编写好的运行方式,进行指定命令指令的动作,在这过程中不需要人工干预,自动化进行执行完毕
Here Document免交互
使用I/O重定向的方式,将命令列表提供给交互性程序
例如统计行数(wc -l <<[文件名])
① 标记可以使用任意字符,但是必须给合法字符(EOF)
② 结尾的字符标记一定要顶格去写,前面不能有任何字符
③ 结尾的标记后面也不能有任何字符,包括空格
④ 开头标记前后空格会被省略掉,开头标记与结尾标记必须一致
如何通过cat实现查看和重定向输出到指定文件
命令:cat <<EOF>test.txt
Here Document 变量替换(编写.sh的shell脚本)
二、Expect概述
expect
① 建立在tcl之上的一个工具
② 用于进行自动化控制和测试
③ expect、send脚本命令
expect脚本的作用
① 判断上次输出结果中是否包含指定的字符串,如果有就立即返回,否则等待超时
② 只能捕捉由spawn启动的进程输出(spawn是expect环境内的内部命令)
③ 用于接收命令执行后的输出,和期望字符串进行匹配
sed命令
① 向进程发送字符串,用于模拟用户输入
② 不能回车换行,加入\r或者\n进行换行
结束符
① expect eof
② interact
设置超时时间
命令:set timeout [数字]
exp_continue #继续向下执行指令
send_user #相当于echo的打印功能
expect脚本必须赋予777权限才可以进行执行(执行前需要yum额外安装expect)
脚本前第一行一定要加上#!/usr/bin/expect(是expect的编译器)
三、如何用ssh实现免交互
编写一个expect脚本执行
赋予变量,输入时需要选参
保证每次输入错误时,要提醒出错,然后终止执行
四、监控硬盘实现免交互
写一个函数库,用定时任务调用这个函数库,每个月1号执行
接下来编写一个调用函数库的文件
最后创建定时任务,定时执行
五、创建硬盘分区如何实现免交互
创建磁盘分区、格式化(文件系统)包括挂载的全流程