You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04中如何阻止日志信息输出到控制台?

Ubuntu 22.04中如何阻止日志信息输出到控制台?

看起来你在Ubuntu 22.04更新升级后,遇到了各类系统日志(比如sudo、anacron、cron的运行日志)直接蹦到终端的糟心事,连logger命令都能直接把内容打在屏幕上,这种情况确实挺影响日常操作的。结合你描述的现象,大概率是系统日志服务(rsyslog或者systemd-journald)的配置出了问题,把终端当成了日志输出的目标。下面给你一步步排查和解决的方法:

第一步:检查并调整rsyslog配置

Ubuntu默认用rsyslog处理日志,先从这里入手:

  1. 先备份配置文件,防止改坏了没法恢复:
    sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
    sudo cp /etc/rsyslog.d/50-default.conf /etc/rsyslog.d/50-default.conf.bak
    
  2. 编辑主配置文件:
    sudo nano /etc/rsyslog.conf
    
    查找有没有类似下面的行:
    auth,authpriv.*                 /dev/console
    
    这行是把认证类日志输出到控制台,如果存在,在开头加#注释掉它,或者把/dev/console改成指定的日志文件(比如/var/log/auth.log)。
  3. 接着编辑默认规则文件:
    sudo nano /etc/rsyslog.d/50-default.conf
    
    同样检查有没有把user、authpriv等类别的日志定向到/dev/console或者当前终端的配置,如有就注释掉。
  4. 重启rsyslog服务让配置生效:
    sudo systemctl restart rsyslog
    

第二步:检查systemd-journald的配置

如果调整rsyslog后问题还存在,就看看systemd的日志服务:

  1. 编辑journald的配置文件:
    sudo nano /etc/systemd/journald.conf
    
  2. 找到ForwardToConsole选项,把它的值从yes改成no(如果原来被注释了,就去掉前面的#再改):
    ForwardToConsole=no
    
  3. 重启journald服务:
    sudo systemctl restart systemd-journald
    

第三步:验证效果

做完上面的操作后,你可以测试一下:

  • 运行logger 测试日志,看看终端会不会再输出这条内容
  • 执行sudo ls,检查sudo的会话日志是不是不再刷屏了
  • 等一分钟看看cron的任务日志会不会再蹦出来

另外,关于cron提示的No MTA installed,这是因为cron默认会把任务输出发邮件,但你没装邮件服务。如果不想看到这个提示,可以安装postfix(选择“Local only”模式),或者修改crontab里的任务,把输出重定向到/dev/null,比如:

* * * * * echo "Example cron" > /dev/null 2>&1

备注:内容来源于stack exchange,提问作者drjrm3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:20:30