tcl - 如何使用 tcl-expect 将文件从远程主机复制到本地主机

标签 tcl expect

在这里,我使用 telnet 在两台机器之间建立连接,并在远程主机中创建一个名为“file.txt”的文件,并将“ls”命令执行的结果存储在 file.txt 中。现在我需要将文件发送到本地主机。我不知道该怎么做。任何知道的人都请帮助我。

#!/usr/local/bin/expect 
spawn telnet <machine ip> 
expect "login:" 
send "<username>\n" 
expect "Password:" 
send "<password>\n" 
expect "bash"
send " ls > file.txt\r "
expect "bash"
send " cat file.txt \r "
expect "bash"
send " command for copying file to the localhost computer\r"
expect "bash"
send "exit\r"

最佳答案

强烈建议您使用 sshscp 来执行此任务。

#!/usr/local/bin/expect

### Factor these out
set user <username>
set pass <password>
set host <machineIP>

### Get the file list into a file remotely
spawn ssh $user@$host sh -c {ls -1 >file.txt}
expect {
    "Password:" {
        send "$pass\r"
        exp_continue
    }
    eof {
        close
    }
}
### Copy the file to the local machine
spawn scp $user@${host}:file.txt .
expect {
    "Password:" {
        send "$pass\r"
        exp_continue
    }
    eof {
        close
    }
}

关于tcl - 如何使用 tcl-expect 将文件从远程主机复制到本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158786/

相关文章:

linux - 期望嵌套的 shell 脚本

linux - 使用 Expect 的 SFTP

linux - expect脚本中 `exit`命令后的数字是什么意思

perl - 为 MIPS 处理器交叉编译 Perl 或 Expect

tcl - 框架内的标签不会对齐

c++ - 通过 C++ 控制台提供 TCL 脚本控制窗口

c - 使用 SWIG 从 C/C++ 进行 Tcl 回调

python - tkinter - wm 协议(protocol)不处理 WM_HELP 消息

file - 如何将一系列命令的输出重定向到 stdout 和 Tcl 中的文件?

arrays - 将 bash 数组传递给 Expect 脚本