Saya ingin memonitor file log aplikasi saya yang bagaimanapun tidak bekerja secara lokal tetapi pada platform SaaS dan diekspos melalui HTTP dan WebDAV. Jadi, setara dengan tail -f yang berfungsi untuk URL akan sangat membantu saya.
NB. Jika Anda mengetahui ada alat lain yang dapat memonitor file jarak jauh melalui HTTP, itu juga bisa membantu. Terima kasih
wget -N http://somewhere/something
, itu akan mengunduh file hanya jika itu lebih baru dari yang Anda unduh sebelumnya atau gunakanwget -O - http://somewhere/something
untuk mengarahkan file ke stdout.Jawaban:
Mungkin ada alat khusus untuk ini, tetapi Anda juga bisa melakukannya menggunakan wget. Buka terminal dan jalankan perintah ini:
Ini akan mengunduh file log setiap dua detik dan menyimpannya ke dalam
log.txt
menambahkan output ke apa yang sudah ada (-c
berarti melanjutkan mengunduh dan-a
berarti menambahkan output ke nama file yang diberikan). The-o
pengalihan pesan kesalahan/dev/null/
.Jadi, sekarang Anda memiliki salinan log.txt lokal dan dapat dijalankan
tail -f
di sana:sumber
tail -f
tidak memperbarui perubahan file kecuali ada beberapa proses lain yang secara aktif meminta server untuk pembaruan direktori (ls
tampaknya cukup polos ). Masalahnyatail -f
bergantung pada inotify, dan inotify tampaknya tidak berhasil pada davfs2.tail
tidak bergantung pada inotify. Itu hanya membaca file, mencari kembali dan membaca lagi. Jika tidak bekerja dengan baik dengan davf, itu akan turun ke cara davf itu sendiri bekerja. Agaknya, itu hanya memperbarui informasi ketika ada sesuatu yang secara aktif membaca direktori dan karenatail
membuat file tetap terbuka, itu tidak memicu itu. Atau sesuatu seperti itu.Saya menjawab pertanyaan yang sama di sini dengan skrip shell lengkap yang mengambil URL sebagai argumen dan
tail -f
itu. Ini salinan jawaban itu kata demi kata:Ini akan melakukannya:
Itu tidak terlalu ramah di server web. Anda dapat mengganti
true
dengansleep 1
menjadi sumber daya kurang intensif.Seperti
tail -f
, Anda perlu^C
ketika Anda selesai menonton output, bahkan ketika output selesai.sumber
ikal dengan rentang pilihan dalam kombinasi dengan arloji dapat digunakan untuk mencapai ini:
Sebagai contoh
Ini akan mengambil 2000 byte terakhir dari log setiap 30 detik.
Catatan: untuk https yang ditandatangani sendiri gunakan opsi --insecure curl
sumber