背景
我的网络上运行了一个QNAP NAS盒,我想定期运行一个cron作业来调用一个网页,然后用我路由器的公共IP地址更新动态DNS服务。我希望能够取出这个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作业正在运行记录日期和&#34;完成&#34;文本,但没有wget命令。另一件需要注意的是,不是记录到ddns.log,而是将输出记录到名为DVNK5C~Q的文件(在Windows中查看),看起来像是ddns.log?在shell命令窗口中查看时。
如果我直接从shell提示符运行wget命令,它就可以工作,我得到了#Hello; Hello world!&#34;写到正确的ddns.log文件。
有人指出我在正确的方向吗?
谢谢, 斯图尔特。