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.