Cron作业创建空白文件


Cron jobs creating blank file

我创建的Cron jobs每次运行时都会自动创建一个空白文件。

是否有办法解决这个问题,使它不创建这个文件?

下面是cron作业的命令:

/usr/bin/wget http://nitelife.wmetools.com/backend/index.php/ratings/overall_ratings_history

它正在下载一个空文件,因为那是URL给你的。如果您确定和/或不关心有朝一日URL可能会发送一些数据(如某些不常见的消息,如错误)的可能性,请在wget命令行中添加"-O/dev/null"。这将确保wget永远不会写入真正的文件。如果有4xx或5xx的错误消息,您仍然会从cron获得超过标准错误的消息,但如果任何消息通过正常的HTML超过200的响应,它将丢失。

这就提出了一个问题,为什么要"get"这个链接呢?如果您只想运行.php脚本,而不关心它的输出,我认为第一个建议就足够了。否则,您可能需要一个简短的脚本,它将使用-O写入临时文件,并测试非零文件大小(bash中的"-s"),然后将文件移动到正确的位置,或者删除0长度的文件。这样,正常位置将只包含上次有数据的文件。

如果这个PHP文件是你的,你可以编辑它,使它不再给出一个200状态码和0长度的文档。有一个很少使用的"204无内容"HTTP状态码。我还没有用204测试过wget,但是在这种情况下它真的不应该保存文件,也不应该将其视为错误。

下面将删除wget创建的文件。

/usr/bin/wget -q --delete-after http://nitelife.wmetools.com/backend/index.php/ratings/overall_ratings_history

你可能会丢失这些文件中的信息。