Укажите системный блок для cronjob

Когда я запускаю cronjob, приятно следить за его журналами. Если я хочу просмотреть все журналы cron с journalctl , я могу выбрать модуль cron ( journalctl -u cron ). Но когда у меня несколько cronjobs, фильтрация только для модуля cron не очень полезна.

Есть ли какой-нибудь способ отфильтровать для определенного cronjob в journalctl , или даже указать определенный модуль, к которому он должен принадлежать?

Так как это просто сообщения от 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 мало что journalctl сделать для вас.


Если вы используете системный таймер, то соответствующий модуль, конечно же, можно использовать в качестве фильтра для journalctl (наряду со всеми другими преимуществами системных таймеров: проверять следующее время выполнения, немедленно запускать задание, правильно останавливать длительный cronjob и т. Д. .).