0
我有一個Java程序必須運行數據庫重新索引條目。這是一項必須每週進行一次的工作。 我寫了一個腳本,執行程序:腳本不能從cronjob工作
var=$(which java)
nohup $var -Xmx2048m -jar javaProgram.jar $* -d javaProgramResource -re > /nfs/inf/app_storage/logs/service/service_refresh.log 2>&1 &
我把Java的路徑變量的原因是becouse我希望它是通用的,我們在每個環境中的不同位置安裝了Java。 通過手動執行此腳本,它可以很好地工作。
./reindex.sh
現在,我想創建一個執行該腳本每週一次(每週六早上6點鐘cron作業 - 這項工作的持續時間約16小時becouse有很多的數據庫中的條目)。
0 6 * * 6 cd /locattion/of/the/file; ./reindex.sh
非但沒有在日誌文件中編輯的指標(比如當我開始手動腳本),我剛剛得到一個消息,說:
nohup: invalid option -- 'X'
Try `nohup --help' for more information
我想這是一個語法錯誤,但我不熟悉bash腳本和命令。
嘗試在'nohup'語句之前的語句中添加'set -x',以便執行您正在執行的命令。 –
大概問題是'哪個java'沒有返回任何東西。您應該引用變量替換,以便空變量不被視爲不存在。 –
當我手動調用腳本時,它正在工作.. –