Làm một đuôi -f trên một tệp văn bản trên sshfs không hoạt động. Tại sao?


8

Tôi đã gắn thành công một thư mục cục bộ đối với máy chủ ssh từ xa.

Bây giờ tôi muốn làm tail -500f my_text_filenhưng nó không hoạt động tốt. Mặc dù nó mở đuôi và hiển thị cho tôi nội dung tệp, -fphần này chắc chắn không hoạt động. Nó phải có một cái gì đó để làm với sshfs. Khi tôi làm một kết nối ssh thông thường, nó hoạt động tuyệt vời.

Bất kỳ con trỏ về cách khắc phục điều này? Tôi đang sử dụng phiên bản sshfs mà người ta nhận được khi thực hiện sudo apt install sshfstrong Ubuntu.


2
Việc chạy tailvới ---disable-inotify[sic] có tạo ra sự khác biệt nào không? Đuôi có cho bạn bất kỳ cảnh báo nào không? Inotify rằng đuôi nên được sử dụng theo mặc định không được hỗ trợ bởi sshfs.
undercat hoan nghênh Monica

Bất kể điều đó có giúp ích gì hay không, bạn có thể cố gắng mô phỏng lệnh bằng một cái gì đó giống nhưwhile true; do clear; tail -500 my_text_file; sleep 1; done
undercat hoan nghênh Monica

Câu trả lời:


6

tail -fcố gắng sử dụng cơ chế thông báo thay đổi tập tin ( inotify ). SSHFS, giống như bất kỳ hệ thống tập tin FUSE nào khác , không hỗ trợ cơ chế này. Thông thường tailnên tự mình khám phá điều này. Nếu điều đó không hiệu quả, bạn có thể sử dụng tùy chọn không có giấy tờ ---disable-inotify(bắt đầu bằng ba dấu gạch ngang, vì đó là tùy chọn không có giấy tờ) để buộc sử dụng chế độ bỏ phiếu hoạt động trên bất kỳ hệ thống tệp nào.

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

2

sshfsđang sử dụng sftpgiao thức để liệt kê và chuyển các tệp và trong sftpgiao thức (ít nhất là khi nó được triển khai trong OpenSSH), không có khả năng thông báo cho địa phương của bạn tailvề các bản cập nhật của tệp từ xa.

Như @vovick đề xuất, bạn có thể giải quyết rằng sử dụng các phương pháp khác nhau, ví dụ như sử dụng bỏ phiếu. Hoặc cách tốt hơn, chạy tailtrực tiếp trên máy chủ từ xa (trừ khi nó là sftp-only).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.