关于linux下crontab下脚本执行时,获取的值不正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于linux下crontab下脚本执行时,获取的值不正确相关的知识,希望对你有一定的参考价值。

本次是因为需要创建定时任务,判断SNMP服务的状态。

通过以下代码进行判断

tmp=`/etc/init.d/snmpd status`
snmpd_status=`echo $tmp | grep -Eo "running" `
if [ $snmpd_status = "running" ] 
then
    snmpd_status="running"
else
    snmpd_status="stop"
fi
echo $snmpd_status

注:系统为red hat 5.7和6.5

现在snmpd服务是正常运行中的。

我通过手动执行该脚本,得到的结果是running

但是只要放到crontab,执行出来的就是stop

很是奇怪

后来,我在脚本里把每一个变量都打印出来看,发现crontab运行的言语环境为中文。

但是我export出来的明显是英文环境

一开始我没有想到这个,因为我手动执行和crontab使用的都是root账号


之后,我通过在脚本前面加入export LENG="en_US",将脚本的执行环言语定为英文后,执行的结果正常了。


对于环境变量中的言语变量,不知道为什么会出现在这样的情况,有时间去研究下。如果有哪位大神知道的,请指点一二

本文出自 “MI-什么都可以有” 博客,请务必保留此出处http://michankong.blog.51cto.com/1464983/1894695

以上是关于关于linux下crontab下脚本执行时,获取的值不正确的主要内容,如果未能解决你的问题,请参考以下文章

Linux下脚本执行命令sh

windows下编写的bash脚本拖入linux环境下脚本出错之编码问题

linux下脚本实现从一个文件中读数,有文件多行 (每行都是:名称 + 多个空格 + 数据 ),

jenkins下脚本权限问题

Linux下脚本实战之系统监控

关于linux系统下CRONTAB运行python脚本不生效