首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何SCP文件正在被另一个进程的FTPed &删除他们的完成?

如何SCP文件正在被另一个进程的FTPed &删除他们的完成?
EN

Stack Overflow用户
提问于 2014-08-21 18:11:53
回答 2查看 39关注 0票数 0

正在通过FTP协议将文件传输到我机器上的目录。我需要将这些文件SCP到另一台机器上,并在完成时删除它们。如何检测文件传输是否已通过FTP完成&文件可以安全地执行SCP?

EN

回答 2

Stack Overflow用户

发布于 2014-08-21 18:38:11

没有可靠的方法来检测传输的完成情况。一些客户端在实际上传文件之前发送ALLO命令并传递文件的大小,但这并不是一个明确的规则,所以你不能依赖它。总而言之,客户端有可能会流式传输数据,而文件本身并没有明确的“结束”。

如果客户端在您的控制之下,您可以让它上传扩展名为A的文件,并在上传后将文件重命名为扩展名B,然后只传输扩展名为B的文件。

票数 0
EN

Stack Overflow用户

发布于 2014-08-21 19:25:33

您可以像这样编写脚本:

代码语言:javascript
运行
复制
#!/bin/bash

EXPECTED_ARGS=1
E_BADARGS=65

#Arguments control
if [ $# -lt $EXPECTED_ARGS ]
then
  echo "Usage: `basename $0` <folder_update_1> <folder_update_2> <folder_update_3> ..."
  exit $E_BADARGS
fi

folders=( "$@" )
for folder in ${folders[@]} 
do
    #Send folder or file to new machine 
    time rsync --update -avrt -e ssh /local/path/of/$folder/ user@192.168.0.10:/remote/path/of/$folder/

    #Delete local file or folder
    rm -r /local/path/of/$folder/
done

它被配置为发送文件夹。如果您想要文件需要在脚本上做一些更改,如下所示:

代码语言:javascript
运行
复制
    time rsync --update -avrt -e ssh /local/path/of/$file user@192.168.0.10:/remote/path/of/$file
    rm /local/path/of/$file/

Rsync类似于scp。我更喜欢使用rsync,但您可以更改它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25423667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档