16

I'm trying to download a large 2GB file with wget, but after a few minutes it seems to keep stalling.

I ^C it, and wget it again [with --continue option], and it starts downloading again.

Is there a way to automate retrying the download when it stops downloading? Thanks

0

1 Answer 1

24

You could use the --tries option.

   --tries=number
       Set number of retries to number.  Specify 0 or inf for infinite
       retrying.  The default is to retry 20 times, with the exception of
       fatal errors like "connection refused" or "not found" (404), which
       are not retried.

So --tries=0 should do the trick.

That, combined with --read-timeout=seconds too. The seconds refers to idle time: if, at any point in the download, no data is received for more than the specified number of seconds, reading fails and the download is restarted.

So the final command:

wget -c --tries=0 --read-timeout=20 [URL]

6
  • 1
    The problem is that wget doesn't quit. It just keeps "downloading" at 0KB/s.. :(
    – Matt
    Oct 27, 2011 at 2:56
  • 8
    Ok. Probably you could use --read-timeout=seconds instead. The "time" of this timeout refers to idle time: if, at any point in the download, no data is received for more than the specified number of seconds, reading fails and the download is restarted. This option does not directly affect the duration of the entire download. Of course, the remote server may choose to terminate the connection sooner than this option requires. The default read timeout is 900 seconds. Oct 27, 2011 at 3:10
  • Yes! That is it! I must have read this long ago when I read the wget manual [most/all of it], and I went back and couldn't find it.
    – Matt
    Oct 27, 2011 at 3:51
  • Shouldn't this include --continue as well?
    – sfyn
    Dec 2, 2014 at 0:54
  • @sfyn: Yes, I added -c to the answer so if anything fails you can pick up where you left off. Thanks. Jan 14, 2015 at 18:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .