【问题标题】:Cron job creating empty file each time it runsCron 作业每次运行时都会创建空文件
【发布时间】:2011-01-20 07:49:35
【问题描述】:

我有一个 php 脚本,我想每分钟运行一次以查看是否有需要发布的草稿新闻帖子。我在 cPanel 中使用“wget”作为 cron 命令,但我注意到(几天后)每次运行时都会在主目录中创建一个空白文件。我需要做些什么来阻止这种情况发生吗?

谢谢。

【问题讨论】:

  • 文件名是什么,它在工作完成后仍然存在吗?
  • 我遇到了一些问题。我已经通过 cpanel 创建了 cron 作业。我在根目录中创建了哪个文件我已经运行了同名文件

标签: php cron wget


【解决方案1】:

默认情况下,当 wget 运行时,它会根据我需要记住的内容生成一个输出文件。

您可能需要使用 wget 的某些选项来指定它应该将其输出写入哪个文件 - 并使用 /dev/null 作为目标文件 (这是一个“特殊文件”,它将“吃掉”你的一切可以写)


从 man wget 判断,-O--output-file 选项将是一个不错的选择:

-O file
--output-document=file
文档不会被写入相应的文件,但所有文件将连接在一起并写入文件。

所以,你可能需要使用这样的东西:

wget -O /dev/null http://www.example.com/your-script.php


而且,顺便说一句,从 crontab 运行的脚本的输出通常会重定向到日志文件——它总是有帮助的。

这样的事情可能会有所帮助:

wget -O /dev/null http://www.example.com/your-script.php >> /YOUR_PATH_logfile.log

您可能还想将错误输出重定向到另一个文件(可能很有用,以帮助调试,当出现问题时)

wget -O /dev/null http://www.example.com/your-script.php >>/YOUR_PATH/log-output.log 2>>/YOUR_PATH/log-errors.log

【讨论】:

  • "-q" 如果你不需要任何输出,会关闭 Wget 的输出。
  • @Danny -q 显然还不够。我的主机 def 需要 -O /dev/null 在那里。另请注意, -o 不等效。大写的“O”在某些或所有系统上必须很重要。
  • -q 不工作。 Cron 仍在服务器上创建临时文件。更改当前运行的 cron 后是否需要重新启动 cron?如果是,那该怎么做呢?
猜你喜欢
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 2020-02-23
  • 2018-02-18
  • 2011-11-27
  • 2017-05-26
  • 2011-03-20
  • 1970-01-01
相关资源
最近更新 更多