将PHP Cron作业输出到日志文件而不是电子邮件
我喜欢通过电子邮件跟踪PHP脚本输出的事实,但是我有一些脚本每15分钟运行一次,所以这显然会导致电子邮件的大量涌入。我希望在包含php输出的日志文件夹中保持事情的有序性 这是我的cron工作:将PHP Cron作业输出到日志文件而不是电子邮件,php,bash,cron,Php,Bash,Cron,我喜欢通过电子邮件跟踪PHP脚本输出的事实,但是我有一些脚本每15分钟运行一次,所以这显然会导致电子邮件的大量涌入。我希望在包含php输出的日志文件夹中保持事情的有序性 这是我的cron工作: */15 * * * * /usr/bin/php public_html/mysite/folder/script.php 我试着换成 */15 * * * * /usr/bin/php public_html/mysite/folder/script.php >> /my
*/15 * * * * /usr/bin/php public_html/mysite/folder/script.php
我试着换成
*/15 * * * * /usr/bin/php public_html/mysite/folder/script.php >> /mysite/logs/folder/$(date +"\%Y-\%m-\%d_\%H:\%M").log 2>&1
但我仍然通过电子邮件收到错误输出,其中包含错误
/usr/local/cpanel/bin/jailshell:/mysite/logs/folder/2017-04-08_10:27.log:没有这样的文件或目录
如何修复此问题,并将PHP输出保存到日志或txt文件中
编辑:
为便于将来参考,执行此操作的正确语法为:
*/15 * * * * public_html/mysite/folder/script.php >> mysite/logs/folder/$(date +"\%Y-\%m-\%d_\%H:\%M").log 2>&1
语法正确,请检查路径。您正在放置
/mysite
,但它真的在根上吗?当您参考您放入的脚本时,public\u html/mysite
确保日志文件的绝对路径是什么,并更新crontab。确保目录
/mysite/logs/folder/
存在。最好的方法是在终端中运行该命令,包括重定向和所有操作,然后再将其放入crontab.Awesome。一个简单的解决方案,让我的头朝各个方向旋转。我只需要从mysite中删除前面的/
,它工作正常。请注意,cron通常在用户的主目录中运行,尽管这可能取决于实现。在您的情况下,我假设mysite
位于用户的主目录中。我通常更喜欢使用绝对路径,以避免任何可能的混淆。检查crontab的工作目录的一个简单方法是在crontab中创建一行,如下所示:***pwd>/tmp/pwd.txt
。您将在不到一分钟的时间内在pwd.txt文件中找到答案。记住从crontab中删除该行!