微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果移动,LFTP 重新下载文件

如何解决如果移动,LFTP 重新下载文件

我有一个 bash 脚本,可以从远程服务器上传或下载文件。一切正常,但如果我在整个脚本完成之前移动这些文件,它会再次重新下载任何已下载的文件。我不确定是什么导致了这种行为。

示例:假设我正在从远程服务器下载 x10、1Gb 文件,现在是第 5 个文件(共 10 个)。现在在我的本地机器上,我已经下载了 5 个文件并且可以正常工作在文件 6 of 10 上。如果我将这 5 个完成的文件移动到另一个位置,而脚本仍在下载文件 6 of 10。一旦完成文件 10 of 10,它会再次重新下载文件 1-5,因为我在脚本之前移动了它们完成所有10个文件。这在下载 100GB 以上的文件时可能会有点烦人,并且在它们全部完成之前无法移动它们。

# ------------------------------------------------------[ Download Files ]
pull_files(){
    trap "rm -f ${lock_dl_files}" SIGINT SIGTERM
    if [ -e "${lock_dl_files}" ]; then
        echo "${basename_files} is already running"
    else
        echo "[ACTION] Creating .lock file"
        touch "${lock_dl_files}"
        lftp -p 22 -u "${user}","${pass}" sftp://"${host}" << EOF
        cd ${remote_files}
        echo "[FILES READY FOR DOWNLOAD]"
        cls -h ${remote_files}
        set sftp:auto-confirm yes
        mirror --use-pget-n=25 -c -L -v -p --loop --log="${log_dl_files}" "${remote_files}" "${local_files}"
        quit
EOF
        ssh ${user}@${host} ${rmSymlinks_Files}
        printf "[ACTION] Removing .lock file\n" | tee -a ${log_dl_files}
        rm -f "${lock_dl_files}"
        printf "#--------- Download Complete ---------#\n" | tee -a ${log_dl_files}
        trap - SIGINT SIGTERM
    fi
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。