Фон
У меня в сети запущено устройство NAS QNAP, и я хочу периодически запускать задание cron для вызова веб-страницы, которая затем обновит службу динамического DNS с использованием публичного IP-адреса моего маршрутизатора. Я хочу быть в состоянии взять выход из этого файла PHP и добавить в файл журнала.
Для тестирования я создал файл test.php, который просто возвращает некоторый текст.
Вот соответствующие кусочки:
https://www.example.com/test.php
<?php
echo "Hello world!\n";
?>
updateddns.sh
# updateddns.sh
########## Edit the following lines ##########
Logfile="/share/Public/ddns.log"URL="https://www.example.com/test.php"Token="lPpbyP22M1ePvthsJ0uO"##############################################
date >> $Logfile
wget -4q -O - --post-data="auth=$Token" $URL >> $Logfile
echo "Complete" >> $Logfile
crontab (выдержка)
*/5 * * * * /bin/sh /share/Public/updateddns.sh
DVNK5C ~ Q (выдержка)
Fri Jan 19 10:00:00 GMT 2018
Complete
Fri Jan 19 10:05:00 GMT 2018
Complete
Fri Jan 19 10:10:00 GMT 2018
Complete
Fri Jan 19 10:15:00 GMT 2018
Complete
Fri Jan 19 10:20:00 GMT 2018
Complete
Fri Jan 19 10:25:00 GMT 2018
Complete
Fri Jan 19 10:30:00 GMT 2018
Complete
Как видите, запущенное задание cron регистрирует дату и текст «Complete», но ничего из команды wget. Еще одна вещь, на которую следует обратить внимание, это то, что вместо записи в ddns.log выходные данные записываются в файл с именем DVNK5C ~ Q (при просмотре в Windows), который выглядит так, как будто он называется ddns.log ?? при просмотре в командном окне оболочки.
Если я запускаю команду wget непосредственно из командной строки, она работает, и я получаю «Hello world!» записан в правильный файл ddns.log.
Кто-нибудь указывает мне правильное направление здесь?
Спасибо,
Стюарт.
Задача ещё не решена.
Других решений пока нет …