Mengapa mode ekor lebih sedikit berhenti bekerja?

11

Menggunakan lessperintah di linux dalam mode ekor (perintah F atau kurang -f) secara konsisten berhenti bekerja pada mesin dan / atau file tertentu. Perubahan baru berhenti muncul.

Saya tahu saya sudah memperbaiki ini sebelumnya, dulu, tapi saya tidak ingat apa solusinya.

Ada ide?

POHON
sumber
Sudahkah Anda mencoba menggunakan strace untuk melihat apa yang (tidak) dilakukannya? Mungkin Anda akan melihat kesalahan.
wfaulk
FYI, ini tetap tidak terjawab karena file tersebut tidak sedang digulir / diputar / diciptakan kembali.
POHON

Jawaban:

12

Coba gunakan less --follow-name. Bahkan jika file tersebut memiliki nama yang sama, proses memperbarui mungkin melakukannya dengan cara yang mengubah inode file - jadi dari sudut pandang OS, itu adalah file baru setelah pembaruan.

Doug Harris
sumber
+1 jawaban sempurna, itu sebabnya opsi ini diperkenalkan. Catatan yang --follow-namediperkenalkan dalam kurang v415 ( greenwoodsoftware.com/less/news.415.html ), dirilis 15 November 2007. Jadi instalasi Linux lama mungkin tidak memilikinya.
sleske
3

Apakah Anda melihat file log yang diputar oleh logrotate? Jika file yang kurang dilihat diubah namanya (mis. Dari log ke log.0 oleh logrotate), semakin sedikit yang akan menonton file itu, meskipun entri baru sedang ditulis ke file yang berbeda (dengan nama asli).

Randy Orrison
sumber
Jika ini masalahnya, coba tail --follow = name [filename] (yang menyebabkan tail membuka kembali file secara berkala jika namanya diganti). Lihat gnu.org/software/coreutils/manual/html_node/…
Randy Orrison
Tidak, lognya tidak berputar. Ini file yang sama.
POHON
1

mungkin Anda bisa mencobanya tail -f [filename]?

brandstaetter
sumber
4
Dengan lebih sedikit, Anda dapat "menjeda ekor Anda" (dengan menggunakan Ctrl-c) untuk naik ke baris tertentu dan melanjutkan nanti (menggunakan F). Itu sebabnya dalam beberapa kasus lebih disukai daripada "tail -f".
dogbane
tail -f bekerja, tapi saya lebih suka bekerja dalam waktu kurang.
POHON
Saya melihat. Tidak tahu itu.
brandstaetter
0

Saya lakukan less +F --follow-name. --follow-namehanya memonitor file dengan nama yang sama tanpa menerima perubahan yang masuk dalam kasus saya (CentOS 7).

Sebenarnya saya membuat alias untuk ini:

Tambahkan baris ini di /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

Simpan, dan sumber untuk menggunakannya sekarang. . /etc/profile.d/alias.sh

WesternGun
sumber