sshfs를 통해 텍스트 파일에서 tail -f를 실행하면 작동하지 않습니다. 왜?

sshfs를 통해 텍스트 파일에서 tail -f를 실행하면 작동하지 않습니다. 왜?

원격 SSH 호스트에 대해 로컬 폴더를 성공적으로 마운트했습니다.

지금 하나 만들고 싶은데 tail -500f my_text_file잘 안되네요. tail을 열고 파일 내용을 표시하는 동안 해당 -f부분은 확실히 제대로 작동하지 않습니다. 그것 은 그것 과 관련 이 있어야 합니다 sshfs. 일반 SSH 연결을 수행하면 완벽하게 작동합니다.

이 문제를 해결하는 방법에 대한 조언이 있습니까? 저는 sudo apt install sshfsUbuntu에서 이 작업을 수행할 때 얻은 sshfs 버전을 사용하고 있습니다.

답변1

tail -f파일 변경 알림 메커니즘을 사용해 보세요(inotify). 다른 파일 시스템과 마찬가지로 SSHFS퓨즈파일 시스템은 이 메커니즘을 지원하지 않습니다. 이것은 대개 tail스스로 발견해야 합니다. 그래도 작동하지 않으면 문서화되지 않은 옵션 ---disable-inotify(문서화되지 않은 옵션이므로 세 개의 대시로 시작함)을 사용하여 모든 파일 시스템에서 작동하는 폴링 모드를 강제 실행할 수 있습니다.

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

답변2

sshfssftp프로토콜은 파일을 나열하고 전송하는 데 사용되며 , 프로토콜 내에서는(적어도 OpenSSH에서 구현된 대로) 원격 파일 업데이트에 대해 sftp로컬에 알릴 수 없습니다 .tail

@vovick이 제안한 것처럼 폴링 사용과 같은 다양한 방법을 사용하여 이 문제를 해결할 수 있습니다. 또는 더 나은 방법은 tail원격 서버에서 직접 실행하는 것입니다(- sftp전용이 아닌 한).

관련 정보