linux 脚本 expected,使用expect实现shell中scp自动输入密码
使用expect实现shell中scp自动输入密码
前段时间有一个需求,要实现一个自动备份脚本,因为不需要全部备份,所以没有使用rsync,在这里使用scp。因为scp需要输入用户密码,在网上查了好多种方法,这里使用expect来实现。
1、首先安装expect:这里直接使用yum安装就行
yum install expect。
2、编写脚本
#!/usr/bin/expect
set timeout 10
expect “password”
send “123456\r”
expect eof
在这里呢,一般就行了,网上也都是这么介绍的。
但是由于我的脚本里面需要备份好几个文件,而且文件名还不是固定的,所以需要带入shell变量,而expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0
... $n 这种方式,而expect是通过set [lindex $argv ],例如set
username [lindex $argv 0]。所以我写了两个脚本进行嵌套。
接下来以我的脚本为例子,来给大家介绍一下
脚本1:名为backup1.sh
#!/usr/bin/expect
set timeout
-1 设置timeout为-1就是没有限制
set passwd [lindex $argv 0]
set dir1 [lindex $argv 1]
set dir2 [lindex $argv 2]
set date [lindex $argv
3] 这0、1、2、3为执行这个脚本时后面输入的东西
#back dir1
spawn scp –P222 root@192.169.1.1:/home/aaa_$date.tgz $dir1
expect “password”
send “$passwd\r”
expect eof
#back dir2
spawn scp –P222
root@192.169.1.1:/home/bbb_$date.tgz $dir2
expect “password”
send “$passwd\r”
expect eof
脚本2:名为backup2.sh
#!/bin/bash
passwd = “123456”
dir1 = “/home”
dir2 = “/opt”
date = ‘date’
/home/backup1.sh $passwd $dir1 $dir2 $date
这就是expect脚本的用法
然后在执行备份脚本的时候执行backup2就行了。还有就是expect只能使用绝对路径来是执行,不能使用sh等命令。如./backup2,因此要赋予脚本执行的权限。
这样写是不是就是一目了然了。
这是集网络之大成。取之于网络,分享于网络。如有雷同,纯属偶然,欢迎大家吐槽。
linux 脚本 expected,使用expect实现shell中scp自动输入密码相关推荐
- linux脚本获取日期格式,关于shell脚本中的bash:yyyy-mm-dd格式日期
我尝试在bash shell脚本中使用$(date),但是我希望日期采用YYYY-MM-DD格式.我怎么得到这个? 在巴什: 从date获取年-月日 DATE=`date +%Y-%m-%d` GET ...
- linux 自动化交互套件 expect 介绍 shell非交互
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. expect自动交互流程: spawn启动指定进程---expect获取指定关键字--- ...
- shell 中scp 和 ssh密码输入 --expect (转:http://blog.sina.com.cn/s/blog_8ad7d4ca01014lft.html)
这里必须先安装: yum install expect -y expect是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录. 下面给出scp和ssh的使用示例: 1. ...
- ue 编写linux脚本,通过什么工具编写shell脚本更方面直观
刚开始学习写shell脚本,现在主要是通过vi编辑器,但感到很不方便和直观.通过UtralEdit倒是方便但不直观,比如shell编程中的关键字不能醒目出来.想请教一下各位大虾,有没有这么类似于像vc ...
- linux脚本无法执行命令,为什么Shell脚本执行不成功?原来是这样
Shell脚本语言是linux系统中内置的一门非常强大的语言,非常善于处理操作系统层面的应用,我们从网上下载的很多应用的安装和启动往往都是用Shell脚本语言写的.可是初步开始使用linux的小伙伴是 ...
- Shell脚本笔记(三)shell中的数学计算
shell中的数学计算 一.使用方括号 #!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res 二.使用(()) echo $((1+9)) ( ...
- 深度linux夜间模式,在Linux下安装Yin-Yang以在KDE中设置自动夜间模式
本文介绍在Linux操作系统下安装Yin-Yang以能够在KDE中设置自动夜间模式,虽然本文主要是关注KDE Plasma 5桌面环境的,但Yin-Yang也适用于其他桌面环境. 下载链接 在Linu ...
- linux 脚本 expected,Linux | shell与expect结合使用
在linux操作系统下,使用脚本自动化,一般由两种方案. 方案一:telnet+ftp 方案二:ssh+scp+expect. 以下主要使用ssh+scp+expect为例进行说明使用方式. 第一步: ...
- linux脚本里用expect,如何在bash脚本中使用expect
这是我在 following bash脚本中使用的代码片段: for user_input in `awk '{print}' testfile_$$.txt` do ipaddress=`echo ...
最新文章
- C和C++安全编码笔记:总结
- 学习HTML5之塔克大战(详细记录)
- Ubuntu 12.04下spark1.0.0 集群搭建(原创)
- java开发中实际遇到的问题总结_内行总结:装修中最容易遇到的16个问题及其解决方式!...
- pcl中ransac提取直线_复杂场景中的一个图像配准思路
- 深入浅出WPF之Binding的使用(二)
- Oracle 自带sqldeveloper导入数据到表
- 2012高等学校计算机等级考试试卷二级 vb.net程序设计,2012上海市高等校计算机等级考试试卷二级VBNET程序设计.docx...
- springcloud(十):服务网关zuul
- IPython notebook(Jupyter Notebook) 的使用
- Spring Cloud——服务发现与注册
- [原创]Allegro 导入DXF文件,保留布好的线路信息
- 计算机二级公共基础知识(四)—— 数据库设计基础
- 开启Windows卓越性能模式
- PC端淘宝小程序开发记录
- MySQL:带你掌握表的增删查改
- Proxmox VE 7.2 使用qemu-img转换磁盘格式
- 计算机考研调剂专业课,一波七折的计算机考研初试调剂经验教训贴,别放弃,太阳还在...
- 读《当我跑步时,我在想什么》有感
- android 7.1快捷方式App Shortcuts
热门文章
- Unity5.联机笔记
- uni-app中文本过长-实现折叠与展开效果
- SDCard权限设置
- excel怎么一次性删除所有的批注
- 一张照片就能攻破人脸识别系统,人脸识别安全性亟需提高
- 计算机技能高考素材,高中作文万能通用素材 2021高考必备作文素材
- IC卡密码的破解方法浅谈
- 【百度网盘】 个人资源共享
- Oracle 考试题 答案
- JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx