Crontab + Journalctl:额外的信息
Crontab + Journalctl: extra messages
免责声明:以下描述了在 CentOS 7 中为学习目的所做的事情。
我想将 crontab 作业的输出重定向到 journalctl
。
当我有以下记录时,它只是向root用户发送邮件。
# crontab -l
* * * * * echo "Hello World"
我读过有关 systemd-cat
的内容,它可以执行一个进程,将其输出通过管道传输到日志。
所以我这样做了:
# crontab -l
* * * * * systemd-cat -t "cron-bot" echo "Hello World"
但现在我每分钟收到两条日志消息:
{
"_TRANSPORT" : "syslog",
"SYSLOG_IDENTIFIER" : "CROND",
"MESSAGE" : "(root) CMD (systemd-cat -t \"cron-bot\" echo \"Hello World\")",
"_CMDLINE" : "systemd-cat -t cron-bot echo Hello World",
}
{
"_TRANSPORT" : "stdout",
"SYSLOG_IDENTIFIER" : "cron-bot",
"MESSAGE" : "Hello World",
"_COMM" : "echo",
}
或者,简写:
Sep 06 08:58:01 hostname CROND[13417]: (root) CMD (systemd-cat -t "cron-bot" echo "Hello World")
Sep 06 08:58:01 hostname cron-bot[13417]: Hello World
有人可以向我解释一下这种行为吗?我只想接收作业输出 (cron-bot[13417]: Hello World
)
并且不接收命令本身 (CROND[13417]: ...
),但我主要是问这个以了解有关该主题的更多信息。
cron
将它运行的每个命令记录到系统日志中,并且在您的系统上,系统日志最终也会出现在日志中。据我所知,cron
没有禁用它的选项,但您可以通过仅选择通过 stdout 接收的日志消息来隐藏这些消息:
journalctl -u cron _TRANSPORT=stdout
(-u cron
在 CentOS 上可能是 -u crond
或类似的东西,我不确定。)
免责声明:以下描述了在 CentOS 7 中为学习目的所做的事情。
我想将 crontab 作业的输出重定向到 journalctl
。
当我有以下记录时,它只是向root用户发送邮件。
# crontab -l
* * * * * echo "Hello World"
我读过有关 systemd-cat
的内容,它可以执行一个进程,将其输出通过管道传输到日志。
所以我这样做了:
# crontab -l
* * * * * systemd-cat -t "cron-bot" echo "Hello World"
但现在我每分钟收到两条日志消息:
{
"_TRANSPORT" : "syslog",
"SYSLOG_IDENTIFIER" : "CROND",
"MESSAGE" : "(root) CMD (systemd-cat -t \"cron-bot\" echo \"Hello World\")",
"_CMDLINE" : "systemd-cat -t cron-bot echo Hello World",
}
{
"_TRANSPORT" : "stdout",
"SYSLOG_IDENTIFIER" : "cron-bot",
"MESSAGE" : "Hello World",
"_COMM" : "echo",
}
或者,简写:
Sep 06 08:58:01 hostname CROND[13417]: (root) CMD (systemd-cat -t "cron-bot" echo "Hello World")
Sep 06 08:58:01 hostname cron-bot[13417]: Hello World
有人可以向我解释一下这种行为吗?我只想接收作业输出 (cron-bot[13417]: Hello World
)
并且不接收命令本身 (CROND[13417]: ...
),但我主要是问这个以了解有关该主题的更多信息。
cron
将它运行的每个命令记录到系统日志中,并且在您的系统上,系统日志最终也会出现在日志中。据我所知,cron
没有禁用它的选项,但您可以通过仅选择通过 stdout 接收的日志消息来隐藏这些消息:
journalctl -u cron _TRANSPORT=stdout
(-u cron
在 CentOS 上可能是 -u crond
或类似的东西,我不确定。)