Выполнение хвоста -f в текстовом файле поверх sshfs не работает. Зачем?

Я успешно смонтировал локальную папку с удаленным хостом ssh.

Теперь я хотел сделать tail -500f my_text_file но он работает не очень хорошо. Хотя он открывает открытый хвост и показывает мне содержимое файла, часть -f определенно не работает. Это должно иметь какое-то отношение к sshfs . Когда я делаю регулярное соединение ssh, он работает чудесно.

Любые указатели на то, как это исправить? Я использую версию sshfs, которую получает при выполнении sudo apt install sshfs в Ubuntu.

tail -f пытается использовать механизм уведомления об изменении файла ( inotify ). SSHFS, как и любая другая файловая система FUSE , не поддерживает этот механизм. Обычно tail должен обнаружить это сам по себе. Если это не сработает, вы можете использовать недокументированную опцию ---disable-inotify (начиная с трех тире, поскольку это недокументированная опция), чтобы принудительно использовать режим опроса, который работает на любой файловой системе.

 tail ---disable-inotify -n 500 -f my_text_file 

sshfs использует протокол sftp для перечисления и передачи файлов и в протоколе sftp (по крайней мере, поскольку он реализован в OpenSSH), нет возможности уведомлять ваш локальный tail об обновлениях удаленного файла.

Как предложил @vovick, вы можете обходным путем использовать различные подходы, например, используя опрос. Или лучше, запустите tail прямо на удаленном сервере (если это не sftp only).