Tôi có mã này vào đuôi file log từ xa:đuôi với grep file log từ xa
def do_tail(session, file)
session.open_channel do |channel|
channel.on_data do |ch, data|
puts "[#{file}] -> #{data}"
end
channel.exec "tail -f #{file}"
end
Net::SSH.start("host", "user", :password => "passwd") do |session|
do_tail session, "/path_to_log/file.log"
session.loop
Tôi muốn lấy chỉ các dòng với "ERROR" chuỗi trong file.log, tôi đang cố gắng để gọi là "đuôi -f # {file} | grep ERROR "nhưng không thành công.
Xin cảm ơn trước.
Đầu ra của 'tail -f # {file} | grep ERROR'? – Hugo
Bạn có thể thử thêm '--line-buffered' vào lệnh grep của mình. – Cyrus
Có lẽ bạn nên thử một cái gì đó như "bash -c 'tail -f # {file} | grep ERROR'" – user3132194