一.Expect自动化交互程序 1.spawn命令 通过spawn执行一个命令或程序,之后所有的Expect操作都会在这个执行过的命令或程序进程中进行,包括自动交互功能. 语法: spawn [ 选项 ] [ 需要自动交互的命令或程序 ] -open 表示启动文件进程 -ignore 表示忽略某些信号 spawn ssh root@192.168.1.1 uptime 2.expect命令 获取spawn命令执行后的信息,看卡是否和其事先指定的相匹配,一旦匹配上指定的内容就执行expect 语法…
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与print效果相同") 在 Terminal 结尾反斜杠,当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用. 2.区别 "命令输出" 与 "命令引用" 以及 POSIX(可移植操作系统接口) sh -c &qu…
SHELL脚本编程-expect 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.expect概述 1>.expect介绍 expect 是由Don Libes基于Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成.尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率. 2>.expect…
通过shell脚本实现代码自动化部署 一.传统部署方式及优缺点 1.传统部署方式 (1)纯手工scp (2)纯手工登录git pull.svn update (3)纯手工xftp往上拉 (4)开发给打一个压缩包,rz上去:解压 2.缺点 (1)全程运维参与,占用大量时间 (2)上线速度慢 (3)人为失误多,管理混乱 (4)回滚慢,不及时 二.环境规划 1.开发环境--开发者本地有自己的环境. 运维需要设置的开发环境,大家共用的服务. 2.测试环境:功能测试环境和性能测试环境. 3.预生产环境:生…
背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现   一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具.expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断要进行的交互输入内容(send) 1.安装expect  需要先安装tcl:apt-get install tcl apt-get install expect   2.expect使用 2.…
 背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现   一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具.expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断要进行的交互输入内容(send) 1.安装expect  需要先安装tcl:apt-get install tcl apt-get install expect (输入expect查看是否能…
一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处理操作,完成以下任务练习: 1> 参考PPT示范操作,完成子串截取.替换等操作     2> 根据课上的批量改名脚本,编写改进版renfilex.sh:能够批量修改当前目录下所有文件的扩展名,修改前/后的扩展名通过位置参数$1.$2提供 方案: 子串截取的三种用法: • ${var:起始位置:长度…
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [root@localhost shell]# yum install mariadb mariadb-server mariadb-libs -y [root@localhost shell]# systemctl start mariadb [root@localhost shell]# netsta…
Expect介绍: 1.什么是Expect Expect是一个用来实现自动化交互功能的软件套件,基于TCL的脚本编程工具语言,方便学习,功能强大. 2.为什么要使用expcet: 当今的企业运维中,自动化运维已经成为运维的主流趋势,但是在很多情况下,执行系统命令或程序时,系统会以交互的形式要求运维人员输入指定的字符串,之后才能继续执行命令,这个时候我们就需要expect交互工具来帮忙了,expect可以模拟手工交互过程,实现自动与远端程序的交互,从而达到自动化运维的目的. Expect命令 作用…
Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 continue在循环中不执行continue下面的代码,转而进入下一轮循环 exit退出脚本,常带一个整数给系统,如 exit 0 return在函数中将数据返回或返回一个结果给调用函数的脚本 我理解为:break是立马跳出循环:continue是跳出当前条件循环,继续下一轮条件循环:exit是直接退出整…