Kuyruk-bip yapmak için bir yolu var mı?


23

Yeni veriler geldiğinde (dosyaya yeni bir satır eklenir), bir zil sesi yapmanın tail -Fveya lessbip sesi çıkarmanın (terminaldeki zili çalmanın) bir yolu var mı ? Veya bunu Linux veya Mac'te yapmak için başka bir unix yardımcı programı var mı?

Yanıtlar:


13

Bir fikir borusuna sonucu da yararlı olabileceğini düşündürmektedir tailyoluyla sedve çan / yeni satır ile yeni satır değiştirin.

Ancak x-windowtail içinde kullanırsanız, muhtemelen daha kolay bir çözüm var . Burada, pencerenin içeriği değiştiğinde (titreme, zil, her neyse) bir eylem gerçekleştirebilirsiniz.


4
Yeni çizgiyi değiştirmeyin, satırın sonuna ekleyin.
— Kevin

@Nils, bu sedfikir harika ama çalışmasını sağlamak için yeterince 'sed' bilmiyorum, görünüşe göre regexpt içinde yeni çizgiler yakalayamıyor gibiyim (alışkınım) gelen akış satır satır satır yorumlamak yok.
— Ali

5
@Ali Gerçekten, sed satır satır hareket eder ve doğrudan yeni satırları görmezsiniz. Her satırın sonuna sed -e $'s/$/\a/'bir $'\a'(ksh / bash / zsh sözdiziminde zil karakteri) ekler .
— Gilles 'SO- kötülük yapmayı bırak'

Thanks @Gilles, bir cazibe gibi çalıştı (mac de)! sedregexpt saf gözlerime göre biraz tuhaf.
— Ali

1
@Gilles: $'...'Sözdiziminin evrensel olmadığını unutmayın . Örneğin, [t] csh desteklemiyor.
— Keith Thompson

13

GNU kullanıyorsanız screen, kuyruğu olan pencereyi "izlemeye" ayarlayabilirsiniz; durum çubuğunuzda veya termcap'iniz tanımlanmış zili tarafından bu pencerede yeni çıktı olduğu konusunda sizi uyaracaktır.

http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor


düzenleme: sadece bu eklemek zorunda kaldı, çünkü mac os x

sadece eğlence için, özellikle de bir şey arıyorsanız, sayizlediğiniz dosyayı okumak için Mac OS X'in komutunu kullanabilirsiniz. sadece logtailkomutu al:

http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/

Ve şöyle bir komut dosyasında kullanın:

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say ding
        echo "$output" && say ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done

Teşekkürler @Tim, screengösterir ve alarm verir (Sanırım ben de zili çalabilirim ) SADECE. Gerçekleşen her yeni etkinlik için değil (mevcut olan her yeni hat için değil)
— Ali

1
dosyayı okuyabilecek bir mac örneği ekledim. logtail linux sürümünü yükleyerek ve beepbunun yerine komutu kullanarak linux için çalışacak şekilde değiştirebilirsiniz say.
— Tim Kennedy,

güzel! Bu yaratıcı, ancak benim durumumda ekrana bakmadan bir günlük dosyasını izleyebilmek için bip sesini kullanıyorum. Ve gerçek bip sesi bir sesten daha iyi olabilir.
— Ali

1
Ayrıca ekran execkomutunu da kullanabilir . Manpage'deki örnek !:sed -n s/.*Error.*/\007/p, bu pencerede "Hata" her görüntülendiğinde bir zil gönderecek olan örnektir .
— Arcege

Aynısı Tmux için de geçerlidir.
— 0xC0000022L

10

Multitail kullanabilirsiniz . Bu bir olduğunu geliştirilmiş destekler düzenli ifade maç yürütülmesine emir vermesini kuyruk.

Örneğin, aşağıdaki komut bir ses çalar ve bir Marslı kaynak paketi her kaydedildiğinde bir xmessage penceresi açar .

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages

4

Sadece kayıt için, @Nils kullandığımı önerdiğim gibi sedbell her satıra bir a eklemek için .

sed@Gilles ile sağlanan hat

sed -e $'s/$/\a/' 

Mac'imde çalışıyor (Terminal \ Preferences \ advanced'de "sesli zil" ve "görsel zil" i etkinleştirdim).


Unutulmaması gereken, $'...'kaçış dizilerinin tek başına bir şey olduğu.
— amfetamachine

@ amphetamachine teşekkürler, ben kendimi bir bash kullanıcısı iken, siz veya başkaları diğer mermilerde de çalışacak sürümler ekleyebilirseniz çok iyi olur.
— Ali

Ben de bir bash kullanıcısıyım ama diğer mermilerde neyin işe yarayıp neyin işe yaramadığını yavaşça öğreniyorum .
— amfetamachine

1

Bu sayfayı bulan başka biri için tcsh kullanıyorum ve bu işe yarıyor:

tail -f changingfile | sed -e 's/.*/& \a/'

Sakın sözdiziminin ne anlama geldiğini sorma bana ...


1
Kendime yardım edemem, sormalıyım, sed ifadesini açıklayabilir misin?
— Ashwani Agarwal

0

konsoleHerhangi bir sekmede hangisinin yeni etkinlik (veya sessizlik) konusunda uyarıda bulunabileceğini deneyebilirsiniz .


Her yeni hat için bir uyarı almam gerekecekken, bir kez uyardığı konsolegibi olacağını hayal ediyorum screen.
— Ali
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.