2013-06-20 125 views
1

我试图加我的Python脚本到的cron所以它每分钟执行一次的crontab不执行我的Python脚本

这是我的Python代码:

#!/usr/bin/env python 
import urllib2 
from urllib2 import urlopen 
import zipfile 
import os.path 
from time import sleep 
import csv 
import re 
import urllib 
import os 

class Tor_class: 
    def __init__(self, s ,ip_tor_file,name): 
      url = ip_tor_file 

      request = urllib2.Request(url, headers={"Accept" : "text/html"}) 
      webFile = urllib2.urlopen(request) 

      localFile = open(url.split('/')[-1], 'w') 
      localFile.write(webFile.read()) 
      webFile.close() 
      localFile.close() 
      self.name_ = name 
      self.counter = 0 


def updateDB(): 

    ip_Tor = Tor_class('\n','''http://torstatus.blutmagie.de/ip_list_exit.php/Tor_ip_list_EXIT.csv''',"Tor") 
    os.rename('Tor_ip_list_EXIT.csv','Tor_ip_list_EXIT.txt') 


if __name__ == "__main__": 
    updateDB() 

,当我把这个脚本cron通过使用crontab -e

*  *  *  *  *  /tmp/download.py 

它什么都不做。

这是所有工作得很好,当我做在那样的表彰行:

$ /tmp/download.py 

有没有人有一个线索,为什么它不工作?

+3

你的文件名使用相对路径;你是否确定*它没有工作?这些文件被写入任何目录cron设置为当前工作目录。 –

+0

@MartijnPieters是的,这是重要的知道。 (尽管他没有像所示的那样使用文件系统操作)..我认为由cron执行的脚本的工作目录将是'/' – hek2mgl

+0

因此,当cron运行脚本时,我应该在哪里看到文件? – RoiHatam

回答

0

首先,您在if __name__ ==...的行中有一个奇数的缩进 - 你应该在脚本中检查它。然后,确保您的脚本运行的是当前目录,AFAIK它是您的$ HOME - 这是文件出现的位置。