Yalnızca bir olasılık arıyorsanız ve awk
veya kullanmak yerine çoğunlukla kabuğun içinde kalmak perl
istiyorsanız, aşağıdakileri yapabilirsiniz:
tail -F /path/to/serverLog |
grep --line-buffered 'server is up' |
while read ; do my_command ; done
... my_command
her zaman çalışacak olan " sunucu çalışıyor " günlük dosyasında görünür. Birden çok olasılığı için, belki düşebilir grep
ve bunun yerine bir kullanmak case
içinde while
.
Başkent , günlük dosyasının döndürülmesini izlemesini -F
söyler tail
; yani eğer mevcut dosya yeniden adlandırılırsa ve aynı isimde başka bir dosya yerini alırsa tail
, yeni dosyaya geçer.
--line-buffered
Seçenek söyler grep
her satırdan sonra onun tampon temizlemek; Aksi taktirde, my_command
zaman zaman ulaşılamaz (kütüklerin makul boyutlarda çizgileri olduğu varsayılarak).
tail -F
kütük dönüşünü idare etmek için kullandığınızdan emin olun - yanimy.log
dolgun hale gelir ve ilerlermy.log.1
ve süreciniz yeni bir şey yaratırmy.log