'watch', 'tail', 'grep' combinação em 'byobu' 'windows.tmux'

1

Estou (re) escrevendo meu windows.tmux para minhas sessões byobu usadas com frequência. Abaixo é o meu requisito preciso:

Eu gostaria de ter uma aba (ou janela?) com um prompt de root. (No início, aguarda o sudo passwd). Eu gostaria que o segundo fosse dividido horizontalmente. Na parte superior, quero monitorar meu /var/log/syslog e, no menor, dmesg . Até agora eu sou capaz de conseguir, fazendo o seguinte:

new-session -AD -s 'root' sudo su - ;
new-window -n log watch -n 1 tail -n 15 /var/log/syslog
split-window watch dmesg | tail -15;

No entanto, o problema (que é completamente irrelevante para este thread) é que existem muitas entradas no meu syslog (quase 4/5 linhas por segundo), o que eu gostaria de evitar durante o monitoramento. Então eu gostaria de grep -v nessas linhas. A combinação de watch , tail e grep pode ser obtida de acordo com a minha necessidade (graças ao steeldriver para sua resposta aqui .

watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

Aqui começa o problema: se eu incluir a seguinte linha no meu window.tmux

new-window -n log watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

Eu recebo

sh: 1: tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2": not found

Na verdade, o problema mais geral é se eu encapsular o comando entre aspas (seja o único ' ou o dobro " ), recebo o mesmo erro.

A saída de byobu --version é:

byobu version 5.116
tmux 2.3

Estou usando GNU bash, version 4.4.7(1)-release em 17.04.

Obrigado antecipadamente - Mike

Eu não experimentei o screen . Isto é possível usando screen ?

    
por Mike V.D.C. 29.06.2017 / 17:23

1 resposta

1

Em seu bashrc , crie um alias

alias monitor_log='tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern1"'

Seu windows.tmux pode ser:

new-session -AD -s 'root' sudo su - ;
new-window -n log;
split-window watch dmesg | tail -15;

Isso lhe dará um prompt bash no segundo split de janela e no dmesg na parte inferior. Em seguida, forneça seu comando favorito watch :

watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

Não tenho certeza se você pode criar um alias para isso!

Espero que isso ajude.

    
por user5325 29.06.2017 / 18:09