2010-09-23 27 views
2

當我嘗試在未來的時間使用cron執行我的python腳本時,我發現有一個命令at,AFAIK,cron用於定期執行,但我的場景只在指定的時間內執行一次。 和我的問題是如何Python腳本的命令添加到, 也它有一些Python包控制在命令如何使用命令設置python腳本在指定時間執行

我開發的操作系統是Ubuntu的10.04清醒,我的產品服務器是Ubuntu的服務器10.04清晰版本。 其實,我想通過Python腳本在命令,該命令文件的變化可以在命令效果添加或刪除新的就業機會

+0

如果您編輯Q以添加完全跳過的關鍵信息(例如,您正在運行哪個**系統**!),我們將很樂意提供幫助。 (不,沒有我聽說過的Python包)。 – 2010-09-23 01:58:38

回答

-1

只是做

python FILE | at TIME > app.log 

取代: 文件 - 你的.py文件(包括shebang)

TIME - 您的時間

+0

我做你給的,它迴應我一個警告,到底是什麼? python /home/mlzboy/my/ide/test/c.py |現在+2分鐘> /home/mlzboy/haha.txt 警告:命令將使用/ bin/sh執行 作業6於Thu Sep 23 10:27:00 2010 – mlzboy 2010-09-23 02:27:07

+0

@mizboy你有沒有shebang,看來對我來說,終端認爲你正在運行的是一個批處理腳本,無論是它或它指的是作爲批處理腳本運行該命令(在這種情況下它是bash,所以很好) – Zimm3r 2010-09-23 02:39:22

+0

我已經添加1#!/ usr/bin/env python 2#encoding = utf-8在我的py腳本頂部 – mlzboy 2010-09-23 03:35:58

2

man at,這將解釋如何使用它添加Python腳本任務。每個系統的使用情況略有不同,所以沒有必要準確地告訴你。

4

這個工作對我的Linux機器:

echo python myscript | at 10:15 

編輯:愚蠢的報價...

2

由於該男子頁說,(相對於的cron例如)不尊重家當(在#!/usr/bin/env python線)。它始終使用/bin/sh來運行該文件。

所以爲了運行你可以選擇使用

echo python myscript.py | at 10:15 

的建議通過@bstpierre或創建一個額外的文件Python腳本

myscript.sh:

python myscript.py 

和那麼

at -f myscript.sh at 10:15 

Shebangs不需要這種方式(但也不會傷害)。

+0

我可以想到的這種奇怪行爲的一個合乎邏輯的解釋是'-f'標誌稍後出現,並且爲了保持向後兼容性,他們決定忽略shebang(否則在*處使用從stdin和從stdin讀取的相同命令啓動* '-f'指定的文件會給出不同的結果) – axil 2015-08-06 09:46:29

相關問題