• ecstor的crontab配置 定时任务


    在配置ecstore的crontab,前前后后折腾了将近两天,度娘了无数次,从等待执行到正在导出,一直没有成功过,其他有修改权限,更换账号,都没有成功,最后去看了处理导出的文档,才知道问题出在源码上面,真的是太迷信源码无错误了,下面把我个人的一些配置流程整理下:

    1、配置linux的ftp,不会的请点击这里跳转。

    2、配置好ftp后,测试linux环境的cron是否能被正常执行,从root用户开始

    #root身份登陆
    crontab -uroot -e
    
    #输入:每隔一分钟向test文件写入当前时间,保存退出
    */1 * * * * date>>~/test
    
    #重启cron服务
    service crond restart
    
    #监视cron日志
    tail -f /var/log/cron
    
    #监视test变化
    tail -f ~/test

    如不能执行,确认cron服务是否安装和启动,具体方法就不多说了,自行找度娘吧。

    3、确认 www 或者apache 用户可正常执行计划任务(自己新建一个账户用来操作也行,如果是新建账户,记得修改apache的配置文件,将李某的User和Group换成新建的账户和组,一般新建账户的时候组和账户是一样的名称,不会操作的可以点击这里

    #root身份登陆
    crontab -uwww -e
    
    #输入:每隔一分钟向test文件写入当前时间,保存退出
    */1 * * * *  date>>~/test
    
    #重启cron服务
    service crond restart
    
    #监视cron日志
    tail -f /var/log/cron
    
    #监视test变化
    tail -f  /home/www/test

    注意:/home/www是新增用户设置的目录,如果www用户没有载入环境变量,命令前要加“. /etc/profile;/bin/sh”,即:. /etc/profile;/bin/sh date>>~/test。

    4、修改www的用户配置, www用户的主目录默认为/dev/null,我这里改为/home/www,并赋于www用户读写权限。

    赋于www用户读写权限

    赋予root权限
    方法:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    www   ALL=(ALL)     NOPASSWD:ALL
    修改完毕,现在可以用www帐号登录,然后用命令 su - ,即可获得root权限进行操作。

    #更改用户主目录(执行前先确认www用户的UID,cat /etc/passwd) #需要先停止WEB服务,否则会提示www用户已登陆(usermod: user www is currently logged in) usermod -d /home/www -u 1000 www #启动web服务器,重新偿试第3步

    5、修改www用户的任务配置文件(配置文件以用户名命名存放在 /var/spool/cron)

    root权限下执行以下命令:crontab -u www -e
    
    * * * * * /data/html/ecstore/script/queue/queue.sh /usr/bin/php >/dev/null
    * * * * * /usr/bin/php data/html/ecstore/script/crontab/crontab.php >/dev/null
    
    #重启cron服务,service crond restart
    注:"www" 为web用户。
    
        "/data/html/ecstore" 为ecstore的安装路径。
    
        队列需要"proc_open"方法支持,如果队列全部阻塞,请检查服务器是否支持该方法。
    
        "crontab.php"是php文件,写法是符合linux bash脚本语法的,如果没有配置php环境变量,需要用php应用程序(PHP_PATHinphp)来执行该文件。

    注:当你用 tail -f /var/log/cron 发现任务在重复执行时,使用  ps aux |grep cron* 查看是有多个cron进程,如果有kill掉就可以了

       基本完工,就这么多了。在此之前,最好先以root手工执行/data/html/ecstore/script/queue/queue.sh,查看是否成功。

    如果导出任务执行正常,但是下载的文件为0字节,或发现并未在FTP目录中创建导出文件,可以移步这里

  • 相关阅读:
    ios之单例模式
    ios之申请后台延时执行和做一个假后台的方法
    ios之gcd浅析
    ios之归档demo
    ios之快速领会VFL的demo
    ios之网络异常与正常视图的切换
    POJ 2280 Amphiphilic Carbon Molecules 极角排序 + 扫描线
    linux pthread
    directdraw显示yuv422(yuy2)
    nginx高效学习方法
  • 原文地址:https://www.cnblogs.com/limonyun/p/7837231.html
Copyright © 2020-2023  润新知