これは仮想のシナリオです。インターネットを介してファイル/フォルダを受信するプロセスによって同期される特定のフォルダがあるとします。この作業が進行中、そのディレクトリは同期のためにcp'dされてはいけません。とにかくこれは可能ですか?
ベストアンサー1
少なくとも2つの可能な解決策があります。
- プロセスが実行されているかロックされているファイルをテストして同期が実行されていることを確認し、操作を中断または遅延させるcp用のラッパースクリプトを作成します。
LD_PRELOAD
電話を切るwrite
などの通話に使用されます。
最初の回避策の問題は、、、、、mv
...など、フォルダに書き込むためにすべてのコマンドをラップする必要があることです。一方、この方法は非常に簡単ですが、現在のユーザーにのみ機能します。cp
rsync
rm
ln
cat
2番目の回避策では、ディレクトリの変更/変更のためのすべてのシステムコールを含む共有ライブラリを作成する必要がありますwrite
。ただし、このソリューションは動的にリンクされたすべての実行可能ファイルに適用されるため、他のすべての項目を調整する必要はありません。unlink
rename