2014-01-11 25 views
0

我有Ubuntu并且正在用户“alex”下运行。我有运行与crontab中却根发送我的电子邮件,它看起来像它没有作为结果正确运行下面的bash脚本不存在:Crontab没有真正以root身份运行时它应该是什么?

/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 

谢谢!

+1

你是如何设置它从根启动的?它在root的crontab中,没有密码的sudo,其他的? – Marat

+2

首先猜测会是'smartctl'不在路径中吗?并尝试在命令行中使用'env -i'运行该命令,然后执行该命令吗? – Wrikken

+0

如果不知道如何设置crontab,这是无法回答的。 –

回答

0

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

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

而'root'用户有自己的用户crontab。请记住,用户crontabs和系统crontabs具有不同的语法;后者指定运行该命令的帐户(不一定是“root”)。 –

0

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

  • 改变脚本中的所有命令的完整路径,特别是命令smartctl
  • 检查你的系统有/斌/庆典,不是在/ usr /斌/ bash的,或设定的cronjob为:

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

  • 查看alex账户中的邮件,如果有任何错误信息可以找到。

相关问题