GNU/Linux >> Belajar Linux >  >> Linux

Tail -f, Tentukan Apakah Sebuah File Tidak Lagi Ditulis?

Tutup. Pertanyaan ini di luar topik. Saat ini tidak menerima jawaban.

Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan agar sesuai dengan topik untuk Unix &Linux Stack Exchange.

Ditutup 7 tahun yang lalu.


Perbaiki pertanyaan ini

Saya menggunakan tail -f untuk mengikuti pertumbuhan file log. Saya mengalami kesulitan menemukan cara untuk mendeteksi jika proses yang menulis ke file log (ketika crash atau dihentikan) tidak lagi mengakses atau menulis ke file.

Ini skrip yang saya gunakan

tail -f log_file | while read LOGLINE
do
  echo -e "${LOGLINE}"
  if [[ "${LOGLINE}" == *ERROR* ]] ; then
  echo -e "ERROR FOUND : ${LOGLINE}n"

  # handle the error here

  fi
done

Apa cara termudah dan paling efisien untuk mendeteksi bahwa proses penulisan ke file log telah berhenti (atau tail -f tidak lagi menerima input) dan menggemakan pesan ke layar yang memperingatkan saya tentang acara tersebut?

Jawaban yang Diterima:

Setidaknya jika Anda menjalankan Linux, Anda melakukan ini secara terbalik. Anda harus menggunakan inotify untuk bereaksi terhadap file yang sedang ditulis.

#!/bin/sh
while inotifywait -qe modify filename
do

done

itu akan berhasil.


Linux
  1. Apakah Tail Membaca Seluruh File?

  2. contoh perintah tail di UNIX/Linux

  3. Memotong file saat sedang digunakan (Linux)

  1. Bagaimana Cara Menentukan Proses Yang Membuat File??

  2. Pulihkan file yang dihapus yang saat ini sedang ditulis

  3. Tentukan apakah file sedang dalam proses penulisan?

  1. Bagaimana Mengenalinya Jika Sebuah File Sedang Diunduh Oleh Wget?

  2. Script Untuk Menentukan Apakah File Adalah Gambar?

  3. Contoh Perintah ekor Linux