2012-07-23 80 views
7

我是新來的cron工作。我研究了一些關於cron工作的基礎知識。我可以使用cron選項卡調用php。通過在/ etc/crontab中如何從php腳本設置cron作業?

10 * * * * root /usr/bin/php /var/www/PATH TO SCRIPT/email.php 

在email.php使用以下命令我有以下代碼

#!/usr/bin/php 
<?php 
    mail ("[email protected]", "Cron Successful Public HTML!","Hello World from mycron.php!"); 
?> 

每10分鐘我收到的郵件。 但我需要知道是否有任何方式從PHP調用cron作業(從php調用cron) 我通過沖浪獲得了一些想法,但我無法弄清楚完成工作的確切方式。 這裏是我使用的使用PHP

exec('echo -e "crontab -e \n2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php" '); 

它不是爲我工作,新增工作代碼。任何人都可以請指導我如何打電話或從PHP添加cron。所以我可以通過執行php文件發送郵件&可以改變php文件本身的時間間隔。

回答

8

How can I set cron job through PHP script通過Nick Clark

這將添加在上午9:30每天運行的腳本。

exec('echo -e "`crontab -l`\n30 9 * * * /path/to/script" | crontab -'); 

如果您從Web服務器運行此腳本,您可能會遇到權限問題。爲了解決這個問題,我會建議一個不同的方法。

以下是一種可能的解決方案。創建一個需要運行的腳本列表。您可以將其保存在文本文件或數據庫中。創建一個腳本來閱讀這個列表,並運行它每分鐘或每5分鐘(使用cronjob)。您的腳本需要足夠聰明以決定何時運行腳本列表以及何時退出。

你可以做這樣的..

其他鏈接:

Install a cron job with a php script

How to invoke cron job from php script?

+0

我試過了,我只想知道此後我必須在瀏覽器中運行我的PHP文件?我真的不知道該cron如何執行。可以請解釋一下:( – suganya 2012-07-23 13:08:42

+0

謝謝..這真的是個好主意.. +1 – 2014-11-27 08:28:16

1

你應該能夠將其直接添加

echo "2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php\n" > /etc/cron.d/username 
+0

OP特意問到如何從PHP做到這一點 – 2012-07-23 13:04:11

+0

@MichaelMior把一個'exec()'放在它的周圍......當我看在這個問題上,他似乎理解了這一點。 – KingCrunch 2012-07-23 13:10:27

0

許多環境不允許從Web頁面調用的PHP頁面寫入文本文件。我同意這是一個不應該採取的安全風險。

我有一個網頁保存數據到一個MySQL表通過JQuery調用一個PHP腳本。在Cron中,我安排了另一個php腳本,每隔一段時間檢查MySQL表中的數據並執行所需的任何工作。