2013-03-18 46 views
-2

我有一個bash腳本調用另一個python腳本。bash腳本沒有運行在cron-Python中

由於python全局變量,這不是在cron中運行的。請在腳本下方找到。腳本是爲了壓縮日誌並轉移到Amazon s3。當我們從終端運行腳本時,它將起作用。但是從cron運行時,它會壓縮內容,然後s3cmd這是一個python腳本失敗。任何人都可以幫助我在cron級別設置python全局變量。

#!/bin/bash 
cd /applications/java/tomcat-instance/foundation/logs/ 
sudo find /applications/java/tomcat-instance/foundation/logs/ -mtime +1 | xargs tar -czvPf tomcat_logs_`date +%Y%m%d`_`date +%H`.tar.gz 
/usr/bin/python s3cmd put /applications/java/tomcat-instance/foundation/logs/tomcat_logs_`date +%Y%m%d`_`date +%H`.tar.gz s3://merck-ghh-logs/preview/deliver$ 
sudo find /applications/java/tomcat-instance/foundation/logs/ -mtime +7 -exec rm {} \; 

回答

1

提供的完整路徑s3cmd-:

/usr/bin/python /path/to/s3cmd put .... 
+0

我也試過,但沒有工作。 – 2013-03-18 12:04:42

+0

cron通常會在發生錯誤時發送郵件。你能看到任何來自cron的電子郵件嗎?通過電子郵件發送的用戶將與設置cron作業的用戶相同。 – suspectus 2013-03-18 12:10:03

+0

我將其設置爲root用戶'sudo crontab -e'。當我運行另一個bash腳本但需要其他參數時,我遇到了同樣的問題。那一次我把它放在crontab之上,它開始工作。在這裏它的一個python腳本和腳本沒有運行。 – 2013-03-18 12:17:07

0

定時任務是在root用戶運行。

我在命令中給了sudo。我觀察到有些命令在運行時不會運行。

  1. Cronjob在root下運行。
  2. Sudo用於它。