2016-06-21 120 views
0

我正在寫一個Python腳本,它調用一個函數,可以從wiki工具Confluence中導出和導入空格。它必須每天運行,但我們不能使用cron,所以我正在尋找一種方式來按照她自己來安排它。自定義的Python腳本

我創建了以下內容。我已經可以在第二天安排它,但不能在第二天再安排。

#!/usr/bin/python 
from __future__ import print_function 
from sys import argv 
from datetime import datetime 
from threading import Timer 
import sys,os,subprocess 
import getpass 
from subprocess import PIPE,Popen 

date = (os.popen("date +\"%d-%m-%y - %T\"")) 
x=datetime.today() 
y=x.replace(day=x.day+1, hour=13, minute=56, second=0, microsecond=0) 
delta_t=y-x 
secs=delta_t.seconds+1 


def runExport(): 
    # HERE IS ALL THE CODE THAT HAS TO RUN EVERYDAY 

t = Timer(secs, runExport) 
t.start() 

請問有人能幫我嗎?腳本必須每天運行,例如上午05:00。

python的版本是2.6.6。遺憾的是,沒有選擇導入模塊..

謝謝!

+2

出於興趣,爲什麼不能使用cron?如果cron不能被信任,爲什麼替換會被信任? –

+0

我認爲問題更多的是在服務器重啓時啓動腳本。什麼是服務器的操作系統? –

+0

這是該公司的一項政策..遺憾的是,我們必須這樣做,如果他們知道它可能會被殺死。 –

回答

0

我會建議使用一些簡單的東西,然後你在那裏做什麼。在Python中一個簡單的調度庫調用排程,這可以在這裏找到:https://docs.python.org/2/library/sched.html

使用本作的一個簡單的例子您實現:

import sched, time 
s = sched.scheduler(time.time, time.sleep) 
delay_seconds = 5 
def print_time(): 
    print time.time() 
    s.enter(delay_seconds,1,print_time,argument=()) 

s.enter(delay_seconds,1,print_time,argument=()) 
s.run() 

該代碼將運行每5秒,並打印出當前時間。只需將delay_seconds更改爲您希望間隔運行的延遲,然後完成。

+0

這對我有用!萬分感謝! –