Если вы используете authbind для запуска tomcats, нам не нужны iptables или какие-либо программы для перенаправления, надеюсь, что эта ссылка будет полной.
https://askubuntu.com/a/685306/377678 [ ! d1]
Да, это опция -c.
--continue
Continue getting a partially-downloaded file. This is useful when you want to
finish up a download started by a previous instance of Wget, or by another
program.
Если файл тот же, вторая попытка загрузки остановится.
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
Saving to: ‘logo.png’
...
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
The file is already fully retrieved; nothing to do.
Предостережения (из комментариев jofel)
Если файл изменился на сервере, параметр -c может давать неверные результаты.
С помощью -c wget просто запрашивает сервер для любых данных за пределами части уже загруженный файл, ничего больше. Он не проверяет, было ли какое-либо изменение в части уже загруженного файла. Таким образом, вы можете испортить файл, представляющий собой смесь старого и нового файлов.
Предостережения
Вы можете проверить (после ответа @ roadmr):
Откройте окна терминала и введите:
cd /path/to/parent-download-dir/
python -m SimpleHTTPServer
Теперь откройте другой терминал и выполните: [ ! d13]
wget -c http://localhost:8000/filename-to-download
Обратите внимание, что filename-to-download - это файл, расположенный в /path/to/parent-download-dir/, который мы хотим загрузить.
Теперь, если вы запустите команду wget несколько раз, вы увидите:
The file is already fully retrieved; nothing to do.
Хорошо, перейдите в каталог /path/to/parent-download-dir/ и добавьте что-то в исходный файл, например, если это текстовый файл, добавьте в него простую дополнительную строку и сохраните файл. Теперь попробуйте с помощью wget -c ....
, потому что его размер изменился на больший размер, чем старый загруженный файл и ничего больше.
Также есть еще один вариант, называемый -nc для wgetting:
--no-clobber
If a file is downloaded more than once in the same directory, Wget's behavior
depends on a few options, including -nc. In certain cases, the local file will
be clobbered, or overwritten, upon repeated download. In other cases it will be
preserved.
Когда опция -nc указана, Wget откажется от загрузки копий того же файла. Если у вас был тот же файл, который wget пытается загрузить, он откажется его загрузить, если вы не переименуете или не удалите локальный файл.
$ wget -nc https://cdn.sstatic.net/askubuntu/img/logo.png
...
Saving to: ‘logo.png’
...
$ wget -nc https://cdn.sstatic.net/askubuntu/img/logo.png
File ‘logo.png’ already there; not retrieving.
Иногда эта опция очень хороша, и я рекомендовал использовать -nc вместо опции -c или -N, потому что эти параметры будут перезаписывать файл загрузки с вашим локальным файлом, если бы у них были такие же имена.
очень хорошо (из комментария jofel)
Параметр -nc не обновляет файл, если он изменился на сервере. Если вы знаете, что файл изменится, опция -N предпочтительнее. Если вы знаете, что файл не изменится (или вам все равно), тогда -nc в порядке.
Я знаю, что это был конкретный вопрос о wget, но OP упомянул «С удовольствием использовать завиток или аналогичную альтернативу для скриптов, если wget не сможет этого сделать». Я не уверен, что здесь требуется (несколько файлов, сохранить старую версию, если она отличается от оригинала, заменить на новую версию). В зависимости от того, что вы хотите и как вы хотите обрабатывать дубликаты, вам может потребоваться больше, чем это. Очень простой способ сделать то, что вам кажется, это просто использовать завиток.
curl http://cdn.sstatic.net/askubuntu/img/logo.png?v=ca4d192163aa > logo.png
Эта команда
Не выводите это на терминал (без «> [filename]»), если вы загружаете двоичный файл, а не текст. Это может потенциально повредить сеанс терминала. В случае, если вы делаете это при аварии, вам может потребоваться открыть другой сеанс оболочки / терминала.