2012-11-18 39 views
0
#!/bin/bash 

# Setup Variables 
hostName=localhost 
portNum=8080 
SOLRPATH=/solr 
SOLR='delta-import&clean=false' 
STATUS='dataimport?command=status' 
urlCmd='http://${hostName}:${portNum}${SOLRPATH}/dataimport?command=${SOLRCMD}" 
statusCmd='http://${hostName}:${portNum}${SOLRPATH}/dataimport?command=${STATUS}" 
myStdErrLog=/tmp/myProject/myProg.stderr.$(/bin/date +%Y%m%d.%H%M) 
outputDir=. 

# Operations 
wget -O $outputDir/check_status_update_index.txt ${statusCmd} 2> ${myStdErrLog} 
status=$(fgrep idle $outputDir/check_status_update_index.txt) 
case "${status}" in 
    *idle*) .... ;; 
    *) echo "unknown status = ${status} or similar" 1>&2 ;; 
esac 

我真正明白的是,我們從varialbes構建了urlcmd和statuscmd,但我不明白操作的作用。任何人都可以點亮一下嗎?這個bash腳本實際上做了什麼?

+0

我認爲它不會工作,因爲缺少'$ SOLRCMD'的值,無論如何,這個腳本的目的是執行數據導入 - http://wiki.apache.org/solr/DataImportHandler – ajreal

回答

2

首先有錯誤的行

urlCmd='..." 
statusCmd='..." 

因爲他們最終用雙引號包含變量,他們需要開始用雙引號爲好。

變量urlCmd從不使用。不是一個錯誤,但它也不好。

wget通過statusCmd檢索狀態,fgrep嘗試提取狀態。然後在案例聲明中評估此狀態。

1

通常,它看起來像試圖從網站和管道狀態下載數據到myStdErrLog。

相關問題