sshfs
魔法のおかげで、リモートサーバーからホームディレクトリをマウントできます。
sshfs user@server:/home/user ~/remote
楽観的には、ローカルプログラムがリモートログの変更に対応できるように、ローカルinotify
フックを~/remote/logFile
(sshfs
マウント内に)設定すると思いました。
cd ~/remote
touch logFile # create remote file
inotifywait logFile & # set up local inotify-hook
ssh user@server -x touch /home/user/logFile # touch file from remote
何も起こりません。ローカルにファイルがinotifywait
ない限りtouch
、サイレントです。名前付きパイプへの書き込みも同様に失敗します。
どうしてこれなの?
どうすればこのギャップを埋めることができますか?
私は可能性が実行しinotifywait
、リモートのファイルシステム変更のシリアル化戦略をハックし、地元への接続を維持したが、その後、私はよ基本的にSSHFSを再実装します。そして、それは抽象化を完全に殺します。
inotify
ローカルシステムでリモートファイルシステムの変更を検出できる方法はないと思います。これらの変更では、ローカルカーネルがループから抜けています。inotifywait
クライアントではなくサーバーで実行する必要があります。