繁体   English   中英

在Crontab中运行NodeJS命令和Linux cmd

[英]Running NodeJS commands and Linux cmd in Crontab

我正在运行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内的程序路径,但我不确定要获取此命令需要什么命令。 或者,也许我应该将.js文件中的最后两个命令包装起来并指向它?

使用绝对路径时,无需进一步挖掘设置即可正常工作,即:

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

在度过了整个银行假期后,他为此苦苦挣扎。 这是解决方案,现在看起来很简单,但是当您努力解决时却并非如此:

我使用以下命令编辑了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

(给你的路)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM