Bir inode numarası yerine dosya adını nasıl azaltabilirim?


11

Yeniden başlatıldığında günlük dosyalarını döndüren bir yazılım parçası var. Ancak, geliştirme sırasında, çok fazla yeniden başlatıyorum, bu yüzden herhangi bir zamanda en son günlük dosyasını izlemek istiyorum.

lessNormal olarak başlar less program.logve kuyruk Shift+ işaretine fbasarsam, günlük dosyası döndürüldüğünde eski günlük dosyasını izlemeye devam ederim. Bunun inode numarası aynı kaldığı ve lessbu inode için açık bir dosya tanıtıcısı olduğu için varsayıyorum .

Şu anda adlandırılan günlük dosyasındaki en son etkinliği izlemek mümkün müdür program.log?

Özellikle, Sun OS üzerinde çalışıyorum, bu yüzden orada çalışan bir çözüm ideal olacaktır.


belki tail -F program.log | lessişe yarayacak
sendmoreinfo

tail -f program.log bunu denedin mi
Rahul Patil

Yanıtlar:


17

less --follow-nameSürümünüz lessdestekliyorsa kullanın . Bu seçenek 416 sürümünde tanıtıldı.


Mükemmel cevap. Hem Solaris 10 hem de Solaris 11 daha az sürüm 436 kullanır, bu nedenle bu seçenek gerçekten kullanılabilir.
unixhacker2010

5

lessOpsiyon --follow-nameçözümün sadece bir parçası;
Değiştirmek için tail -Fbaşka bir argüman gereklidir:

less --follow-name +F file.log

Bunun gibi tek başına seçenek less --follow-name file.logaslında dosya güncellemelerini izlemeye başlamaz. Basılacak takip moduna girmeniz gerekiyor ShiftF.
(Gezinmek için moddan çıkın ControlC.)

Dosyayı izlemek yerine, daha az --follow-name davranışını değiştirir .
Komut anahtarını dosya tanımlayıcısına değil, dosya adına göre takip ShiftFiçinde yapar less.

Ayrıca, lessizleme modunda başlamak için normal bir seçenek yoktur .
Ancak, komut satırını, açılıştan sonra öneklerle çalıştırarak tuş vuruşlarını vermek için kullanabilirsiniz +.
İle değiştirici seçeneği birleştiren +F, lessaslında (değiştirilmiş) takip modunda başlayacaktır.

+FOva eşdeğeri için tek başına kullanın tail -f:

less +F file.log

1

Bu U&L Soru-Cevap bölümünde şu cevabı buldum: Günlük döndürülmüş dosyalar nasıl yapılır tail -f? .

Kullanma tail:

(sisteminize GNU kuyruğu kurmak bir seçenektir)

tail -F program.log

Gönderen kuyruk adam sayfası :

   -f,      --follow[={name|descriptor}]
            output appended data as the file grows; -f, 
            --follow, and --follow=descriptor are equivalent

   -F       same as --follow=name --retry

   --retry  keep  trying  to  open  a  file even when it is or becomes
            inaccessible; useful when following by name, i.e., with
            --follow=name

Anahtar --retryanahtardır. Bu tailkomut, bir dosyayı adıyla izlemeyi denemeye devam etmesini söyler . -FAnahtar a hem yapar -fve bir --retry.

kullanma less

@StephaneChazela'nın yorumlarda belirttiği gibi, aşağıdakiler çalışmaz.

tail -F program.log | less

Sahip olduğunuz diğer tek seçenek, --follow-nameanahtarı ve lessdosyayı doğrudan desteklediğini varsayarak daha az doğrudan kullanmaktır ve tailtamamen kullanmaya devam eder .

less --follow-name program.log

Bazen Sun OS'den kesinlikle hoşlanmıyorum ...
Alex Chamberlain

Katılıyorum, yıllarca çalıştım, bazı uygulamalar için takımın 10 yaşında olduğu konusunda sizi çıldırtıyor. Anlamı yok. Bu site Solaris'teki akıl sağlığınızı korumak için çok değerliydi
slm

Daha fazla akıl sağlığı istiyorsanız, pkgsrc.org'a bir göz atın :)
sendmoreinfo

Bu iyi çalışmaz. Çünkü less"G" pr "F" yaparsanız askıda kalacaktır. Hangi "Ctrl-C" yaparak kesebilir, ama sonra kuyruk öldürür. Daha sonra Ctrl-C'ye bağışıklık kuyruğu yapabilirsiniz, ancak yine de çok kullanışlı değildir.
Stéphane Chazelas

Giriş Çıkış: GNU kuyruk ile ilgili olarak bu araçlar herhangi Solaris ana bilgisayarda mevcut olması gerektiği hakkında bilgi almak için. (Aslında Solaris 11'de varsayılan olarak GNU kuyruğu vardır). Solaris sistem yöneticileri kullanıcıları için genellikle zorlaştırır, çünkü Solaris için GNU araçları bu günlerde doğrudan Oracle'dan veya bazı durumlarda varsayılan kurulumun bir parçası iken, kurulumu çok çıplak kemik kurulumunda bırakırlar. Kurulumunuzun bir parçası olmamak için hiçbir neden yok. 'Resmi olmayan' depolara gitmek için bir sebep yok. Bkz. Bağlantı.
unixhacker2010
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.