Как предотвратить создание текстового файла с помощью wget при запуске задания cron?

Несколько вариантов в зависимости от оболочки:

$ touch a akk aka
$ ksh -c 'echo a*(k)'
a akk
$ zsh -o kshglob -o nobareglobqual -c 'echo a*(k)'
a akk

( nobareglobqual для этого конечного (k) здесь не следует использовать в качестве квалификатора glob)

$ bash -O extglob -c 'echo a*(k)'
a akk

$ zsh -o extendedglob -c 'echo ak#'
a akk

zsh # является эквивалентом регулярного выражения * .

ksh93 также может использовать несколько типов регулярных выражений в своих глобах:

$ ksh93 -c 'echo ~(E:ak*)' # extended RE
a akk
$ ksh93 -c 'echo ~(P:ak*)' # perl-like RE
a akk
$ ksh93 -c 'echo ~(X:ak*)' # AT&T augmented RE
a akk
$ ksh93 -c 'echo @(~(E)ak*)' # alternative syntax
a akk
1
20.04.2018, 08:57
2 ответа

wgetпо умолчанию сохраняет выбранную веб-страницу в файле, имя которого соответствует документу в конце URL-адреса (и не отправляет ее на свой стандартный вывод ). Если этот файл уже существует, он добавляет номер в конец имени.

Если вы не хотите сохранять документ, укажите, что хотите сохранить его в/dev/null:

wget -O /dev/null 'https://domain.tld/index.php?page=cron' >/dev/null 2>&1

или

wget --output-document=/dev/null --quiet 'https://domain.tld/index.php?page=cron'

Также рекомендуется заключать URL-адрес в кавычки, поскольку URL-адреса иногда содержат символы, которые могут быть интерпретированы оболочкой как символ подстановки имени файла или терминаторы команд (, например &, [, ]и т. д. )].

9
27.01.2020, 23:11

Проблема не в cron. Это поведение wgetпо умолчанию. Чтобы сделать его перенаправленным на стандартный выход (, чтобы затем вы могли перевести этот вывод на /dev/null), используйте wget -O-. И вы, вероятно, также хотите -q. Так:

wget -qO- 'https://domain.tld/index.php?page=cron' > /dev/null 2>&1

Однако я не рекомендую такой подход. А если ошибка? Лучше сделать небольшой скрипт, который проверяет, является ли результат кодом http 200 и соответствует ли содержимое ожидаемому.

3
27.01.2020, 23:11

Теги

Похожие вопросы