0

我正在创建一个wget 脚本来下载和镜像站点。URL 取自文本文件。我几乎已经创建了整个脚本,但现在我需要让它变得完美。每天要使用3个小时,所以应该从上次结束的地方继续。
我在下面提供了我的脚本,如果有人觉得它有用,可以使用它,但在脚本中保留我的名字。

脚本问题:

该脚本没有通过使其可引用到父目录中的文件来正确引用其链接,请告诉我。即使使用--continue参数
,脚本在中间中止后也不会恢复

#       Created by Salik Sadruddin Merani
#       email: ssm14293@gmail.com
#       site: http://www.dragotech-innovations.tk
clear
echo '  Created by: Salik Sadruddin Merani'
echo '  email: ssm14293@gmail.com'
echo '  site: http://www.dragotech-innovations.tk'
echo
echo '  Info:'
echo '  This script will use the URLs provided in the File "urls.txt"'
echo '  Info: Logs will be saved in logfile.txt'
echo '  URLs are taken from the urls.txt file'
#
url=`< ./urls.txt`
useragent='Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0'
echo '  Mozilla Firefox User agent will be used'

cred='log=abc@123.org&pwd=abc123&wp-submit=Log In&redirect_to=http://abc@123.org/wp-admin/&testcookie=1'
echo '  Loaded Credentails'
echo '  Logging In'
wget --save-cookies cookies.txt --post-data ${cred} --keep-session-cookies http://members.ebenpagan.com/wp-login.php --delete-after

OIFS=$IFS
IFS=','
arr2=$url
for x in $arr2
do
    echo '      Loading Cookies'
    wget --spider --load-cookies cookies.txt --keep-session-cookies --mirror --convert-links --page-requisites ${x} -U ${useragent} -np --adjust-extension --continue -e robots=no --span-hosts --no-parent -o log-file-$x.txt
done
IFS=$OIFS

问候

4

1 回答 1

0

wget 中的 --continue 标志将尝试恢复当前目录中单个文件的下载。有关更多信息,请参阅 wget 的手册页。它非常详细。

您需要的是从脚本之前停止的位置恢复镜像/下载。

因此,它更多的是对脚本的修改,而不是 wget 中的某些设置。我可以建议一种方法来做到这一点,但请注意,您也可以使用不同的方法。

将 URLs.txt 文件修改为每行一个 URL。然后参考这个伪代码 -

  1. 从文件中获取 url
  2. 如果(url 以标记#DONE 结尾),继续
  3. 否则, wget 命令
  4. 将标记#DONE 附加到文件中 url 的末尾

这样,您将在下次运行脚本时知道从哪个 URL 继续。所有末尾带有“#DONE”的 URL 都将被跳过,其余的将被下载。

于 2018-04-25T09:16:26.470 回答