Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging cron输出到一个文件中_Logging_Cron - Fatal编程技术网

Logging cron输出到一个文件中

Logging cron输出到一个文件中,logging,cron,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;

设置:

在我的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正在运行,但是我想要运行的实际函数没有运行。 我正在试图查看日志文件中的错误(或输出),而不是收到关于它的电子邮件

如何将实际错误或输出日志保存在文件中而不是电子邮件中


任何帮助都将不胜感激

对于需要查看cron作业的错误日志的用户:

  • 删除rsyslog中cron中的#

    • 可以通过'sudo nano/etc/rsyslog.conf'访问
      rsyslog.conf
  • 安装后缀:
    sudo-apt-get-Install-postfix
    并选择
    local-only
    ,然后单击next(下一步)

  • crontab-e
    中,选择希望日志转到的文件:

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

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

  • 然后,当cron运行时,它将向文件输出任何问题。

    您使用的是bash还是shell?它正在运行shell。您可以添加
    #!bin/bash
    添加到crontab文件中,或者在shell中使用
    >&/var/log/myjob