标签: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 -*-
标明这个编码方式
标签:shell脚本不运行
原文地址:http://zhqaihnn.blog.51cto.com/5257485/1693161