Jika Anda hanya mencari satu kemungkinan dan ingin tetap berada di shell daripada menggunakan awk
atau perl
, Anda bisa melakukan sesuatu seperti:
tail -F /path/to/serverLog |
grep --line-buffered 'server is up' |
while read ; do my_command ; done
... yang akan berjalan my_command
setiap kali " server habis " muncul di file log. Untuk beberapa kemungkinan, Anda mungkin dapat menjatuhkan grep
dan alih-alih menggunakan case
dalam while
.
Modal -F
mengatakan tail
untuk menonton file log menjadi diputar; yaitu jika file saat ini diganti namanya dan file lain dengan nama yang sama menggantikannya, tail
akan beralih ke file baru.
The --line-buffered
pilihan memberitahu grep
untuk flush buffer setelah setiap baris; jika tidak, my_command
mungkin tidak dapat dijangkau secara tepat waktu (dengan asumsi log memiliki garis yang cukup besar).
tail -F
untuk menangani rotasi log - yaitumy.log
menjadi penuh dan bergerak kemy.log.1
dan proses Anda membuat yang barumy.log