`
kirayuan
  • 浏览: 39789 次
文章分类
社区版块
存档分类
最新评论

脚本不输密码执行scp命令(需要expect和send命令)

 
阅读更多

脚本如下:

#!/usr/bin/expect -f

set password 密码

spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径
set timeout 300
expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"

expect eof

附:scp参数
-r:拷贝目录
-c:允许压缩

一个完整的例子

#!/usr/bin/expect -f
set password 123456
#download
spawn scp root@192.168.1.218:/root/a.wmv /home/yangyz/
set timeout 300
expect "root@192.168.1.218's password:"
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"
expect eof

#upload
spawn scp /home/yangyz/abc.sql root@192.168.1.218:/root/test.sql
set timeout 300
expect "root@192.168.1.218's password:"
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"
expect eof

分享到:
评论

相关推荐

    Jsch批量执行多条命令,包含切换用户输入密码

    参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]...

    14.Shell脚本编程之expect.md

    通过使用 Expect,可以将原本需要手动进行的操作,例如 SSH 登录、FTP 登录等,编写成脚本自动执行。这在需要对多台服务器执行相同操作的场景下尤其有用,能够显著提高系统管理员的工作效率。 ### 2. 安装 Expect ...

    CentOS使用expect批量远程执行脚本和命令

    `expect`是一个强大的自动化交互式程序的工具,它能够模拟用户与命令行的交互,使得我们可以通过脚本批量执行远程命令和脚本。在本文中,我们将深入探讨如何在`CentOS`中利用`expect`进行批量远程操作。 首先,确保...

    Linux经典脚本expect的示例及基本用法

    在Linux环境下,系统管理员和开发人员经常会遇到需要自动化执行的任务,尤其是那些涉及到远程登录、文件传输等交互式操作的场景。传统的Shell脚本虽然能够很好地处理非交互式的任务,但在面对需要与用户进行交互的...

    shell脚本批量复制及执行命令的示例详解

    本文主要讨论如何使用shell脚本来实现批量复制文件和执行命令,这对于管理多台服务器或者自动化运维工作流程非常有用。 1. **批量复制文件**: 当需要将文件或文件集批量传输到多台服务器时,可以编写一个shell...

    sh_scp.zip

    在这个脚本中,`spawn`启动`SCP`命令,`expect`等待"password:"提示出现,然后`send`发送密码并换行,最后`expect eof`等待命令结束。 对于多台服务器的批量复制,我们可以在`shell`脚本中遍历服务器列表,每次调用...

    expect脚本安装和一个简单的脚本

    这个脚本使用 spawn 命令启动 SCP 进程,然后expect 命令等待 Password: 提示,接着使用 send 命令输入密码,并使用 interact 命令交互式地执行 SCP 命令。 Expect 脚本的功能非常强大,不仅支持自动输入密码,还...

    Shell脚本实现自动输入密码登录服务器

    Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...

    shell脚本无密码登录 expect的使用方法详解

    在脚本中,我们定义了服务器的IP地址、端口、目录、用户名和密码,然后使用`spawn`启动SCP命令,接着使用`expect`来匹配和响应登录过程中的不同提示。在这个例子中,`expect`会等待"passphrase"或"password"提示,...

    shell中嵌套执行expect命令实例

    在Shell脚本中嵌套执行`expect`命令是一种非常实用的技术,特别是在自动化运维、部署或需要与交互式程序进行通信时。`expect`是一个Unix/Linux下的工具,用于自动化那些需要用户输入交互的程序,比如SSH登录、SCP...

    linux/unix下expect5.45+tcl工具安装包、使用说明及范例

    本安装包包含的是 Expect 5.45 版本和 Tcl 的集成,它们一起提供了丰富的功能,用于自动化执行那些通常需要人工干预的任务。 **Expect 简介** Expect 是由 Don Libes 在1990年代初开发的,它的设计目标是处理那些...

    linux下的expect的简单用法及举例-文档

    此示例展示了如何使用`Expect`脚本来执行远程命令。 ```tcl #!/bin/bash ip1="183.62.178.191" command1="ssh -l root -p14322 $ip1" expect -c "spawn $command1; expect {\"183.62.178.191's password:\" {send \...

    expect及其依赖rpm包(x64)

    在编写`expect`脚本时,我们需要了解TCL语法,因为`expect`是基于TCL的。基本结构包括定义期待的输出(`expect`语句),发送输入(`send`语句),以及处理错误和异常。一旦编写好脚本,我们可以通过`expect`命令运行...

    expect中为send语句上加变量的代码

    在IT行业中,`expect`是一个非常实用的脚本语言,主要用于自动化交互式命令行程序,如SSH登录、SCP传输等。这个脚本语言基于Tcl,允许用户预定义期望的输出,然后根据这些输出执行相应的操作。在给定的代码段中,...

    python 实现自动远程登陆scp文件实例代码.pdf

    =3}` 检查命令行参数的数量是否为3,因为我们需要提供源路径(path1)、目标路径(path2)和密码(Password)。如果参数不正确,脚本会打印使用说明并退出。 `set path1 [lindex $argv 0]`、`set path2 [lindex $...

    expect脚本编程

    在Unix系统中,许多常见的管理任务可以通过shell脚本来自动化执行,但当这些任务涉及到与用户的交互时,例如需要用户输入密码的情况,传统的shell脚本就显得力不从心了。此时,就需要一个像Expect这样的工具来实现...

    gun expect 中文手册

    Expect脚本通常由以下几个部分组成:初始化(启动进程)、期待模式(匹配输出并响应)、命令和动作(发送输入)、异常处理(错误捕获)和退出(结束进程)。基本脚本格式如下: ```bash #!/usr/bin/expect spawn...

Global site tag (gtag.js) - Google Analytics