【Ecstore2.0】計劃任務/隊列/導入導出 的執行問題

【環境】CENTOS6.3 + wdcp(php5.3)php

【症狀】可正常加入隊列,但不執行隊列
html

【緣由】大部份都是用戶權限形成linux

【原理】web

  Ecstore2.0的導入導出、發送郵件、平常清理備份等任務操做,都經過用入任務隊列,而後採用LINUX的CRON任務調試定時來執行並清空隊列。服務器

【方法】測試

  第一步:測試linux環境的cron是否能被正常執行,從root用戶開始spa

#root身份登錄
crontab -uroot -e

#輸入:每隔一分鐘向test文件寫入當前時間,保存退出
*/1 * * * * date>>~/test

#重啓cron服務
service crond restart

#監視cron日誌
tail -f /var/log/cron

#監視test變化
tail -f ~/test

如不能執行,確認cron服務是否安裝和啓動,具體方法就很少說了,自行GOOGLE吧。

  第二步:確認 www 用戶可正常執行計劃任務調試

#root身份登錄
crontab -uwww -e

#輸入:每隔一分鐘向test文件寫入當前時間,保存退出
*/1 * * * * . /etc/profile;/bin/sh date>>~/test

#重啓cron服務
service crond restart

#監視cron日誌
tail -f /var/log/cron

#監視test變化
tail -f ~/test

 www用戶的文件中,命令前加了「. /etc/profile;/bin/sh」,這是由於www沒有載入環境變量。rest

  第三步:修改www的用戶配置,wdcp/wdlinux中 www用戶的主目錄默認爲/dev/null,我這裏改成/home/www,並賦於www用戶讀寫權限。日誌

#更改用戶主目錄(執行前先確認www用戶的UID,cat /etc/passwd
#須要先中止WEB服務,不然會提示www用戶已登錄(usermod: user www is currently logged in)

usermod
-d /home/www -u 1000 www #啓動web服務器,從新償試第二步

   第四步:修改www用戶的任務配置文件(配置文件以用戶名命名存放在 /var/spool/cron)

crontab -uwww -e

*/1 * * * * . /etc/profile;/bin/sh /www/web/aaa_com/public_html/script/queue/queue.sh>/dev/null
*/1 * * * * /www/web/aaa_com/public_html/script/crontab/crontab.php /www/wdlinux/wdphp/bin/php>/dev/null

#重啓cron服務,service crond restart

   注:當你用 tail -f /var/log/cron 發現任務在重複執行時,使用  ps aux |grep cron* 查看是有多個cron進程,若是有kill掉就能夠了

   基本完工,就這麼多了。在此以前,最好先以root手工執行 /www/web/aaa_com/public_html/script/queue/queue.sh,查看是否成功。

   若是導出任務執行正常,可是下載的文件爲0字節,或發現並未在FTP目錄中建立導出文件,能夠移步【這裏

相關文章
相關標籤/搜索