簡體   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