小编nin*_*ing的帖子

Wget segfault——我如何知道是哪个网站造成的?

我正在尝试在本地镜像网站。但是,我在下载过程中的某个一致点遇到了分段错误,该错误位于与我的目标站点不同的域上(可能是由于--page-requisites)。

2018-04-09 04:58:32 (346 KB/s) - './not-website.com/2017/06/28/xyz/index.html' saved [145810]

29247 Segmentation Fault      (core dumped) wget --directory-prefix="${DL_ROOT}" --recursive --page-requisites --span-hosts --tries="${TRIES_NUM}" --timeout="${TIMEOUT_NUM}" --reject="*.tar" --convert-links --adjust-extension --continue --no-check-certificate "http://website.com/"
Run Code Online (Sandbox Code Playgroud)

因此,我认为分段错误是由于 wget 尝试下载特定网站但失败造成的。

但是,错误消息似乎没有告诉我 wget 在哪个地址上失败。它只告诉我最后一次成功的下载。我如何找出 wget 因该段错误而失败的位置/原因?

core错误似乎引用了一个 55M 的文件(core dumped),但它不是纯文本形式。里面有我需要的信息吗?我该如何提取这些信息?

我已经跨发行版(Solaris、Debian、Raspbian)对此进行了测试,并且此段错误是一致的,并且始终位于相同的地址之后(not-website.com/...在上面的错误消息中)。

我正在使用命令:

$ wget \
    --directory-prefix="${DL_ROOT}" \
    --recursive \
    --page-requisites \
    --span-hosts \
    --tries="${TRIES_NUM}" \
    --timeout="${TIMEOUT_NUM}" \
    --reject="*.tar" \
    --convert-links \
    --adjust-extension \
    --continue \
    --no-check-certificate \
  "http://website.com/"
Run Code Online (Sandbox Code Playgroud)

附加信息

这是一个很大的网站,有很多媒体。故障时,下载的目录大小约为252M。

测试于:

GNU Wget …
Run Code Online (Sandbox Code Playgroud)

linux command-line networking kernel wget

5
推荐指数
1
解决办法
4266
查看次数

标签 统计

command-line ×1

kernel ×1

linux ×1

networking ×1

wget ×1