Experimente o IWatch - é um script em Perl baseado em inotify que faz exatamente o que você precisa:
Você também pode rolar com as inotify-tools , especialmente inotifywait
. Modificando o exemplo # 2 dessa página (não testado):
#!/bin/sh
file=logfile
cp $file $file.last
while true; do
EVENT=$(inotifywait --format '%e' $file)
[ $? != 0 ] && exit
[ "$EVENT" = "MODIFY" ] && ( diff $file $file.last | mail ... ) && cp $file $file.last
done
Você também pode manter um contador de byte / linha e enviar apenas os novos bytes / linhas, mas usar diff é mais simples. Isso pode causar problemas de desempenho se o arquivo ficar grande e mudar constantemente.