crontab 中 python 脚本执行失败的解决方法
2015-04-08 15:55
639 查看
本文转载自:http://www.acwind.net/blog/archives/1304
写服务器程序的免不了要经常和 crontab 打交道,定时执行一些脚本什么的。大部分情况下都是 bash 的一些 shell 脚本,但 shell 我不是很熟悉,于是在很多情况下都直接写 Python 脚本来搞定它。今天写了一个操作 PostgreSQL 数据库的 Python 脚本,放到 crontab 中定时执行的时候,时间到了却没有任何反映。但是如果在命令行下直接执行的话,没有任何问题。
首先看看 crontab 的日志(/var/log/cron),日志中显示脚本定时执行了。那么一定是在 crontab 运行该脚本的时候报错。直接在 Python 脚本中从第一行开始写一个大大的 try 模块,显示一下 Exception 的内容。果然,抓到了…… 错误日志显示显示 Python 找不到 libpq.so.5 这个 PostgreSQL 的库。
原来 crontab 的运行环境和我们用 root 登录进去的环境都是不同的,需要在运行 Python 脚本前重新设定一下运行的环境变量如 LD_LIBRARY_PATH。这下比较好办了,直接写一个 shell 脚本,设置一下环境变量,再调用 Python 吧。 libpq.so.5 这个库我是装在 /usr/local/pgsql/lib 中。最后的脚本如下:
写服务器程序的免不了要经常和 crontab 打交道,定时执行一些脚本什么的。大部分情况下都是 bash 的一些 shell 脚本,但 shell 我不是很熟悉,于是在很多情况下都直接写 Python 脚本来搞定它。今天写了一个操作 PostgreSQL 数据库的 Python 脚本,放到 crontab 中定时执行的时候,时间到了却没有任何反映。但是如果在命令行下直接执行的话,没有任何问题。
首先看看 crontab 的日志(/var/log/cron),日志中显示脚本定时执行了。那么一定是在 crontab 运行该脚本的时候报错。直接在 Python 脚本中从第一行开始写一个大大的 try 模块,显示一下 Exception 的内容。果然,抓到了…… 错误日志显示显示 Python 找不到 libpq.so.5 这个 PostgreSQL 的库。
原来 crontab 的运行环境和我们用 root 登录进去的环境都是不同的,需要在运行 Python 脚本前重新设定一下运行的环境变量如 LD_LIBRARY_PATH。这下比较好办了,直接写一个 shell 脚本,设置一下环境变量,再调用 Python 吧。 libpq.so.5 这个库我是装在 /usr/local/pgsql/lib 中。最后的脚本如下:
相关文章推荐
- crontab 中 python 脚本执行失败的解决方法
- shell脚本直接执行没有问题,crontab定时执行失败的解决方法
- shell脚本直接执行没有问题,crontab定时执行失败的解决方法
- MySQL使用mysqldump备份数据库脚本手工执行成功 crontab定时却失败的解决方法
- Cent OS 6.5 crontab 不执行 python脚本的解决方法
- shell脚本直接执行没有问题,crontab定时执行失败的解决方法
- shell脚本直接执行没有问题,crontab定时执行失败的解决方法
- linux crontab 无法执行shell脚本解决方法
- shell脚本手动执行成功,定时任务调用失败的解决方法。
- crontab 执行python脚本不成功解决办法
- 解决手动运行脚本执行正常而放入crontab后不正常的方法
- python自动补全以及自带脚本运行失败解决方法
- Linux下,将python安装在个人目录下,配置环境变量,以及解决crontab执行python脚本会出错的问题
- QC执行本地和远程执行QTP脚本必须条件准备(远程执行服务器端QTP崩溃的解决方法)
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法 .
- crontab不支持相对路径脚本的解决方法
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法
- 暴风影音-脚本初始化失败解决方法
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法