2014-01-06 2 views
0

Я хотел бы записать файл журнала с tail -f, но только последнюю строку. Моя командаtail -f pipe не только одна строка

tail -f logfile.log | while read line; do /usr/bin/gammu --sendsms TEXT ****** -text "$line"; done

Я видел, что я могу использовать grep --line-buffered, но моя новая строка не может иметь какой-либо символ, и с тем, что я пробовал не работает.

+0

'tail -1f logfile.log'? – Ryan

+0

@minitech Спасибо за помощь. Но это не сработает. 'user @ machine: ~ # tail -1f log.log | при чтении строки; do echo "$ line"; done' 'Line 2' #I обновляете файл журнала ' хвост: /var/log/apache2/access.log: файл truncated' 'Линия 1' ' Линия 2' 'Линия 3' – Mio

+0

Tail будет жаловаться что файл обрезается, когда вы обрезаете файл ('cat/dev/null>/file'), удаляете файл и создаете новый файл (' rm file; touch file') или перезаписываете файл ('cp file2 file'). – alvits

ответ

0

Ошибка показывает, что проблема в другом месте, которое вы нам не показываете. Ниже тестовый код подходит для меня.

tail -1f logfile.log | while read line 
do 
    echo /usr/bin/gammu --sendsms TEXT ****** -text "$line" 
done 
+0

спасибо. С вашей помощью и с помощью @alvits он, наконец, работает. Я добавляю строку в свой файл журнала с «echo» hello world »>> lofgile.log' – Mio

Смежные вопросы