У меня есть cronjob, который загружает файл PDF с удаленного сервера. Имя файла всегда статично, но я сохраняю его в каталоге с датой. Файл сохраняется как исходное время сохранения с сервера, однако ключ -N , похоже, не работает.

Я получаю ошибку о том, что метка времени не может быть использована с -O .

Есть что-то, чего мне не хватает? Я прочитал справочную страницу и не могу разобраться с этим.

wget -N -O ~/foo/foo_`date +%Y%m%d`.pdf http://foo.com/blarg/daily_newsletter.pdf

Это то, что я пытаюсь сделать.

1 ответ1

0

Справочная страница объясняет это довольно хорошо:

Документы не будут записаны в соответствующие файлы, но все будут объединены и записаны в файл. Если в качестве файла используется '-', документы будут распечатаны на стандартный вывод, отключив преобразование ссылок. (Используйте «./-» для печати в файл с буквальным названием «-».)

Использование «-O» не означает просто «использовать файл имени вместо того, который указан в URL»; скорее это аналог перенаправления оболочки: «wget -O file http://foo » предназначен для работы как 'wget -O - http://foo > file'; Файл будет немедленно обрезан, и весь загруженный контент будет записан туда.

По этой причине '-N' (для проверки меток времени) не поддерживается в сочетании с '-O': поскольку файл всегда создается заново, у него всегда будет очень новая метка времени. Предупреждение будет выдано, если эта комбинация используется.

Таким образом, как говорится, -O не для переименования выходного файла, а для перенаправления всех стандартных выходных данных для всех загруженных файлов в file . Вам, вероятно, придется скачать файл и переименовать его, чтобы сохранить метку времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .