我可以避免在系统日志中出现 debian-sa1 行吗?

我可以避免在系统日志中出现 debian-sa1 行吗?

我的系统日志充满了以下内容:

Oct 28 23:35:01 myhost CRON[17705]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 28 23:45:01 myhost CRON[18392]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)

还有一些

Oct 28 23:59:01 myhost CRON[19251]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 60 2)

现在,显然,这些来自 cron 作业,位于/etc/cron.d/sysstat

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

我需要如此频繁地运行此操作吗?当我手动运行它时,它似乎没有做太多事情。我可以/应该关闭 cron 作业,或者卸载 sysstat 吗?

答案1

这些命令确实是 sysstat 包的一部分。它用于性能监控;具体来说,sar 是系统活动报告

源自 Unix System V 的系统监视器命令,用于报告各种系统负载,包括 CPU 活动、内存/分页、中断、设备负载、网络和交换空间利用率。 Sar 使用 /proc 文件系统来收集信息

因此,运行此命令实际上不会做任何有助于系统健康或稳定性的事情,它只是收集统计数据。

考虑到这一点,您有三个选择:

  1. sysstat按照@wurtel 建议卸载。您表示您甚至无法看到收集的统计数据,因此显然您并没有真正使用此设施。这意味着您可能一开始就不需要这样的监控。
  2. 将 cron 输出移至单独的文件中/var/log/messages,例如移至/var/log/cron.如果您使用rsyslog日志记录(您可能会认为这是 Devuan 上的默认设置),您需要做的是取消注释中用于此目的的行/etc/rsyslog.conf

    #cron.*                         /var/log/cron.log
    

    只需删除开头的#;并cron从 中删除/var/log/syslog,即替换:

    *.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
    

    有了这个:

    *.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
    <h1>cron,daemon.none;\</h1>
    
        daemon.none;\
        mail,news.none          -/var/log/messages
    
  3. 如果您不关心在没有错误的情况下查看 cron 作业日志记录,@binarym 建议将日志记录限制为错误或警告消息。对于rsyslog,这意味着替换它:
    *.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
    
    有了这个:
    *.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        daemon.none;\
        mail,news.none          -/var/log/messages
    *.=warn;*.=err\
        cron                    -/var/log/messages
    
    在默认情况下/etc/rsyslogd.conf。 (不过,坦率地说,我不明白为什么.=err一开始就不存在。

答案2

cron通常记录到它自己的设施:LOG_CRON

因此,只需配置您的系统日志即可避免记录此功能,除非优先级大于或等于LOG_ERRLOG_WARN

答案3

从 Debian 11 开始,如果您使用系统,您应该能够/etc/cron.d/sysstat在运行后删除 cron 作业文件 ( ):

dpkg-reconfigure sysstat

并选择“是”

这将启用一些 systemd 任务:

  • 系统状态收集
  • sysstat-摘要

这会做同样的事情。

相关内容