【问题标题】:PSFTP (Linux) how to run a while loopPSFTP(Linux)如何运行一个while循环
【发布时间】:2016-10-28 23:28:20
【问题描述】:

我正在编写一个 shell 脚本来从远程 linux 服务器下载一个日志文件到我的本地 windows pc(在执行了几个其他操作之后),即一旦所有其他操作(例如读取、写入、放置、获取等)完成远程服务器和日志文件“已经”写入成功,我想下载它。我正在尝试为此使用 while 循环。

在此我正在检查服务器上是否存在我 FTP 的文件之一。如果不存在(因为服务器会在一段时间后删除文件并写入日志文件),请下载日志文件。如果文件仍然存在,请继续等待它被删除。下面是一个sn-p:

call while [ ! -f /tmp/foo.txt ]; sleep 2; done
get FileWriter1.log

问题是 pftp 无法识别 while 命令。我什至尝试在它之前打一个“电话”,但它仍然不起作用。我怎样才能让它运行?

提前感谢您的所有帮助。

【问题讨论】:

    标签: linux recursion ftp psftp


    【解决方案1】:

    psftp 中没有call 命令。

    您的脚本实际上看起来像 WinSCP script

    WinSCP 同时具有callget 命令。

    【讨论】:

    • 嗨,马丁,我之前使用的是 winscp,但后来决定不使用。由于调用在winscp中有效,我虽然它可能也适用于psftp,但它没有。为什么某些命令(例如“while”)无法正常运行?运行它们的替代语法是什么?
    • 首先是什么让您期望可以在 SFTP 客户端中运行 shell 命令?
    • 嗨马丁,我想现在我已经开始理解这一点了。由于我对 shell 脚本和 Linux 还很陌生,所以我假设 SFTP 客户端可以将 shell 命令发送到服务器以执行,就像它对 get、put 等其他命令一样
    • getput 不会发送到服务器。这些是本地特定 SFTP 客户端的命令。其他客户端可以有不同的命令或不同的选项。例如,请注意 psftp、WinSCP 和 OpenSSH 中 get 的不同语义。
    • 现在说得通了。感谢您解释马丁 :)
    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多