gpt4 book ai didi

linux - 如何通过linux expect下载文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:58 25 4
gpt4 key购买 nike

我遇到了一个关于 linux expect 脚本的问题。我有一台只有 LAN 连接的计算机 A,而同一 LAN 中的另一台计算机 B 有 Internet 连接。我想做的是编写一个脚本,它可以通过 ssh 登录到计算机 B 并将文件下载到它,最后使用 scp 将文件传输到计算机 A。下面是我的脚本。

    #!/bin/expect
set url [lindex $argv 0];
spawn ssh "user@computer-B"
expect "password:"
send "passwd\n"
expect "Last login:"
send "cd tmp\n"
send "wget $url\n"
expect "saved"
send "scp * user@computer-A:~/\n"
expect {
"yes/no" { send "yes\n"; exp_continue }
"password:" { send "passwd\n" }
}
expect "100%"
send "rm *\n"
send "exit\n"

但是现在脚本会在 wget 完成之前立即将文件 scp 到 A。我的脚本是否接近正确的方法?如果不是我该怎么办?非常感谢。

最佳答案

你不需要expect,你可以使用key-based login让您的生活更轻松。

socks

你可以使用 socks proxy .

来自计算机 A:

ssh -D 1080 address-of-B

其次是

export SOCKS_SERVER=127.0.0.1:1080

您现在可以在计算机 A 上使用 wget

一个类轮

来自计算机 A:

ssh computer-B 'wget -O - $url' >> filename_on_computer_a

关于linux - 如何通过linux expect下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40991287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com