GNU/Linux >> Belajar Linux >  >> Linux

Shellscript untuk memantau file log jika kata kunci memicu lalu jalankan perintah?

Saya juga menemukan bahwa Anda dapat menggunakan awk untuk memantau pola dan melakukan beberapa tindakan saat pola ditemukan:

tail -fn0 logfile | awk '/pattern/ { print | "command" }'

Ini akan menjalankan perintah ketika pola ditemukan di log. Perintah dapat berupa perintah unix apa pun termasuk skrip shell atau apa pun.


tail -fn0 logfile | \
while read line ; do
        echo "$line" | grep "pattern"
        if [ $? = 0 ]
        then
                ... do something ...
        fi
done

Pendekatan yang lebih kuat adalah monit. Alat ini dapat memantau banyak hal, tetapi salah satunya adalah ia akan dengan mudah membuntuti satu atau lebih log, cocok dengan regex dan kemudian memicu skrip. Ini sangat berguna jika Anda memiliki kumpulan file log untuk ditonton atau lebih dari satu peristiwa untuk dipicu.


Linux
  1. Cara tail -f file log terbaru dengan pola yang diberikan

  2. Bagaimana cara mencetak keluaran perintah Linux ke file?

  3. Jalankan perintah tertentu dalam direktori yang diberikan tanpa cd'ing ke sana?

  1. Bagaimana saya bisa memeriksa file yang ada dan menjalankan perintah jika tidak?

  2. Jalankan perintah untuk setiap file di direktori saat ini

  3. Bagaimana cara mengubah izin ke pola/ekstensi file tertentu?

  1. Bagaimana Cara Mencatat Setiap Perintah yang Diketik Ke Bash Dan Setiap Operasi File?

  2. Bagaimana cara menjalankan perintah setiap kali file berubah?

  3. Perintah Shell untuk memantau perubahan dalam file