计划日志整不好,确实很烦人啊,本来是要做一个lodgb服务日志,当时想到不费劲的一个小脚本,还不是分分钟的事,随手便写,写完后,手动执行下,OK,没有问题了,加载到crontab里,过天后发日志没有解析,赶快查看log (/var/spool/mail/root),
错误信息:
Traceback (most recent call last):
File "/opt/logdb/main.py", line 5, in ?
import logdatabaseconfig
File "/opt/logdb/logdatabaseconfig.py", line 4, in ?
import MySQLdb
ImportError: No module named MySQLdb
痛苦历程:
1.脚本手动运行了下,还是可以的,在python里加载了下MySQLdb (import MySQLdb),也是可以正常加载上去的
2.想到是不是crontab的环境变量上出了问题,与是到网上查找,果不其然,有个大神在08年的时候曾经写过一遍,网上全是转载,然后在/etc/crontab里添加上LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql结果不成,又在脚本的开头添加export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql还是不成,接着报错,又改了/.bash_profile ,结果仍然不成....
3.想到会不会是MySQL-python1.2.3没有装好?
解压---修改setup_posix.py添加了msyql-config的安装位置(mysql_config.path = "/usr/local/mysql/bin/mysql_config")---python setup.py build---python setup.py install,全部完成后,抱着希望再试,仍然失败.
4.再回来查找那位大神的文章,问题与我现在的需求是一样的,确认python调用MySQLdb是正常的,但是通过crontab调用就是一个错,思想已经乱了,掉坑里了...
5.后来经被大神点醒,用crontab调shell脚本出错,不如直接写个python脚本来直接调 用,好了,又来精神了........
解决方法:
1.直接写成"python ,/usr/local/Python-2.4.2/python main.py -d",测试成功
2.脚本测试成功.
#!/bin/bash
cd /opt/logdb
/usr/local/Python-2.4.2/python main.py -d
3.加载到crontab,成功.
05 01 * * * /shell/start.py
总结:
有时思想太死,慢慢就掉坑里了,一种方法不成的,及时换个思路,条条大路通crontab....,
感谢,林总,老金,明明等等....
转载于:https://blog.51cto.com/jorry1681/1206028