脚本如下:
#!/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
分享到:
相关推荐
参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]...
通过使用 Expect,可以将原本需要手动进行的操作,例如 SSH 登录、FTP 登录等,编写成脚本自动执行。这在需要对多台服务器执行相同操作的场景下尤其有用,能够显著提高系统管理员的工作效率。 ### 2. 安装 Expect ...
`expect`是一个强大的自动化交互式程序的工具,它能够模拟用户与命令行的交互,使得我们可以通过脚本批量执行远程命令和脚本。在本文中,我们将深入探讨如何在`CentOS`中利用`expect`进行批量远程操作。 首先,确保...
在Linux环境下,系统管理员和开发人员经常会遇到需要自动化执行的任务,尤其是那些涉及到远程登录、文件传输等交互式操作的场景。传统的Shell脚本虽然能够很好地处理非交互式的任务,但在面对需要与用户进行交互的...
本文主要讨论如何使用shell脚本来实现批量复制文件和执行命令,这对于管理多台服务器或者自动化运维工作流程非常有用。 1. **批量复制文件**: 当需要将文件或文件集批量传输到多台服务器时,可以编写一个shell...
在这个脚本中,`spawn`启动`SCP`命令,`expect`等待"password:"提示出现,然后`send`发送密码并换行,最后`expect eof`等待命令结束。 对于多台服务器的批量复制,我们可以在`shell`脚本中遍历服务器列表,每次调用...
这个脚本使用 spawn 命令启动 SCP 进程,然后expect 命令等待 Password: 提示,接着使用 send 命令输入密码,并使用 interact 命令交互式地执行 SCP 命令。 Expect 脚本的功能非常强大,不仅支持自动输入密码,还...
Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...
在脚本中,我们定义了服务器的IP地址、端口、目录、用户名和密码,然后使用`spawn`启动SCP命令,接着使用`expect`来匹配和响应登录过程中的不同提示。在这个例子中,`expect`会等待"passphrase"或"password"提示,...
在Shell脚本中嵌套执行`expect`命令是一种非常实用的技术,特别是在自动化运维、部署或需要与交互式程序进行通信时。`expect`是一个Unix/Linux下的工具,用于自动化那些需要用户输入交互的程序,比如SSH登录、SCP...
本安装包包含的是 Expect 5.45 版本和 Tcl 的集成,它们一起提供了丰富的功能,用于自动化执行那些通常需要人工干预的任务。 **Expect 简介** Expect 是由 Don Libes 在1990年代初开发的,它的设计目标是处理那些...
此示例展示了如何使用`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`脚本时,我们需要了解TCL语法,因为`expect`是基于TCL的。基本结构包括定义期待的输出(`expect`语句),发送输入(`send`语句),以及处理错误和异常。一旦编写好脚本,我们可以通过`expect`命令运行...
在IT行业中,`expect`是一个非常实用的脚本语言,主要用于自动化交互式命令行程序,如SSH登录、SCP传输等。这个脚本语言基于Tcl,允许用户预定义期望的输出,然后根据这些输出执行相应的操作。在给定的代码段中,...
=3}` 检查命令行参数的数量是否为3,因为我们需要提供源路径(path1)、目标路径(path2)和密码(Password)。如果参数不正确,脚本会打印使用说明并退出。 `set path1 [lindex $argv 0]`、`set path2 [lindex $...
在Unix系统中,许多常见的管理任务可以通过shell脚本来自动化执行,但当这些任务涉及到与用户的交互时,例如需要用户输入密码的情况,传统的shell脚本就显得力不从心了。此时,就需要一个像Expect这样的工具来实现...
Expect脚本通常由以下几个部分组成:初始化(启动进程)、期待模式(匹配输出并响应)、命令和动作(发送输入)、异常处理(错误捕获)和退出(结束进程)。基本脚本格式如下: ```bash #!/usr/bin/expect spawn...