我想在每天16:00更新數據庫中的某些內容。無法從crontab執行命令?
因此,我使用crontab執行命令運行我的file.php運行更新。當我在bash中執行命令時,它完美地工作,但是crontab存在問題。
的crontab:
00 16 * * * ./etc/cron.daily/maj_cat
maj_cat
php var/www/dev/update.php
謝謝!
我想在每天16:00更新數據庫中的某些內容。無法從crontab執行命令?
因此,我使用crontab執行命令運行我的file.php運行更新。當我在bash中執行命令時,它完美地工作,但是crontab存在問題。
的crontab:
00 16 * * * ./etc/cron.daily/maj_cat
maj_cat
php var/www/dev/update.php
謝謝!
./etc/cron.daily/maj_cat是相對路徑和var/WWW的/ dev/update.php也嘗試:
00 16 * * * /etc/cron.daily/maj_cat
和maj_cat:
php /var/www/dev/update.php
要你可以這樣做:
00 16 * * * /usr/bin/env php /var/www/dev/update.php
是的!它運行該腳本,但它更新了100篇文章的數據庫中的兩篇文章...也許我需要聲明運行時間? – user420574 2011-06-15 16:56:54
是的,你可以在CLI中的文件或php.ini中設置:/ etc/php5/cli/php。ini(取決於Linux發行版或bsd等),指令是:max_execution_time,例如:max_execution_time = 3600 //一小時 – Exos 2011-06-15 17:25:26
你將要使用的完整路徑,PHP,
在類型: whereis PHP
通常PHP位於位於/ usr /斌/ PHP
導致: 在/ usr/bin/php /var/www/dev/update.php
我發現測試crontab是通過輸出到一個文件來執行的,所以你知道cron實際上正在被執行,如:
在/ usr/bin中/ PHP /var/www/dev/update.php> output.txt的
你可能會好起來把一個正斜槓也正如我上面顯示之前的「變種」。
可能crondeaemon不使用當你手動完成時設置的PATH變量。 確保php在路徑中(在你的crontab的頭部)。
否則,您可以嘗試在腳本中使用絕對路徑。
Cron在運行cronjob時會使用默認配置文件,它可能與您登錄時使用的PATH變量不同。您可以在cronjob的開頭加載自己的配置文件,以確保cronjob的環境匹配您登錄的環境。
您可以用這種方式加載配置文件:
00 16 * * * ~/.profile; ./etc/cron.daily/maj_cat
你可能缺少'無功/網絡加前綴斜線...' – 2011-06-15 16:42:43
什麼是root用戶的主目錄? (或者也許你應該在路徑名中輸入。)。你在maj_cat上設置了執行位嗎?現在最好使用'#!/ bin/sh'這一行。 – LHMathies 2011-06-15 16:43:39