Fra*_*rtì 7 linux cron systemd
cron
crontab
就作业错误向所有者发送电子邮件。
systemd
当它运行计时器时我怎样才能做同样的事情?
注意:我并不是在寻找向特定服务添加电子邮件通知的方法。或多项服务。理想情况下,我不想编程。我只是想知道systemd
当任何计时器或服务失败时如何告诉 root 发送电子邮件。我不敢相信systemd
没有实现由配置文件中的选项启用的这种基本通知。
然而,在事实上systemd
缺乏这样一个基本功能的可悲情况下,我可以使用一些外部包,它的工作方式与logcheck
系统日志的工作方式类似。
小智 2
是的,systemd 似乎没有实现服务或计时器单元的邮件输出。
不过,我想出了一个简短的解决方案。实际上,我们遇到了与文章中的 certbot 链接相同的问题。因此,假设您想要监控 certbot.service (在其他情况下,只需替换您的服务名称)。该行为与 cron 不完全一样。当手动启动或从计时器启动时服务失败时,将发送邮件。
mkdir -p /etc/systemd/system/certbot.service.d
cat > /etc/systemd/system/certbot.service.d/mailto.conf <<'EOF'
[Service]
Environment=MAILTO=yourname@test.com
EOF
Run Code Online (Sandbox Code Playgroud)
cat > /etc/systemd/system/certbot.service.d/mailout.conf <<'EOF'
[Service]
# Mail on service error, ignore exitcode for execstoppost
ExecStopPost=-/bin/bash -c 'if [ "$EXIT_STATUS" != "0" ]; then mail -s "ERROR executing certbot" "$MAILTO" <<<"SYSTEMD status \n Service_result: $SERVICE_RESULT \n Exit_code(systemd): $EXIT_CODE \n Exit_status(proc exit code): $EXIT_STATUS\n`journalctl --no-pager -n 20 -u certbot`"; fi'
EOF
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
这是另一个典型的 systemd 不尊重 Linux 传统的例子。我认为应该有一种方法可以回退到旧 cron 的行为。另一方面,cron 的态度对于某些人来说可能不是最合理的。如果 systemd 为管理员提供配置选项以选择邮件输出,那就更好了。
归档时间: |
|
查看次数: |
1031 次 |
最近记录: |