如果移动,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 (将#修改为@)