Ubuntu 18.04.6 LTS环境下消除bash命令执行时重复出现的/var/mail/root提示的方法
Ubuntu 18.04.6 LTS环境下消除bash命令执行时重复出现的/var/mail/root提示的方法
我之前也碰到过一模一样的问题,其实这个提示并不是来自mailutils,而是bash本身的内置行为——它会定期检查当前用户的邮件文件,哪怕你已经卸载了邮件客户端也会触发。另外,/var/mail/root自动重建是因为系统里还有其他服务在给root用户生成邮件,比如cron任务的输出。咱们一步步来解决:
步骤1:先搞清楚邮件里的内容(可选但推荐)
虽然mail命令没了,但你可以直接查看邮件文件的内容,看看是什么在生成邮件:
sudo cat /var/mail/root
通常这里面会是cron任务的报错信息、系统服务的日志输出,找到源头的话能从根本上解决邮件生成的问题。
步骤2:临时/永久关闭bash的邮件提示
如果只是不想看到这个提示,不管邮件有没有,咱们可以让bash停止检查邮件:
- 临时生效:在当前终端执行下面的命令,立刻就不会再弹出提示了,但是重启终端后会恢复:
unset MAILCHECK - 永久生效:编辑你的bash配置文件,让每次登录都自动关闭检查:
- 打开用户级配置文件:
nano ~/.bashrc - 在文件末尾添加一行:
unset MAILCHECK - 保存退出后,执行下面的命令让配置生效:
source ~/.bashrc
/etc/bash.bashrc文件,操作步骤一样。 - 打开用户级配置文件:
步骤3:彻底阻止/var/mail/root文件生成(从源头解决)
如果想彻底解决文件自动重建的问题,得找到生成邮件的服务:
- 检查并修复cron任务:
root用户的cron任务默认会把执行输出作为邮件发送,你可以列出当前的cron任务:
对每个没有重定向输出的任务,加上sudo crontab -l>/dev/null 2>&1来屏蔽输出,比如把:
修改成:* * * * * /usr/local/bin/your_script.sh* * * * * /usr/local/bin/your_script.sh >/dev/null 2>&1 - 检查并卸载多余的邮件传输代理(MTA):
卸载mailutils后,可能还有postfix、sendmail这类MTA在运行,它们负责生成邮件文件。你可以检查是否安装了这些服务:
如果有,就彻底卸载:dpkg -l | grep -E "postfix|sendmail"sudo apt remove --purge postfix sendmail
这样操作后,应该就不会再看到那个烦人的提示了~
备注:内容来源于stack exchange,提问作者user4948798
相关产品推荐
相关产品推荐

