這是我在廚師配方一塊紅寶石:檢查現有目錄中的Ruby +廚師失敗
# if datadir doesn't exist, move over the default one
if !File.exist?("/vol/postgres/data")
execute "mv /var/lib/postgresql/9.1/main /vol/postgres/data"
end
結果是:
Executing mv /var/lib/postgresql/9.1/main /vol/postgres/data
mv: inter-device move failed: `/var/lib/postgresql/9.1/main' to `/vol/postgres/data/main'; unable to remove target: Is a directory
我知道/vol/postgres/data
存在且是一個目錄但它仍然試圖執行mv
。爲什麼?
只是可以肯定,運行在同一臺機器上輸出「NOMV」以下獨立Ruby腳本:
if !File.exist?("/vol/postgres/data")
print "mv"
else
print "nomv"
end
嗯......如果是廚師,試試'!:: File.exist?...'。它可能與Chef :: Provider :: File混合。 –
@DracoAter我對此有希望,但我已經嘗試過了,不幸的是它沒有任何區別。 –