Linux学习之自动配置部署——初用expect
主机A连接主机B
免密登陆 + 自动部署
expect实现自动的交互式任务
——— send
向进程发送字符串(输入)
——— expect
从进程接受字符串
——— spawn
启动新进程
——— interact
允许用户交互
SSH 实现自动登陆,并停留在登录服务器上
shell脚本
#!/usr/bin/expect -f
set ip [lindex $argv 0 ] //接收第一个参数,并设置IP
set password [lindex $argv 1 ] //接收第二个参数,并设置密码
set timeout 10 //设置超时时间
spawn ssh root@$ip //发送ssh请滶
expect { //返回信息匹配
"*yes/no" { send "yes\r"; exp_continue} //第一次ssh连接会提示yes/no,回车,继续
"*password:" { send "$password\r" } //出现密码提示,发送密码
}
interact //交互模式,用户会停留在远程服务器上面.
————创建临时文件
cat >> /etc/profile << EOF\
export ...
EOF
—————————————
创建临时文件,内容是exprot...
>> 重定向追加到目录文件中
<< 将EOF后的内容重定向追加到文件中
Linux学习之自动配置部署——初用expect的更多相关文章
- Springboot学习03-SpringMVC自动配置
Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...
- Linux 学习 (十) 网络配置
Linux网络管理 学习笔记 配置 IP 地址 ifconfig 命令临时配置 IP 地址 ifconfig eth0 192.168.0.200 netmask 255.255.255.0 #临时设 ...
- Linux 学习之防火墙配置
1.安装iptables防火墙 yum install iptables 2. 清除已有的iptables规则 iptables -F iptables -X iptables -Z 3.显 ...
- linux学习笔记-安装配置使用clamav杀毒软件
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.安装clamav 2.更新病毒库 # freshclam 如果更新不了,或者更新特别慢,可以手动下载病毒库文件,放到/var ...
- Linux学习日记-MVC的部署(三)
一.Mvc与wcf 相对WCF的部署MVC还是有点麻烦,我们要考虑哪些dll是不需要的,哪些是要拷贝到本地的. 而WCF因为有些配置文件不支持,我们只需要在配置wcf时不使用配置文件而直接使用代码就行 ...
- Linux学习之十七-配置Linux简单的脚本文件自启动
配置Linux简单的脚本文件自启动 在Linux中使用shell脚本解决一些问题会比单独执行多条命令要有效率,脚本文件规定命名以.sh结尾,最基本的规则就是其内容是命令,想要脚本文件开机自启动,就需要 ...
- Linux学习—mysql安装配置及远程连接
安装前准备 1.检查是否已经安装过mysql 执行命令 [root@localhost /]# rpm -qa | grep mysql 从执行结果,可以看出我们已经安装了mysql-libs-5. ...
- linux学习笔记-时间配置综述
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.时间类型分为: 1.网络时间(设置时区,ntp服务器同步的时间) 2.系统时间,当前系统所显示的时间 3.硬件(RTC)时间 ...
- linux学习笔记-conky配置开机启动方法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.常用桌面的配置方法 创建启动文件并加入以下配置 ~/.config/autostart/conky.desktop [Des ...
随机推荐
- 利用mapWithState实现按照首字母统计的有状态的wordCount
最近在做sparkstreaming整合kafka的时候遇到了一个问题: 可以抽象成这样一个问题:有状态的wordCount,且按照word的第一个字母为key,但是要求输出的格式为(word,1)这 ...
- MySQL之基础操作
一.安装 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...
- Oracle数据库---游标
--查询所有员工的员工号.姓名和职位的信息.DECLARE --定义游标 CURSOR emp_cursor IS SELECT empno,ename,job FROM emp; v_empno e ...
- linux 不重启识别新添加的硬盘
1.fdisk -l 看有没有新的磁盘 oebiotech@hadoop08:/media/nbc9$ sudo fdisk -l |grep sdl 2.查看主机总线 oebiotech@hadoo ...
- xfs 文件系统修复
pvcreate /dev/sdb1 pvcreate /dev/sdc1 pvcreate /dev/sdd1 vgcreate vg_bricks /dev/sdb1 vgcreate vg_br ...
- Java编程思想:内部类其他知识点
public class Test { public static void main(String[] args) { // InheritInner.test(); // EggTest.test ...
- Java编程思想:为什么要使用内部类
public class Test { public static void main(String[] args) { Callbacks.test(); } } /* 为什么需要内部类: 1.可以 ...
- springboot项目快速构建
1. 问题描述 springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础上,对已有的maven gav进行了封装而已,今天用最简单 ...
- 机器学习-FP Tree
接着是上一篇的apriori算法: FP Tree数据结构 为了减少I/O次数,FP Tree算法引入了一些数据结构来临时存储数据.这个数据结构包括三部分,如下图所示 第一部分是一个项头表.里面记录了 ...
- Java 面向对象面试题
1.Java面向对象的三种特性 封装:封装是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口进行访问. Java的四种访问控制符: - 默认的(default):不使用任何修饰符,在同 ...