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"
}
둘은 서로 관련되어 있지만(예: PID 또는 타임스탬프 참조) 이 관계는 필터를 사용하여 쉽게 표현되지 않습니다.
따라서 별로 도움이 되지 않습니다 journalctl
.
systemd 타이머를 사용하는 경우 해당 단위는 물론 필터로 사용될 수 있습니다 journalctl
(systemd 타이머의 다른 모든 이점(다음 런타임 확인, 작업 즉시 실행, 장기 실행 cronjob 적절하게 중지 등)과 함께). ).