通过FTP协议将文件传输到我的机器上的目录。我需要将SCP这些文件发送到另一台机器上。完成后删除它们。 如何通过FTP检测文件转移是否已完成& SCP可以安全地存档吗?
答案 0 :(得分:0)
没有可靠的方法来检测传输的完成情况。有些客户端在实际上传文件之前发送ALLO命令并传递文件大小,但这不是一个明确的规则,所以你不能依赖它。总而言之,客户端可能会对数据进行流式传输,并且没有明确的结果"文件旁边。
如果客户端在您的控制之下,您可以上传带有扩展名A的文件,上传后将文件重命名为扩展名B.然后您只传输扩展名为B的文件。
答案 1 :(得分:0)
你可以这样做一个脚本:
#!/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
配置为发送文件夹。如果你想要文件需要在脚本上做一点改动:
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 ,但您可以更改它。