20.27分发系统介绍

20.27 分发系统介绍

shell项目-分发系统-expect讲解

使用场景:

假如公司的业务做得越来越大,APP后端服务端所使用的编程语言是php,要想运行这个环境运行php代码,需要搭建lamp,lnmp的环境,最后还需要把代码上传到服务器上面。

在平时工作中,业务不断的迭代,有新的功能出现,这时候就需要更改代码,一台机器还好,甚至还可以在服务器上面更改,但是这样不规范,若干台,两三台的量还可以接受,如果机器特别多,甚至上百台的时候,这上百台机器存储的都是公司的站点。比如一个接口,APP访问量很大,APP需要调用服务端的接口,假如这个接口需要五十台机器去承载,那这时候就需要去搞一个分发系统了,能够让每天,每段时间更新的代码,分别的分布到这五十台机器上面去。

expect介绍

  • 可以说是一种脚本语言,它和shell比较相似,它可以实现传输文件,远程执行命令(不需要输入密码)
  • 它其实是一种上线代码的工具。
  • 上线:开发的代码,发布到线上环境。

准备工作以及过程:

  • 准备一台模板机器,这台机器上面的代码是最新的,准备要上线的代码。
  • 比如准备给50台机器上线,这50台机器的ip地址,用户和密码都需要知道
  • 使用expect脚本,借助于rsync把这些代码给推送到这50台机器上面去。假如需要在某机器上面执行命令,还可以远程执行这些命令。
  • 就是这样的一个过程。

20.28 expect脚本远程登录

1 安装expect

[[email protected] ~]# yum install -y expect

2 编写expect脚本

目的:自动远程登录,并执行命令

[[email protected] ~]# cd /usr/local/sbin/
 #! /usr/bin/expect
set host "192.168.189.129"
set passwd "?????"
#此处输入你的登录密码.
spawn ssh [email protected]$host
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
interact

脚本解释:

set host "192.168.189.129"
set passwd "?????"
spawn ssh [email protected]$host
远程登录的主机,以及密码,set host=$host,在except里,set设定变量
spwan后接的是系统的shell命令,ssh远程登录,[email protected]$host利用root登录进去
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
interact
这是核心执行语句
"yes/no"表示第一次远程登录192.168.189.129,会提示"yes/no"。因为第一次登录,本机的/root/.ssh/know_hosts文件会误认为这是一台陌生的机器,严格上可能是不安全,所以会提示。
"yes/no" { send "yes\r"; exp_continue} 
expect截取系统的提示,当遇到提示"yes/no"的时候,发送yes(yes\r,\表示回车键), exp_continue表示继续
"password:" { send "$passwd\r" }
expect截取系统的提示,当遇到提示"password:"的时候,把密码(set passwd的变量)发送过去,
expect支持用户交互
interact结束

3 添加执行权限

[[email protected] sbin]# chmod a+x 1.expect

4 执行脚本

[[email protected] sbin]# ./1.expect 
spawn ssh [email protected]
[email protected]'s password: 
Last login: Wed Jun  6 15:27:39 2018 from 192.168.189.1
[[email protected] ~]#

5 查看ip地址

[[email protected] ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.189.129  netmask 255.255.255.0  broadcast 192.168.189.255
        inet6 fe80::b485:96d0:c537:251e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:73:7c:4c  txqueuelen 1000  (Ethernet)
        RX packets 266  bytes 27149 (26.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 257  bytes 25678 (25.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

成功登录192.168.189.129,主机名也变了

原文地址:http://blog.51cto.com/13578154/2125533

时间: 2024-10-08 11:13:21

20.27分发系统介绍的相关文章

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

20.27 分发系统介绍;20.28 expect脚本远程登录;20.29 expect脚本远程执行

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect : [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) : [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器,并执行命令): #! /usr/bin/expect set host "192.168.211.129

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 原文地址:http://blog.51cto.com/12058686/2107915

分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

20.27 分发系统介绍 应用场景 当业务越做越大,服务器需求越来越多,几台服务器的话还好一点:当十几.几十台的时候,工作量就非常大!并且不规范,需要一个模板机分发到各个机器上去. 可以用开源的软件,expect脚本语言,进行实现分发系统的功能. 20.28 expect脚本远程登录 yum install -y expect 自动远程登录,并执行命令 #!/usr/bin/expect set host "192.168.21.130" set passwd "rootro

分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数

一.分发系统介绍场景:公司业务逐渐扩大,后端服务端使用的编程语言是PHP,要运行PHP的环境,需要配置LAMP或者LNMP环境,最后还需要把代码上传到服务器上去,但是业务在迭代,需要新增功能,一台机器还好,可以在机器上直接修改,但是这样做不规范,如果机器有几十台或者上百台机器都是这一个站点的,比如有一个接口,APP访问量很大,APP需要调用服务端的一个接口,假如这个接口有50台机器在承载,这时候,就需要做一个分发系统,能够把每天或者每一段时间更新的代码分别发发布到这50台机器上去,分发器其实就是

POJ1060 Modular multiplication of polynomials解题报告 (2011-12-09 20:27:53)(转)

Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3239   Accepted: 1459 Consider polynomials whose coefficients are 0 and 1. Addition of two polynomials is achieved by 'adding' the coefficients for the corresponding powers in the polynomia

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变量

分发系统介绍,expect脚本远程登录, expect脚本远程执行命令, expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录 首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变

分发系统介绍、 expect脚本远程登录、远程执行命令、传递参数

一.分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. 二. expect脚本远程登录 1.expect脚本远程登录2.安装:yum install -y expect3.写一个expect的自动远程登录脚本内容如下: #! /usr/bin/expect set host "192.168.1.31&