2012-11-06 78 views
0

我的情況是,我有一個php文件在/root/test.php。 我把我的根的crontab這樣crontab與php不起作用

* * * * * /usr/local/bin/php /root/test.php

的test.php的內容就職於生成後綴的數據庫aliase就像下面:

<?php echo shell_exec("postaliases hash:/etc/aliases"); >

我知道, test.php由crontab成功運行。 但shell_exec裏面似乎並沒有工作(我無法找到我的目標在/ etc /下的別名.db文件)。 而我已經測試過使用表彰php -f test.php直接就是工作。

我知道情況有點複雜。但如果有人能解決我的問題,我將非常感謝您的幫助。

+0

test.php的來源在哪裏? – arved

+0

test.php是由root編輯的測試腳本。對於未注意到內容被隱藏在< >之間的情況,請保留。我更新了我的問題。 – inker

+0

您是否知道crontab正在運行的用戶以及/root/test.php上的權限?這將是兩件好事情要檢查。 – quickshiftin

回答

1
  1. 使用郵件的完整路徑。很可能它不在用戶執行腳本的路徑中

  2. 爲什麼使用php腳本來調用shell?只需使用shellScript

+0

這是一個用php編寫的大型系統的一部分的測試代碼。爲了取代整個系統的安裝過程,我寧願使用php腳本。我認爲路徑名沒有問題,但仍然感謝您的回覆。 – inker

+0

我將.php腳本更改爲.sh,並將其內容更改爲「/ usr/local/sbin/postalias hash:/ etc/aliases」 但仍然適用於「sh test.sh」,不適用於crontab。 – inker

+0

你從cron腳本得到一封郵件嗎?你的日誌消息是否在你的系統日誌中? – arved