问题描述
我有一个 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 (将#修改为@)