通过 sshfs 对文本文件执行 tail -f 不起作用。为什么?

dev*_*ium 9 tail sshfs

我成功地在远程 ssh 主机上安装了一个本地文件夹。

我现在想做一个,tail -500f my_text_file但效果不佳。尽管它确实打开了尾部并向我显示了文件内容,但该-f部分绝对不起作用。这一定与sshfs. 当我进行常规 ssh 连接时,它运行得非常好。

有关如何解决此问题的任何指示?我正在使用 sshfs 版本,sudo apt install sshfs在 Ubuntu 中执行时获得。

Gil*_*il' 8

tail -f尝试使用文件更改通知机制 ( inotify )。SSHFS 与任何其他FUSE文件系统一样,不支持这种机制。通常tail应该自己发现这一点。如果这不起作用,您可以使用未记录的选项---disable-inotify(以三个破折号开头,因为它是一个未记录的选项)来强制使用适用于任何文件系统的轮询模式。

tail ---disable-inotify -n 500 -f my_text_file
Run Code Online (Sandbox Code Playgroud)


Jak*_*uje 2

sshfs使用sftp协议来列出和传输文件,并且在sftp协议中(至少在 OpenSSH 中实现),不可能通知本地tail有关远程文件的更新。

正如 @vovick 所提议的,您可以使用各种方法来解决这个问题,例如使用轮询。tail或者更好的方法,直接在远程服务器上运行(除非它是sftp-only)。