我正在尝试设置一台用于 Web 开发的 Ubuntu 机器,并想开始使用 SSHFS 而不是烦人的 FTP 协议。我通过 apt-get 安装了 SSHFS。我在我的文档文件夹中创建了一个名为 的文件夹MyProject
。我是该文件夹的所有者。
我使用以下方法将远程文件夹挂载到本地文件夹
sshfs [email protected]:ftp.myproject.com/myproject.com/public_html /home/anton/Documents/MyProject
然后输入我的密码。然后远程文件夹确实已安装。但是,我在本地计算机上所做的更改并未反映在服务器上。我在这里遗漏了什么?
Ubuntu 12.10
答案1
添加-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
答案2
我遇到了与@op相同的问题,但版本更复杂 - 我安装了远程设备的根文件夹,最重要的是需要使用远程操作系统文件系统。
@Vikas 的回答对我有帮助,但不是完全有帮助。我尝试添加挂载选项: sshfs_sync,sync_readdir,sync_read但这些都不能解决我的问题:有时(相当频繁)来自同一路径的读取仍被缓存,因此我无法在远程端获取更改的状态。我猜这是因为在这种情况下(当内核驱动程序提供 sysfs 条目时)的 fs 无法提供有意义的更改/修改时间。而本地端的 fuse/sshfs 依赖于这些。
只有一个选择解决了我的问题 -direct_io。因此,如果使用远程 sysfs 并且同步是首要任务,我建议使用此选项。
sshfs <remote> <local> -o direct_io