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

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

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

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

2 Solutions collect form web for “Выполнение хвоста -f в текстовом файле поверх sshfs не работает. Зачем?”

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).

  • как я перенаправляю вывод из файла tailf & grep в файл
  • Подавлять сообщения об усечении файла при использовании хвоста
  • Будет ли «хвост -100»? sed -n 1p "читать только одну строку?
  • Как ограничить количество строк выходом команды в bash?
  • Почему комбинация tail + grep + cut не работает?
  • Почему некоторые изменения файлов не отображаются в хвосте -f?
  • Как я могу контролировать файл, который полностью воссоздается во время его запуска?
  • После виртуального файла?
  • `tail -f` частично потребляет последнюю строку, не заботится о новых или nul
  • Как я могу напечатать вторую в последнюю строку множество файлов в один файл?
  • выход tailf как параметр скрипта
  • Linux и Unix - лучшая ОС в мире.