cron输出到文件

时间:2018-12-11 06:56:10

标签: logging cron

设置:

在我的gcp vm实例中,我有以下cron作业:

*/2 * * * * /usr/bin/php /var/www/cron/mycron.php init >> /var/log/myjob 2>&1

mycron.php具有简单的功能

if (!empty($argv[1])) {        
    switch ($argv[1]){
    case 'init':
        cron_test();
        break;
    }
}
function cron_test() {
    $time = date(DATE_RFC822, time());
    write_log("Start:" . $time);   //outputs debug to my own log file   
};

但是,我没有得到任何回应,我需要一种查看错误日志的方式:

我做什么:

因此,在/etc/rsyslog.conf中,我从#中删除了cron.* /var/log/cron.log以获取日志。

cron.log中,我收到以下日志:

(CRON) info (No MTA installed, discarding output)` earlier).

因此,我安装了sudo apt-get install postfix并选择了no configuration

现在我得到以下信息...

mysite CRON[31304]: (mysite) CMD (/usr/bin/php /var/www/cron/mycron.php init >> /var/log/myjob 2>&1)
mysite CRON[31305]: (mysite) MAIL (mailed 64 bytes of output but got status 0x004b from MTA#012)

我要弄清楚的是:

我可以看到cronjob正在运行,但是我想运行的实际功能却没有。 我正在尝试在日志文件中查看错误(或输出),而不是收到有关该错误的电子邮件。

我该怎么做才能在文件而不是电子邮件中获取实际的错误或输出日志?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

对于那些需要查看cron作业的错误日志的人:

  1. 在rsyslog中的cron中删除#

    • 可以通过`sudo nano /etc/rsyslog.conf
    • 访问rsyslog.conf
  2. 安装后缀:sudo apt-get install postfix并选择local only并为所有单击下一步

  3. crontab -e中,选择您要日志转到的文件:

    例如/var/log/user.log,并将文件的权限更改为

      sudo chmod 775 -R /var/log
      sudo chmod 664 /var/log/user.log
    

然后在cron运行时,它将把所有问题输出到文件中。