2010-06-01 142 views
0

我正在寫一個腳本,需要在一天中的任意時間調用,但我不知道如何完成此操作。動態cron作業?

我不想浪費服務器資源來每分鐘運行一次cron作業。

我想要隨機調用腳本,因此生成提前一個月的隨機時間,然後爲它們中的每一個創建cron作業並不是我正在尋找的。

此腳本只需要每天執行一次。

在此先感謝!

回答

2

是否每次運行都使用'at'隨機時間提交進一步運行? 這並不能保證它每天都在運行,但你可以把它作爲一個平均值。

+0

我想說的是它不能完成,但我甚至沒有考慮修改crontab本身!太好了! – Matchu 2010-06-01 12:00:46

+0

這是行不通的,因爲初始cron工作仍然需要經常運行。 – 2010-06-01 12:01:29

+0

...或者有一個每天運行的cron作業來隨機生成'at'作業。雖然在隨機時間跑步的原因仍然是一個謎。 – symcbean 2010-06-01 12:01:36

0

如果您有權訪問它,請在目標腳本運行並隨機添加時修改crontab文件。

2

這將添加一個cron作業:

echo "* * * * * /path/to/script" | crontab 

你需要生成一個適當的時間,而不是* * * * *(否則將會運行每分鐘)。

echo "* * * * * /path/to/script" | crontab -r 

將刪除該作業。所以,現在您需要從PHP腳本中調用這些腳本,我不記得它是如何在PHP中完成的。

編輯

http://php.net/manual/en/function.system.php

更多修改

每次腳本執行,這是最後兩個操作可能會被刪除當前cron作業,併產生另一個第二天。

更EDIT

http://codepad.org/Z1B2v4lF - 這裏是我會怎麼做它在Python。這可能每天運行一次以上。如果每天僅運行一次是必須的,您也可以添加日期值。