cronjobを実行するときにログを追跡できることをお勧めします。 cronのすべてのログを表示するには、単位()をjournalctl
選択します。ただし、複数のcronジョブがある場合は、cron単位のみをフィルタリングすることはあまり役に立ちません。cron
journalctl -u cron
journalctl
で特定のcronjobをフィルタリングしたり、それが属する必要がある特定の単位を指定する方法はありますか?
答え1
これはcronからのメッセージなので、メタデータはすべてcronに関連付けられています。以下は、cronjobのメッセージのいくつかの例です--output=json
。
{
"__CURSOR": "s=74429436aba942b6bbfc70cf45bfecc6;i=188d;b=108f80cdd87342bcb9dcafca15c45b57;m=6c13fcb19;t=5697ae32bb8a9;x=d292b55b7b7a140d",
"__REALTIME_TIMESTAMP": "1523351401773225",
"__MONOTONIC_TIMESTAMP": "29011987225",
"_BOOT_ID": "108f80cdd87342bcb9dcafca15c45b57",
"PRIORITY": "6",
"_UID": "0",
"_GID": "0",
"_CAP_EFFECTIVE": "3fffffffff",
"_MACHINE_ID": "5a75b95396344578a23193fb7b823946",
"_HOSTNAME": "muru-1604",
"_SYSTEMD_SLICE": "system.slice",
"_TRANSPORT": "syslog",
"SYSLOG_FACILITY": "10",
"SYSLOG_IDENTIFIER": "CRON",
"MESSAGE": "pam_unix(cron:session): session opened for user root by (uid=0)",
"_COMM": "cron",
"_EXE": "/usr/sbin/cron",
"_CMDLINE": "/usr/sbin/CRON -f",
"_AUDIT_LOGINUID": "0",
"_SYSTEMD_CGROUP": "/system.slice/cron.service",
"_SYSTEMD_UNIT": "cron.service",
"SYSLOG_PID": "22158",
"_PID": "22158",
"_AUDIT_SESSION": "110",
"_SOURCE_REALTIME_TIMESTAMP": "1523351401772733"
}
{
"__CURSOR": "s=74429436aba942b6bbfc70cf45bfecc6;i=188e;b=108f80cdd87342bcb9dcafca15c45b57;m=6c13fcba9;t=5697ae32bb939;x=33e51a528b0cef96",
"__REALTIME_TIMESTAMP": "1523351401773369",
"__MONOTONIC_TIMESTAMP": "29011987369",
"_BOOT_ID": "108f80cdd87342bcb9dcafca15c45b57",
"PRIORITY": "6",
"_UID": "0",
"_GID": "0",
"_CAP_EFFECTIVE": "3fffffffff",
"_MACHINE_ID": "5a75b95396344578a23193fb7b823946",
"_HOSTNAME": "muru-1604",
"_SYSTEMD_SLICE": "system.slice",
"_TRANSPORT": "syslog",
"SYSLOG_IDENTIFIER": "CRON",
"_COMM": "cron",
"_EXE": "/usr/sbin/cron",
"_CMDLINE": "/usr/sbin/CRON -f",
"_AUDIT_LOGINUID": "0",
"_SYSTEMD_CGROUP": "/system.slice/cron.service",
"_SYSTEMD_UNIT": "cron.service",
"SYSLOG_FACILITY": "9",
"MESSAGE": "(root) CMD ([ -x /usr/sbin/dma ] && /usr/sbin/dma -q1)",
"_AUDIT_SESSION": "110",
"SYSLOG_PID": "22159",
"_PID": "22159",
"_SOURCE_REALTIME_TIMESTAMP": "1523351401773201"
}
2つは互いに関連していますが(たとえば、PIDやタイムスタンプを参照)、この関係はフィルタを使用して簡単には表現されません。
したがって、あまり役に立ちませんjournalctl
。
systemdタイマーを使用している場合は、その単位はもちろんフィルタとして使用できますjournalctl
(systemdタイマーの他のすべての利点(次のランタイムチェック、ジョブの即時実行、長期実行のcronjobの適切な停止など))。 )。