2014-03-06 118 views
0

我一直在編寫一個連接多個遠程服務器的litte bash腳本,然後通過一些期望的指令執行java CLI程序。爲tron創建crontab作業

它是這樣的:

bash script 
    expect 
    ssh to server using public keys 
    expect ... 
    expect ... 
    log_file my_file (everything displayed on the screen is now redirected to my_file) 
    expect ... 
    log_file (closing my_file) 
    exit 
exit 

當我手動執行我的劇本一切運行正常。 當我通過crontab執行它時,文件my_file是空的。

我發現cron作業沒有TTY連接,並且該路徑是不一樣的,通常

我的問題是:有沒有辦法迫使一個tty的創建/分配到我的cronjob?

我試過使用-t和-tt選項,但沒有結果。 在不同級別的腳本上重定向標準輸出不起作用。

此外,我無法安裝屏幕(可能會有幫助,也許),「腳本」也不寫任何東西。

非常感謝!

回答

0

您可以檢查cron選項卡日誌中是否存在錯誤,並確保給出要執行的命令的完整路徑。

+0

剛剛選中:cron日誌中沒有錯誤。我也檢查腳本中是否存在未完成路徑,以避免有關在其限制PATH中執行的錯誤,但一切看起來都不錯。我真的認爲這個問題更多的是關於tty的缺失。 – Natha