2013-06-20 154 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 - 這是文件出現的位置。