【问题标题】:Running NodeJS commands and Linux cmd in Crontab在 Crontab 中运行 Node JS 命令和 Linux 命令
【发布时间】:2017-05-02 04:56:07
【问题描述】:

我正在运行一个 EC2 AWS 实例,我有一系列运行良好但不会在 crontab 中执行的命令和脚本。以下是 Crontab 的内容:

15 03 * * * pythonscript1.py
45 03 * * * pythonscript2.py
00 05 * * * gsjson 1z5OlqsyU5N2ze1JYHJssfe1LpKNvsr4j8TDGnvyuaDZ gsheet.json
05 05 * * * s3cmd put gsheet.json -P -f s3://mybucket772

我需要 EC2 中的 python 程序的路径吗? gsjson 是使用 NodeJS 作为 NPM 包安装的,而 S3cmd 是我安装的命令行工具。

https://s1.postimg.org/nu4zfb22n/ec2-filetree.jpg

我假设我可能是 cron 中的程序路径,但我不确定我需要什么命令来获得它。或者也许我应该将最后 2 个命令包装在 .js 文件中并指向它?

【问题讨论】:

    标签: javascript node.js linux amazon-web-services amazon-ec2


    【解决方案1】:

    无需进一步挖掘您的设置,它应该在使用绝对路径时工作,即:

    15 03 * * * /home/ec2-user/pythonscript1.py
    

    【讨论】:

    • 对最后两行的想法?这些命令在 CLI 中有效,但在 Cron 中无效。会不会是把程序的路径/usr/local/bin/gsjson/usr/local/bin/s3cmd
    • 您可以通过在 cli 中使用 su 来切换到 root(即在未明确设置为另一个用户时执行 cron 的用户)来检查这一点,然后检查该命令是否仍然有效绝对路径...如果没有,那么您可以尝试绝对路径或将目录添加到 PATH..
    • 我在/home/ec2-user中也有cron文件,权限为0644。cron文件需要在etc/cron.daily吗?
    • 可以粘贴/etc/crontab的内容吗?
    【解决方案2】:

    在度过了整个银行假期后与此搏斗。这是解决方案,现在看起来很容易,但当你正在努力解决它时:

    我使用以下命令编辑了 ec2-user cron:EDITOR=nano crontab -e,同时以 ec2-user 身份登录。创建我的 cron 作业。

    我遇到的主要问题是我的 crontab 顶部没有以下内容

    PATH=/bin:/usr/local/bin
    

    因为这些指向 gsjson 和 s3cmd 的位置。

    但是,Python 脚本仍然无法工作,因为它们的路径是 usr/bin。所以我们需要 Python 的位置和脚本的绝对路径。所以下面是最终的 cron 内容,工作解决方案。也感谢其他人对这个问题的意见。

    确保脚本是 0755 权限。

    PATH=/bin:/usr/local/bin
    
    15 03 * * * /usr/bin/python /home/ec2-user/pythonscript1.py
    45 03 * * * /usr/bin/python /home/ec2-user/pythonscript2.py
    00 05 * * * gsjson 1z5OlqsyU5N2ze1JYHJssfe1LpKNvsr4j8TDGnvyuaDZ gsheet.json
    05 05 * * * s3cmd put gsheet.json -P -f s3://mybucket772
    

    配置时还有一些其他有用的命令:

    cat /var/spool/mail/ec2-user 
    

    使您能够在 CLI 中查看错误电子邮件

    crontab -l 
    

    (显示您的 crontab 文件。)

    crontab -e 
    

    (编辑您的 crontab 文件,如果不存在则创建一个)

    sudo service crond status
    

    (给出当前状态)

    which python
    

    (给出你的路径)

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2017-08-05
      • 1970-01-01
      相关资源
      最近更新 更多