Windowsサーバー上の共有フォルダーに書き込まれたビデオファイル(数MBから数GBの範囲)を取得するスクリプトを作成しようとしています。
理想的には、スクリプトはLinuxマシンで実行され、15〜120秒ごとなどの間隔でWindows共有フォルダーを監視し、共有フォルダーへの書き込みが完全に終了したファイルをFTPサイトにアップロードします。
ファイルが共有に完全に書き込まれたかどうかを確実に知ることができる基準を決定できませんでした。Windowsは、ファイルのサイズ全体に対して共有の場所を予約しているようです(したがって、ファイルサイズは増分されません)。変更された日付は、ファイルが書き込みを開始した時刻のようですが、ファイルとしては増分されません。成長し続けます。LSOFとfuserはファイルを認識していないようで、Sambaツールでさえファイルがロックされていることを示していないようですが、正しいオプションでマウントしていないためかどうかはわかりません。ファイルを開いたり名前を変更したりしてみましたが、「テキストファイルビジー」エラーコードが最適ですが、ファイルのコピーに大きな遅延が発生するようです。
私は書き込みプロセスをまったく制御できません。これは数十台のマシンで実行され、ネットワーク共有へのWindowsOSファイルのコピーのみで構成されます。
Windowsサーバーで共有オプションを制御でき、Linuxボックスを完全に制御できます。FTP経由でアップロードする前に、ファイルの書き込みが完全に終了したことを確認できるWindows CIFS共有のロックをチェックする方法はありますか?または、Linuxサーバーにローカルで共有を所有させる唯一の可能な解決策はありますか?
編集
tldr、私は本当にcifsにマウントされた共有で機能する「lsof」のようなものに相当するものを探しています。どれだけ低レベルでもかまいませんが、Pythonから呼び出すことができれば理想的です。到着する前に共有を移動したり、ファイルの名前を変更したりできません。