使用crontab,定时执行一个python脚本,怎么不能用呢?

使用crontab,定时执行一个python脚本,怎么不能用呢?

我是这样写的?
00 08 * * * python /data/install/relay/delete_log.py
/etc/crontab
添加到里面去
在Python文件头部加入
!#/usr/bin/python

把Python(delete_log.py)的属性改为可执行
chmod a+x delete_log.py

就可以
crontab -e
00 08 * * * /data/install/relay/delete_log.py
把python改为python具体的路径试试
一般是环境变量的问题
引用以下

QUOTE:
---------- Forwarded message ----------
From: HuangJiahua <jhuangjia...@gmail.com>
Date: 7月24日, 下午1时45分
Subject: 请教两个linux下cronjob运行的问题
To: python.cn


注意两个:
1. crontab 不会有你设的环境变量
2. crontab 要用绝对路径

请把类似
#!/bin/sh
export  DJANGO_SETTINGS_MODULE=XXX
export  PYTHONPATH=XXX
python  daemon.py
保存为文件,如 /home/p/penght/daemon.sh

加上可执行权限,
crontab 里用类似
* * * * *  /home/p/penght/daemon.sh

* * * * *  /bin/sh daemon.sh

另外,临时用的话,可以 ssh 上去执行类似
nohup sh -c ' while true; do python daemon.py; sleep 1m ; done '

On 7月23日, 下午8时51分, pength <pen...@163.com> wrote:

> 我在国外一个服务器上申请的虚拟主机,操作系统是linux Red Hat 3.4.6.我有一个后台监控程序
daemon.py,通过SSH登录
> 到服务器上,命令行输入 python2.5 daemon.py 的时候,程序可以正常运行并结束。由于监控需要每分钟
进行一次,在crontab
> -e我设置了
> * * * * * python2.5 daemon.py
> 程序却死活不运行。网站管理员说我的daemon.py代码有问题,但我不明白的是,为什么命令行可以正常运
行,加在 cronjob里面就不行了?

> 另外,我的daemon.py实际上是一个独立运行的Django程序。我在.profile里面加入了 export
> DJANGO_SETTINGS_MODULE 和 export PYTHONPATH后,命令行运行daemon.py就没有问题了。我调试
> cronjob的时候,发现把 python2.5命令的绝对路径输全以后,如下:
> * * * * * /usr/local/bin/python2.5 daemon.py
> 是可以运行了,但有错误信息:can't import module xxxx,就是我定义的Django model都没法import,跟
没有
> export DJANGO_SETTINGS_MODULE 和 PYTHONPATH的时候一样。

> 大家能帮我分析下问题可能到底出在哪里吗?谢谢!!



QUOTE:
00 08 * * * python /data/install/relay/delete_log.py

crontab 格式错了。
* * * * * username  cmd

你这个至少是:

假定由 root 执行:

00 08 * * * root python /data/install/relay/delete_log.py


QUOTE:
原帖由 likuku 于 2007-8-19 00:02 发表


crontab 格式错了。
* * * * * username  cmd

你这个至少是:

假定由 root 执行:

00 08 * * * root python /data/install/relay/delete_log.py

这个和用户没有关系吧!
如果是root,则进入root帐号,这样
sudo crontab -e
否则就是当前登录帐号
crontab里面不应该出现帐号信息。。
90%的crontab问题都是环境变量设置问提!

crontab运行命令时的环境变量跟你平时登陆时的环境变量是不一样的!如果出错了请检查相关的log信息看到底是那里出了问题。