2012-05-09 61 views
1

我想從php腳本文件中設置cron作業。我可以使用shell_exec()函數執行php文件。但我不能運行cron作業相關的命令。 $output = shell_exec("crontab -l");此命令不起作用。我的cronjob位於/ usr/bin/crontab下。我將文件准予設置爲777,並以root用戶身份執行此命令。仍然沒有運氣。誰能幫我?如何從PHP腳本調用cron作業?

+0

你設置'在/ usr/bin中/ crontab'爲777的許可?我建議你改回它_immediately!_ – paxdiablo

回答

0

你「crontal -l」命令只是顯示什麼計劃在其個人的crontab您的用戶。它可能會返回一個空字符串,具體取決於您當前的個人crontab。 不要與文件/ etc/crontab混淆,該文件是系統範圍的crontab,適用於所有用戶,只能由root用戶寫入。

如果你需要的是 - 因爲我覺得我的理解 - 從PHP腳本在crontab中添加了一份工作,也許你可能只是想嘗試類似:

$r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab'); 

要安排「my_cmd my_args」 ,例如,每天早上6:30以「用戶」身份運行。 這個PHP腳本應該以root身份啓動,因爲只有他可以在/ etc/crontab中寫入。

小心:我希望你的PHP腳本不從網站開始,而是從一個接入受限環境的命令行,限制安全風險,特別是如果你做一些事情讓它開始以root身份。這種腳本是你係統中的一個非常大的漏洞。請考慮這一點。這是我的建議。

順便說一句,在/ usr/bin中/ crontab中的權限回:

-rwxr-SR-X 1根crontab 35040 12月19日。 2010/usr/bin/crontab (以Debian系統爲例)。