Esecuzione di tail -f


#1

Salve a tutti,
Avrei un piccolo problema…
In un programma eseguo il seguente codice per collegarmi a un server ftp
e ricavare le sue linee del file di log (che poi andranno parsate…).

Il codice è il seguente:

require ‘rubygems’
require ‘net/ssh’

Net::SSH.start(“192.168.2.76”, “alessandro”, :password => “metal4ever”)
do |ssh|
ssh.exec “tail -f -n0 /var/log/vsftpd.log” do |ch, success|
exit 3 unless success
ch.on_data do |ch, data|
data.each("\n") do |line|
f = File.open(“tail.txt”, “a”)
f.puts line
f.puts “----------------------------------------”
end #FINE BLOCCO EACH sui dati
end #FINE BLOCCO ON_DATA
end
end #FINE BLOCCO CONNESSIONE SSH

al posto delle istruzioni per salvare su file verrà richiamato il metodo
per eseguire il parsing delle linee…
Il problema è che andando ad aprire il file di testo noto che alcune
righe vengono spezzate in due. E questo non è un buon segno in quanto
poi il parser non riconoscerà alcune righe e registrerà poi in futuro
cose errate.

Qualcuno ha già riscontrato questo problema?
Oppure saprebbe dirmi come risolverlo?

Grazie