より一般的なアクセスのために、コンピュータから収集されたデータファイルを中央NFSサーバーに移動する自動化されたスクリプトがあります。最近、ファイルの約1%を移動できず、mvがすでに存在するファイルに関するエラーを報告していることがわかりました。
mv: cannot create regular file `/mnt/data/2015/20150410_004130.dat': File exists
問題は、以前までファイルいいえmvが作成しようとした後は存在しますが、サイズは0、権限は0000、日付は1970年代です(正確な日付は、このようなことが発生するたびに少しずつ増えるようです)。
mv
runを使用するようにスクリプトを更新しましたが、strace
実際の失敗が発生するまで、失敗は成功と同じように見えます。
- 自分の名前を変更してみてください。失敗(デバイス間リンクが機能しない)
- ターゲットの接続を解除します。失敗しました(該当するファイルやディレクトリはありません)
- 読めるオープンソース文書
- O_WRONLY | O_CREAT | O_EXCL, perms 0600オプションを使用してターゲットファイルを開きます。通常は動作しますが、時々「ファイルが存在します」という主張は失敗します。
私はデータファイルが完了した後(実際には別のサーバーに移動する)、データファイルを処理する別のスクリプトがありますが、他のものもこのファイルを生成しようとするべきではないと確信しています。
この動作は、NFSサーバーでUbuntu 10.04からUbuntu 14.04に更新したときと同時に開始されたようです(クライアント構成は変更されていません)。