2015-04-22 120 views
4

有一個簡單的腳本來運行頂級命令並將結果存儲在txt文件中。它將每天運行3次,間隔爲1小時。一旦完成,將使用文本文件發送電子郵件內容作爲電子郵件的主體,並刪除文本文件,以便第二天新文本文件。在UNIX中運行腳本的Crontab

問題

  1. 要自動化的過程中,我有創造的cronjob在8點30分開始,將啓動腳本和我的腳本將保持乳寧4小時和命令的結果將在文本文件中appeneded,最後經mail.CRON發送是>>0 10 * * * /tmp/ssh-abc/KKK/Report.sh

    /tmp/ssh-abc/KKK/Report.sh:行34:ReportProd.txt:權限被拒絕

代碼

爲了生成txt文件

{ 
//Some Logic 
} >> ReportProd.txt //Running script manually works great and generate txt!! 

刪除文件郵寄後。

find /tmp/ssh-abc/KKK/*.txt -type f -delete //This works fine manually,file is getting generated and deleted also. 

/tmp/ssh-abc/KKK/Report.sh:第39行:ReportProd.txt:沒有這樣的文件或目錄

你能幫助我可能是什麼問題這裏?我掩護了一些東西,但沒有達到正確的點。 考慮到cron將在沒有任何問題的情況下執行,給予文件夾0755的所有權限。 Tried giving cd and path and then the command in crontab but seems not working

  • ,纔有可能賦予權限只喜歡的crontab將能夠 接入代碼和所有者,沒有其他人。

注意:未添加#/斌/ bash和的 「where is SH」 給我SH:/ bin/sh的/usr/share/man/man1/sh.1.gz在/ usr /共享/人/ man1p/sh.1p.gz

回答

1

在腳本中,請確保您cd的目錄,你想要的輸出文件ReportProd.txt在創建該腳本將嘗試在當前目錄來創建它,這將有不同的值時的cron運行它。
只需使用/tmp/ssh-abc/KKK/Report.sh運行腳本並不意味着工作目錄將是/tmp/ssh-abc/KKK

或者,提供您希望輸出文件轉到的完整路徑。例如:

{ 
# Output generated here 
} >> /full/path/to/output/ReportProd.txt 
+0

你救了我的命:)該死!這會幫助像我這樣的bash腳本中的許多noobs。 兩個地方:生成文本文件並將文件附加到電子郵件。 – user3930361

0

嘗試0 10 * * *須藤SH /tmp/ssh-abc/KKK/Report.sh

這就是我如何做到這一點,和平時也沒什麼問題。 cron作業應安裝爲根用crontab -e命令

+0

我可以知道你是以root身份安裝的嗎? 當我在主目錄中鍵入crontab -e時,它會顯示我已安排的cronjob。那麼是否表示cron作業是以根用戶身份安裝的? – user3930361

+0

如果你在運行crontab -e時是root,那麼是的,它是以root身份安裝的。但也檢查您的可執行文件具有可執行屬性,作爲其他答案提到 – misterti

+0

::在郵件中獲取此消息'sudo:對不起,您必須有一個tty運行sudo' – user3930361

-1

嘗試做

/bin/sh /tmp/ssh-abc/KKK/Report.sh 

或做

chmod 755 /tmp/ssh-abc/KKK/Report.sh 

可能是腳本不是可執行文件。

+0

腳本在其他服務器上工作的方式相同沒有任何tmp文件夾和直接usr文件夾裏面我的用戶名文件夾在那裏。如果它不可執行,它不應該在那裏運行?如果我錯了,請糾正我。 – user3930361

+0

你爲什麼不檢查ls -l Report.sh – user3169330