Logging cron输出到一个文件中
设置: 在我的gcp vm实例中,我有以下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;
*/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作业的错误日志的用户:
- 可以通过'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