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