如何在cron作业中使用wget将PHP文件的内容输出到日志文件?

时间:2018-01-19 11:59:25

标签: php cron sh wget qnap

背景

我的网络上运行了一个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文件。

有人指出我在正确的方向吗?

谢谢, 斯图尔特。

0 个答案:

没有答案