SFTP的期望脚本无法在bash中运行

普拉泰克·杰伊斯瓦尔

我创建了一个shell脚本,其中包含一个期望脚本,用于从远程位置获取文件。一切正常,直到发送了一些命令。无论是“ ls”,“ pwd”还是任何其他命令,期望脚本都会突然结束。你们能帮我这个忙吗?

注意:安全不是问题,因此不使用公共密钥。

#!/bin/ksh

FTPREMOTEPATH=/Inbox
FTPREMOTEFILENAME=test.CSV


/usr/bin/expect -f - <<EOFEXPECT1
set timeout 60
spawn sftp -oPort=1002 [email protected]
expect {
        default { exit 1}
        -re "failed|invalid password|Permission denied" {exit 2}
        "Connection closed" {exit 1}
        timeout {exit 1}
}

expect "Password:"
send "password\r"

expect {
        default {exit 1}
        -re "password|Enter password for " {puts "Incorrect Password"; exit 2}
        "sftp>" {send "cd $FTPREMOTEPATH \r"}
}

expect "sftp>"
send "pwd\r"

send "get $FTPREMOTEFILENAME \r";

EOFEXPECT1

在上述脚本中,脚本在发送cd $ FTPREMOTEPATH之后突然结束。

以下是输出:

$ ./test.sh
spawn sftp -oPort=1002 [email protected]
Enter password for username
Password:
sftp> cd /Inbox
sftp> $
普拉泰克·杰伊斯瓦尔

好的,显然我想不到EOF(EOFEXPECT1)之前的“ sftp>” {发送“ bye \ n”}

但是,我仍然想知道在期望脚本中再见的重要性。

这是更新的工作代码:

#!/bin/ksh

FTPREMOTEPATH=/Inbox
FTPREMOTEFILENAME=test.CSV


/usr/bin/expect -f - <<EOFEXPECT1
set timeout 60
spawn sftp -oPort=1002 [email protected]
expect {
        default { exit 1}
        -re "failed|invalid password|Permission denied" {exit 2}
        "Connection closed" {exit 1}
        timeout {exit 1}
}

expect "Password:"
send "password\r"

expect {
        default {exit 1}
        -re "password|Enter password for " {puts "Incorrect Password"; exit 2}
        "sftp>" {send "cd $FTPREMOTEPATH \r"}
}

expect "sftp>"
send "pwd\r"

send "get $FTPREMOTEFILENAME \r";

expect "sftp>" {send "bye\n"}

EOFEXPECT1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash 脚本无法在 Shell 中运行

来自分类Dev

Bash脚本无法运行

来自分类Dev

Bash脚本无法从crontab正常运行

来自分类Dev

OSX bash脚本无法从cron运行

来自分类Dev

Shell脚本无法在cygwin中运行

来自分类Dev

脚本无法在Bluetoothctl中运行命令

来自分类Dev

Bamboo Plan脚本无法在bash脚本中运行正则表达式

来自分类Dev

PHP脚本无法运行bash脚本。sh:权限被拒绝

来自分类Dev

bash脚本无法通过crontab正常运行

来自分类Dev

Bash脚本无法使用键盘快捷键运行

来自分类Dev

Bash脚本无法在Docker映像上运行节点

来自分类Dev

jQuery脚本无法运行

来自分类Dev

脚本无法正常运行

来自分类Dev

jQuery脚本无法运行

来自分类Dev

期望脚本无法识别“ --MORE--”,此后不运行任何命令

来自分类Dev

期望脚本无法识别“ --MORE--”,此后不运行任何命令

来自分类Dev

更新脚本无法在SQL Server中的IF语句中运行

来自分类Dev

脚本无法在带有IE的IFrame中运行-可以

来自分类Dev

Java脚本无法在JSP文件中运行Spring MVC

来自分类Dev

bash脚本无法读取bashrc中的别名

来自分类Dev

bash脚本无法处理文件名中的空格

来自分类Dev

期望脚本无法从文件读取mkdir并执行

来自分类Dev

期望脚本无法从文件读取mkdir并执行

来自分类Dev

期望脚本无法在for循环中使用

来自分类Dev

jQuery脚本无法正常运行

来自分类Dev

启动脚本无法运行

来自分类Dev

Facebook php脚本无法在线运行

来自分类Dev

docker入口点脚本无法运行

来自分类Dev

测试脚本无法运行Golang