现象:
在crontab表中加了一些定时工作的命令,按手册的说法,命令的标准输出和标准错误会mail 到相应的用户,比如root用户,但现在却不mail,并且也没做重定向。也就是说/var/spool/mail目录下是空的,不知哪儿出了问题?直接手工测试邮件,也出现问题。所有邮寄的东西都还在邮件队列里,即/var/spool/mqueue目录中,没有转发。
解决思路:
1.crontab中的脚本要用全路径。
2.注意脚本运行时的用户需要的环境变量。比如需要su -c “命令”
3.如果是非root用户,最好将这个用户名添加到crontab.allow中。
4.权限问题,这个也是最复杂的。
以上这个问题就是来自lu的一个案例。是权限问题导致的。解决方法如下:
1.在邮件由邮件队列/var/spool/mqueue转发不到相应的用户时,用newaliases命令
重建别名库aliases.db会提示如下信息:
WARNING: Group writable directory /
WARNING: Group writable directory /spool
WARNING: Group writable directory /var/spool/mqueue
hash map "Alias0": missing map file /etc/mail/aliases.db: Group writable directory
dbm map "Alias0": missing map file /etc/mail/aliases
WARNING: cannot open alias database /etc/mail/aliases
Cannot create database for alias file /etc/mail/aliases: A system call received a parameter that is not valid.
2.但邮件运行正常的机器上运行newaliases命令提示的却是:
WARNING: Group writable directory /var/spool
WARNING: Group writable directory /var/spool/mqueue
/etc/mail/aliases: 4 aliases, longest 9 bytes, 57 bytes total
于是我想是不是该把根目录/ 的组可写权限去掉呢?于是呼我用如下命令:
chmod g-w /
再做newaliases命令,提示的正式我想要的,
连忙去/var/spool/mail看,怎么还是空的?对,运行 sendmail -q -v 命令,让sendmail
立刻转发,再到 /var/spool/mail一看,邮件全来了,OK!
3.原因
有可能是我不小心改了根目录 / 的权限。
阅读(3255) | 评论(0) | 转发(0) |