应该是Crontab真的不能以root身份运行吗?

时间:2014-01-11 15:21:40

标签: bash crontab

我有Ubuntu并且正在用户“alex”下运行。我已经使用crontab以root身份运行以下bash脚本,但是它向我发送了一封电子邮件,看起来它没有正确运行,因为结果不存在:

/ dev / sda - Reallocated_Sector_Ct是

但是,如果我从webmin手动运行crontab作业,它可以正常运行。但是当它计划运行时,那就是它失败的时候。也许它不是真的以root身份运行?

这是我的代码:

#!/bin/bash
SMARTCHECK=`smartctl -a /dev/sda | grep "Reallocated_Sector_Ct" | awk 'NR==1 {print $10}'`
echo "/dev/sda - Reallocated_Sector_Ct is $SMARTCHECK"
if [ "$SMARTCHECK" != "0" ]; then
    mail -s "Failing: /dev/sda" alex <<< "/dev/sda - Reallocated_Sector_Ct is $SMARTCHECK"
fi

谢谢!

2 个答案:

答案 0 :(得分:1)

使用cron运行脚本有两种可能性:

  1. 您使用系统crontab /etc/crontab。在这种情况下,它们以root身份运行。
  2. 您使用用户的crontabs,可以使用crontab -e访问。在这种情况下,它们以用户的权限运行,并将命令添加到他的crontab。

答案 1 :(得分:0)

cronjob脚本中的更多可能问题。

  • 使用完整路径更改脚本中的所有命令,尤其是命令smartctl
  • 检查你的系统是/ bin / bash,而不是/ usr / bin / bash,或者将cronjob设置为:

    0 * * * *〜/ .profile; / usr / bin / bash YOUR_SCRIPT

  • 检查alex帐户中的邮件,如果有任何错误消息可以找到。