[英]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.