我想禁用 FreeBSD 9.1 中的邮件检查。我的登录 shell 是 BASH,因此我尝试添加
unset MAILCHECK
在/root/.bashrc
和中/root/.profile
,但我仍然收到这些消息。
问题
有没有什么办法可以消除这些消息?
答案1
除了 Dennis 的回答之外,FreeBSD 还MAIL
为登录类中的所有用户设置了环境变量default
。这是在 中/etc/login.conf
。
您可以通过多种方式改变这一点:
编辑
/etc/login.conf
并MAIL=/var/mail/$
从setenv
行中删除。然后您需要通过运行来编译登录数据库cap_mkdb /etc/login.conf
。创建仅适用于您或一组用户的新登录类别。使用 为每个用户设置此项
pw usermod <username> -L <class>
。创建用户特定的
~/.login.conf
。此文件应有一个名为 的记录me
。这可以覆盖全局设置的子集。同样,此文件需要使用 进行编译cap_mkdb
。
看login.conf(5)
有关登录功能数据库的更多信息。
答案2
daily_show_success=NO
这些消息可能是定期报告。设置是很常见的,/etc/periodic.conf
这样它就不会生成“一切顺利”的消息。此外,daily_output="$destination"
应该设置为您的电子邮件地址或您可以监控的日志文件。可以为weekly_
和设置相同的值monthly_
- 可能应该设置。
mail
您可以通过启动、d *
删除所有消息和q
退出来删除这些电子邮件。
禁用邮件检查通常是一个错误。如果守护进程配置不正确,无法将邮件传递到本地根目录,那么您可能要知道,它可能有重要信息要说,而如果您禁用邮件检查,您将错过这些消息。
答案3
这应该可以解决 root 登录时出现的消息问题。如果您以其他用户身份登录,则需要将其添加到~/.bashrc
要为其禁用它的每个用户的文件中。或者,您可以将其放在中央启动文件中:/etc/profile
以使其对所有用户生效。
您需要检查是否MAILCHECK
在启动文件序列的稍后位置设置以覆盖您的unset
。
请注意,启动文件的处理方式如下(从Bash 手册)(重点是我的):
作为交互式登录 shell 调用,或者使用 --login
当 Bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件 /etc/profile 读取并执行命令(如果该文件存在)。 读完该文件后,它按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令. 启动 shell 时可以使用 --noprofile 选项来抑制此行为。
当登录 shell 退出时,Bash 将从文件 ~/.bash_logout(如果存在)中读取并执行命令。作为交互式非登录 shell 调用
当启动非登录 shell 的交互式 shell 时,如果 ~/.bashrc 文件存在,Bash 会从该文件读取并执行命令。可以使用 --norc 选项禁止此操作。--rcfile 文件选项将强制 Bash 从文件而不是 ~/.bashrc 读取并执行命令。
因此,通常你的 ~/.bash_profile 包含以下行
如果 [ -f ~/.bashrc ]; 则 . ~/.bashrc; fi
在任何特定于登录的初始化之后(或之前)。
答案4
编辑文件/etc/crontab
并将行更改MAILTO=root
为MAILTO=""
来源:http://michaelprogramming.blogspot.com/2014/01/disable-you-have-new-mail-in.html