在linux操作系统下,使用脚本自动化,一般由两种方案。

方案一:telnet+ftp

方案二:ssh+scp+expect。

以下主要使用ssh+scp+expect为例进行说明使用方式。

第一步:安装expect:yum -y install expect

第二步:验证,执行expect是否正确

第三步:编写脚本ssh_exec(){

ip=$1

user=$2

passwd=$3

cmdstr=$4

/usr/bin/expect <

set time 10

spawn ssh $user@$1

expect {

"*yes/no" { send "yes\r"; exp_continue}

"*password:" {send "$passwd\r"}

}

expect "*#"

expect "*#"

send "$cmdstr\r"

expect "*#"

send "exit\r"

expect eof

EOF

}

function scp_get () {

local ip=$1

local user=$2

local passwd=$3

local src=$4

local dst=$5

[ -z "$ip" -o -z "$passwd" ] && return 1

/usr/bin/expect << EOF

proc remote_exec {ip passwd src dst} {

spawn scp \$user@\$ip:\$src \$dst

exp_internal 0

expect {

"yes/no" { send "yes\\r";exp_continue}

"*password:" {send "\$passwd\\r"}

}

expect eof

}

remote_exec "$ip" "$user" "$passwd" "$src" "$dst"

EOF

}

#从本地服务器复制到远程服务器

function scp_put () {

local ip=$1

local user=$2

local passwd=$3

local localfile=$4

local dst=$5

[ -z "$ip" -o -z "$passwd" ] && return 1

/usr/bin/expect << EOF

proc remote_exec {ip passwd localfile dst} {

spawn scp \$localfile \$user@\$ip:\$dst

exp_internal 0

expect {

"yes/no" { send "yes\\r";exp_continue}

"*password:" {send "\$passwd\\r"}

}

expect eof

}

remote_exec "$ip" "$user" "$passwd" "$localfile" "$dst"

EOF

}

ssh_exec 192.168.1.2 root 111111 'df -h'

scp_get 192.168.1.2 root 111111 '/root/test.txt' '/opt/'

代码说明:

第四步:对脚本授权,执行:chmod -R 755 script.sh

第五步:脚本执行,./script.sh  (备注:shell+expect脚本,不能使用sh script.sh执行,只能采用./script.sh执行)

linux 脚本 expected,Linux | shell与expect结合使用相关推荐

  1. linux脚本编写规则,shell脚本编写守则

    现在centos7中使用的是bash软件,通过以下命令可以查看bash版本: [root@localhost ~]# cat /etc/redhat-release #查看系统的版本 CentOS L ...

  2. linux 脚本的作用,shell export 作用

    shell与export命令用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序.运行shell脚本程序 ...

  3. linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量

    一.SHELL规范 SHELL简单介绍 Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell.Bash 的全称为 Bourne Again Shell,是最受欢迎的开源软 ...

  4. linux脚本基本命令大全,Shell脚本常用命令

    Shell脚本常用命令 1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到" ...

  5. linux脚本简介,Linux Shell脚本简介

    Shell 诞生于 Unix,是与 Unix/Linux 交互的工具,单独地学习 Shell 是没有意义的,请先参考Unix/Linux入门教程,了解 Unix/Lunix 基础. 近几年来,Shel ...

  6. linux脚本文件编辑器,Shell文件编辑器

    文件编辑器,允许在文件中插入.编辑和替换文本等操作. 本文主要针对vim编辑器和nano编辑器的使用做简单记录,目前macOS是支持这两种编辑器的. vim编辑器 vi编辑器是Unix系统最初的编辑器 ...

  7. 怎么编写Linux脚本循环语句,shell脚本及常用循环语句

    博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...

  8. linux 脚本 获取pid,Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...

  9. linux 脚本 expected,使用expect实现shell中scp自动输入密码

    使用expect实现shell中scp自动输入密码 前段时间有一个需求,要实现一个自动备份脚本,因为不需要全部备份,所以没有使用rsync,在这里使用scp.因为scp需要输入用户密码,在网上查了好多 ...

最新文章

  1. python hmac_Python实现的HMacMD5加密算法示例
  2. vue中computed(计算属性)和watch在实现父子组件props同步时的实际区分
  3. 第18次csp认证 201912-1 报数(C++)
  4. LRU缓存算法缓存设计和实现
  5. 打印菱形星号组合C程序
  6. RabbitMQ主题模式(Topic)
  7. 微信小程序批量获取input的输入值,监听输入框,数据同步
  8. ABySS非root权限安装
  9. 三维点云学习(3)3-Gaussian Mixture Model (GMM)
  10. C语言两个同名头文件,C lang: C语言中两个头文件引入相同的头文件(Header.h)
  11. [C++]实现10以内整数的简单科学计算器
  12. php的ci框架手册,CodeIgniter 教程 - php CodeIgniter 框架 - CodeIgniter手册
  13. U盘写保护,量产工具修复。
  14. 怎样在计算机上设置纸大小,电脑中打印机设备自定义纸张打印大小的方法
  15. clonezilla(clonezilla备份系统)
  16. Dev中的GridControl中根据条件显示背景色
  17. 【金融项目】尚融宝项目(十一)
  18. SpringMVC之使用SpringMVC获取参数与返回数据
  19. JavaWeb程序设计———名片管理系统
  20. ubuntu18.04安装搜狗拼音

热门文章

  1. 这份NLP研究进展汇总请收好,GitHub连续3天最火的都是它
  2. 飞行模式的开启和关闭
  3. C++中父类的虚函数必需要实现吗?
  4. 《CCIE路由和交换认证考试指南(第5版) (第1卷)》——1.6节虚拟交换系统
  5. 哲学到编程:思想的实例化
  6. 用模版实现简单的内存池
  7. lhgdialogV2.37 使用
  8. leetcode 57. 插入区间
  9. spray.json_如何使用Spray-json(Un)在Akka HTTP中封送JSON
  10. init(coder:)_2018年《 New Coder》调查:31,000人告诉我们他们如何学习编码并在工作中获得工作…