Batch wget runs can hit the same host much faster than a person stepping through the same files manually. Adding a delay between retrievals reduces burst traffic, makes scheduled pulls easier to align with published rate policies, and keeps repeat jobs from looking like a tight scripted loop.
GNU wget uses --wait to pause between completed retrievals, and --random-wait varies that pause so the request cadence is not identical every time. Current GNU documentation says the randomized window is 0.5 to 1.5 times the base wait, so --wait=2 --random-wait produces roughly one-to-three-second gaps between requests.
The delay applies between files, not in the middle of one transfer, and --waitretry solves a different problem by spacing retries after failures. Capture one run to a log before moving the same policy into cron or another unattended job so the observed gaps can be checked against the remote service expectation.
Steps to add wait and random delays between wget requests:
- Create the URL list so one pacing policy applies to the whole batch.
$ printf '%s\n' \ 'https://d.example.net/r/ops.csv' \ 'https://d.example.net/r/assets.tgz' \ 'https://d.example.net/r/guide.pdf' \ > urls.txt
One URL per line keeps the retrieval order explicit and makes later reruns easier to audit. Related: How to download files from a list with wget
- Run wget with a base wait, randomized pacing, and a dedicated log file.
$ wget --wait=2 --random-wait --input-file=urls.txt \ --directory-prefix=downloads \ --output-file=wget-delay.log
--output-file preserves the timestamps after the terminal scrollback is gone.
- Review the log and confirm the request starts do not all land on the same second.
$ cat wget-delay.log --2026-04-22 06:45:45-- https://d.example.net/r/ops.csv ##### snipped ##### --2026-04-22 06:45:48-- https://d.example.net/r/assets.tgz ##### snipped ##### --2026-04-22 06:45:50-- https://d.example.net/r/guide.pdf ##### snipped ##### FINISHED --2026-04-22 06:45:50--
With --wait=2 enabled, --random-wait keeps each pause inside the one-to-three-second window instead of repeating one fixed gap.
- Verify that the batch produced the expected files before another script consumes the directory.
$ ls -1 downloads assets.tgz guide.pdf ops.csv
A complete file list plus the spaced timestamps in wget-delay.log confirms both the transfers and the pacing policy.
- Add the same pacing defaults to /$HOME/.wgetrc when the same account should reuse them automatically.
~/.wgetrc wait = 2 random_wait = on
random_wait = on is the startup-file form of --random-wait. Related: How to configure default options in ~/.wgetrc
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
