【发布时间】:2012-05-23 18:39:58
【问题描述】:
所以,我有一个从种子箱下载东西的脚本。它适用于远程服务器中的新文件,然后镜像到我的本地服务器上。问题是,例如,当我想要删除不必要的文件时,再次运行脚本会再次重新下载相同的文件。我尝试进入 mirror 的手册页,但没有帮助。这是镜像文件的脚本:
#!/bin/bash
login=XXXX
pass=XXXXXX
host=XXXXX
remote_dir=/files/
local_dir=/home/XXX/XXX
trap "rm -f /tmp/seedroots.lock" SIGINT SIGTERM
if [ -e /tmp/seedroots.lock ]; then
echo "Synctorrent is running already."
exit 1
else
touch /tmp/seedroots.lock
lftp -p 21 -u $login,$pass $host << EOF
set ftp:ssl-allow no
set mirror:use-pget-n 5
mirror -c -P5 --log=synctorrents.log $remote_dir $local_dir
EOF
rm -f /tmp/seedroots.lock
exit 0
fi
是否有一个我缺少的镜像选项不会再次重新下载本地删除的文件?
【问题讨论】:
-
您是否希望脚本从远程服务器下载文件但忽略您在本地删除的文件?如果是这样,我想这将很难实现。除非您可以依赖修改时间,否则脚本将无法区分您在本地删除的文件和从未下载的文件。要实现这一点,您可能需要构建“已见”文件的本地列表并忽略它们。
-
这是一个关于 lftp 的问题,而不是一般的 bash 或 ftp,可能应该这样标记(并在摘要中描述)。