我試圖寫一塊,在那裏我試圖做$ {文件}和$ {}文件。新型cp命令不應該失敗
原代碼這樣之間的文件交換 -
generate ${File}.new
mv ${File} ${File}.backup
mv ${File}.new ${File}
在某些情況下,第一個mv完成但第二個mv尚未完成時,可能會有$ {File}的請求。並且該請求被拒絕,因爲該文件不可用於該名稱。很少發生,但儘管如此,發生(碰巧昨天6周來首次)
爲了避免這種情況,我想更換mv
與cp
,因此,我想建立這樣的事情 -
generate ${File}.new
cp ${File} ${File}.backup
cp ${File}.new ${File}
rm ${File}.new
現在,我的挑戰是,在寫信給$ {File}的那一刻,如果有一個進程正在讀取,那麼副本可能會失敗,並說它無法獲取對象的鎖定。
我對失敗的恐懼是否真正成立?
我想告訴程序等待幾秒/分鐘,然後重試,而不是失敗。
我在AIX 6.1上使用korn shell。
我不能承擔在覆蓋之前刪除文件......在這種情況下,它會使目前鎖定文件的進程失敗。 – Gyan