Web開発用にUbuntuマシンをセットアップしようとしていますが、煩わしいFTPプロトコルの代わりにSSHFSを使い始めると思いました。 apt-getでSSHFSをインストールしました。ドキュメントフォルダにMyProject
というフォルダを作成しました。私はそのフォルダの所有者です。
を使用してリモートフォルダをローカルフォルダにマウントします
sshfs [email protected]:ftp.myproject.com/myproject.com/public_html /home/anton/Documents/MyProject
私のパスワードが続きます。次に、リモートフォルダが実際にマウントされます。ただし、ローカルコンピューターで行った変更は、サーバーに反映されません。ここで何が欠けていますか?
Ubuntu 12.10
追加 -o cache=no
コマンドに
sshfs [email protected]:ftp.myproject.com/myproject.com/public_html /home/anton/Documents/MyProject -o cache=no
同じことがここで答えられました: https://stackoverflow.com/questions/3671350/any-way-to-eliminate-time-lag-with-sshfs
@opと同じ問題がありましたが、より複雑なバージョンで-リモートデバイスのルートフォルダーをマウントし、最も重要なことに、リモートで操作する必要がありますsysfs。
@Vikasからの回答は私を助けましたが、完全ではありませんでした。マウントオプションを追加しようとしました:sshfs_sync、sync_readdir、sync_readしかし、それでも問題は解決しませんでした:同じパスからの読み取りがまだキャッシュされていることがあり、変更された状態を取得できませんでしたリモート側。これは、この場合(sysfsエントリがカーネルドライバーによって提供される場合)のfsが意味のある変更/変更時間を提供できないためだと思います。そして、ローカル側のFuse/sshfsはこれらに依存しています。
唯一のオプションが私の問題を解決しました-direct_io。したがって、リモートsysfsが使用され、同期が最優先される場合は、代わりにこのオプションをお勧めします。
sshfs <remote> <local> -o direct_io