【问题标题】:Stop SFTP/FTP connection while the active connection is not transferring data in Unix Shell Scripting在活动连接未在 Unix Shell 脚本中传输数据时停止 SFTP/FTP 连接
【发布时间】:2016-04-26 20:11:43
【问题描述】:

我遇到了问题,但我看不到与此相关的内容。

我遇到了一个问题,当我与服务器执行 FTP 连接时发生了一些事情正在传输文件,但由于某种原因有时会卡住,但我想阻止打开连接,有一个如何查看FTP连接是否没有传输,关闭连接?

我真的没有任何代码,因为我不确定这是否可能,

知道此时我能做什么吗?

【问题讨论】:

    标签: shell unix ftp connection timeout


    【解决方案1】:

    如果它在您传输文件时关闭连接,那么它可能是您的 FTP/SFTP 客户端、服务器或网络。首先,切换到不同的 FTP/SFTP 客户端。有些人比其他人拥有更多的分析工具。我以前不得不这样做。如果这不起作用,请检查互联网连接或联系您的系统/网络管理员。

    【讨论】:

    • 它没有关闭连接,连接仍然打开,但由于某种原因它卡住了,可能是在传输文件时发生了一些事情,我的脚本没有继续,连接仍然打开。
    • 好的,在我看来文件本身已损坏。如果不是,我仍然会尝试不同的 FTP/SFTP 客户端。有一次我和你有同样的问题。我试图通过网络发送 JPG,甚至认为网络仍然开放,文件从未传输过。我改变了我的客户,并解决了这个问题:)
    • 我不能改,我得修改我的脚本。
    【解决方案2】:

    有办法查看FTP连接是否没有传输,关闭 连接?

    如果你正在下载一个文件,你可以通过观察文件的大小间接看到 FTP 传输:

    name=$1
    size=0
    while   sleep 10
            set -- `ls -s $name`
            [ "$1" -gt $size ]
    do      size=$1
    done
    exit 1
    

    上面的脚本(我们称之为growing)在文件(作为参数传递)增长的同时运行。
    在您的脚本中,您可以编写类似

    growing file || pkill ftp &
    

    在您启动 FTP 之前。如果文件停止增长十秒钟,ftp 将被终止并因此关闭连接。如果 ftp 正常终止,你可以kill $! 或者让growing 结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多