3

Я использую wget для вызова ссылки каждые 10 секунд, например:

#/bin/sh
while true; do
    wget http://www.some.random.link/to/some/PHP/script
    sleep 10
done

В результате создаются пустые файлы с именем script_name.# Где # увеличивается при каждом запуске.

Почему это происходит?

2 ответа2

5

Это связано с тем, что wget загружает вывод вашего скрипта (который, по-видимому, пуст) и сохраняет его в файле, каждый раз добавляя число, чтобы не перезаписывать ранее загруженный файл.

Есть несколько вариантов, как это предотвратить.

  1. Запретить загрузку wget вообще, используя параметр --spider:
    wget --spider http://www.some.random.link/to/some/PHP/script
    Однако это может привести к тому, что ваш скрипт не будет работать, поскольку, IIRC, он только выдает запрос HEAD .
  2. Загрузите вывод, но отмените его, отправив его в /dev/null:
    wget -O /dev/null http://www.some.random.link/to/some/PHP/script
  3. Загрузите вывод, но удалите, если впоследствии, используя --delete-after:
    wget --delete-after http://www.some.random.link/to/some/PHP/script
  4. Для полноты картины, если вы можете жить с одним файлом, используйте опцию -nc чтобы предотвратить загрузку wget файлов, которые уже существуют локально:
    wget -nc http://www.some.random.link/to/some/PHP/script
1

В качестве альтернативного исправления вы можете избежать использования wget - который, как следует из его названия, предназначен для получения веб-контента с заданного URL-адреса. Другими словами, он создан, чтобы быть инструментом "загрузки". (Это, конечно, очень гибко, как продемонстрировал Индрек в своем ответе. Но его настройки по умолчанию работают против ваших целей.)

Так как вам не нужно или хотите , чтобы на самом деле ничего скачивать (вы просто получить доступ к URL , чтобы выпалить серверный скрипт), curl команда немного больше подходит для вашего сценария. По умолчанию результаты его запросов будут записываться в стандартный вывод, а не в файл.

Таким образом, замена wget на curl в приведенном выше коде должна решить проблему создания файла без дальнейшей работы.

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