码迷,mamicode.com
首页 > 系统相关 > 详细

crontab 调用shell 脚本不运行

时间:2015-09-09 19:43:43      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:shell脚本不运行

最近用crontab 调用一个shell 脚本,并且shell脚本里面调用一个python脚本

其实就是嫌弃python 写一个判断麻烦,就用shell 写了一个if判断 为真的情况下 运行这个python脚本。


但是部署以后 直接sh test.sh 脚本运行没有问题,但是放到crontab中死活就是不运行 在此记录下原因

原因一:shell脚本中调用了一个命令  ip addr |egrep  这种情况下,ip这个名声是在/sbin下,但是crontab 调用的环境变量目录是 /bin  所以crontab中调用shell脚本的时候 运行失败  

解决方法:查看shell 脚本中调用的命令是否有默认环境变量目录不在/bin的命令,然后在脚本中修改成绝对路径

原因二:shell脚本中语法有错误,这个直接  sh -x 自己调试吧

原因三:python 脚本开头没有注明环境变量。所以在shell脚本中运行失败 

解决方法:在py脚本中添加

#!/usr/bin/env python



另外在部署这个脚本的时候,开发脚本的同事写注释用的中文,但是奇葩的是,他竟然没有吧中文编码在脚本中标明。导致运行脚本的时候报错。同样数据库也接受不到数据。所以亲们:如果你的python脚本中如果有中文或者中文注释的话 请一定要记得添加

# -*- coding:utf-8 -*-

标明这个编码方式


crontab 调用shell 脚本不运行

标签:shell脚本不运行

原文地址:http://zhqaihnn.blog.51cto.com/5257485/1693161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!