手动执行shell和crontab执行结果不同,请帮忙!
手动执行shell和crontab执行结果不同,请帮忙!shell如下:
#!/bin/bash
lan_eth=`netstat -in |awk '{print $1'}|grep -Ev 'lo|Iface|Kernel|bond'`
for i in $lan_eth
do
lan_status=`ethtool $i |grep Link |awk '{ print $3 }'`
if [ x$lan_status != xyes ] ; then
/usr/sbin/ethtool $i
echo -e "检查结果: $i 网卡状态不正常!"
else
/usr/sbin/ethtool $i
echo -e "检查结果: $i 网卡状态正常! "
fi
done 哪里不同
手动执行结果为:网卡状态正常!crontab执行结果为:网卡状态不正常
手动执行结果为:网卡状态正常!crontab执行结果为:网卡状态不正常 手动执行和crontab结果不相同大部分都是环境变量的问题 原帖由 hnchxy 于 2008-9-17 19:39 发表 http://linux.chinaunix.net/bbs/images/common/back.gif手动执行结果为:网卡状态正常!crontab执行结果为:网卡状态不正常
在你的shell脚本开始加上
##################
. /etc/profile
. ~/.bash_profile
##################
一般人我可不告诉他:mrgreen: :mrgreen:
#!/bin/bash
##################
. /etc/profile
. ~/.bash_profile
##################
lan_eth=`netstat -ni |awk '{print $1'}|grep -Ev 'lo|Iface|Kernel|bond'`
for i in $lan_eth
do
lan_status=`ethtool $i |grep Link |awk '{ print $3 }'`
if [ x$lan_status != xyes ] ; then
/usr/sbin/ethtool $i
echo -e "检查结果: $i 网卡状态不正常!"
else
/usr/sbin/ethtool $i
echo -e "检查结果: $i 网卡状态正常! "
fi
done
谢谢!可以了。
:lol: 谢谢!可以了。 ##################. /etc/profile
. ~/.bash_profile
##################
加上这个的意思是,先定义好环境变量? 原帖由 lzs45 于 2008-9-17 20:51 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
在你的shell脚本开始加上
##################
. /etc/profile
. ~/.bash_profile
##################
实际上,这不是个好主意,例如说你修改了自己的一些配置信息,却影响了原来正确执行的 crontab 任务。还是在 crontab 配置文件中显式的设置它需要的环境变量吧。 原帖由 vermouth 于 2008-9-17 22:17 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
##################
. /etc/profile
. ~/.bash_profile
##################
加上这个的意思是,先定义好环境变量?
加载当前用户的环境设置。 原帖由 MMMIX 于 2008-9-17 22:30 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
实际上,这不是个好主意,例如说你修改了自己的一些配置信息,却影响了原来正确执行的 crontab 任务。还是在 crontab 配置文件中显式的设置它需要的环境变量吧。
呵呵,谢谢大师,这个确实不是个好主意,不过对于刚开始学crontab的人是一个解决问题的方法,等通过这个方法找到问题所在并理解加这个的真正原因后再怎么改crontab就看个人发挥了
页:
[1]
2