Ich habe erfolgreich einen lokalen Ordner gegen einen Remote-SSH-Host gemountet.
Ich wollte jetzt ein machen, tail -500f my_text_file
aber es funktioniert nicht sehr gut. Obwohl es den Schwanz öffnet und mir den Dateiinhalt zeigt, -f
funktioniert das Teil definitiv nicht. Es muss etwas damit zu tun haben sshfs
. Wenn ich eine normale SSH-Verbindung herstelle, funktioniert das wunderbar.
Irgendwelche Hinweise, wie man das behebt? Ich benutze die sshfs-Version, die man bekommt, wenn man eine sudo apt install sshfs
in Ubuntu macht.
tail
mit---disable-inotify
[sic] einen Unterschied? Gibt Ihnen der Schwanz irgendwelche Warnungen? Inotify, dass Tail standardmäßig verwendet werden soll, wird von sshfs nicht unterstützt.while true; do clear; tail -500 my_text_file; sleep 1; done
Antworten:
tail -f
versucht, einen Benachrichtigungsmechanismus für Dateiänderungen zu verwenden ( inotify ). SSHFS unterstützt diesen Mechanismus wie jedes andere FUSE- Dateisystem nicht. Normalerweisetail
sollte dies von selbst entdeckt werden. Wenn dies nicht funktioniert, können Sie die Option undokumentiert---disable-inotify
(beginnend mit drei Strichen, da es sich um eine undokumentierte Option handelt) verwenden, um die Verwendung des Abfragemodus zu erzwingen, der auf jedem Dateisystem funktioniert.quelle
sshfs
verwendet dassftp
Protokoll zum Auflisten und Übertragen von Dateien und imsftp
Protokoll (zumindest wie es in OpenSSH implementiert ist) gibt es keine Möglichkeit, Ihren lokalen Benutzer zu benachrichtigentail
über Aktualisierungen der Remote-Datei .Wie von @vovick vorgeschlagen, können Sie dies mithilfe verschiedener Ansätze umgehen, z. B. mithilfe von Abfragen. Oder besser, führen Sie das
tail
direkt auf dem Remote-Server aus (es sei denn, es istsftp
-nur).quelle