você está aqui: Home  → Arquivo de Mensagens

Rotacionamento de Area de trabalho para telas de monitoramento

Colaboração: Fabio Maximo

Data de Publicação: 09 de janeiro de 2013

Não importa se voce gerencia rede, segurança ou monitora os gráficos da bolsa, seria muito legal ter varios monitores para mostrar tudo isso - graficos, alertas, status, ranking. Infelizmente, nem sempre da para comprar mais monitores, comprar placas de video, e colocar isso tudo junto em uma maquina. Mas se voce ja exibe as telas de programas de monitoramento ou se voce tem pelo menos uma maquina com um monitor sobrando para começar seu NOC, vamos la, essa dica te serve.

Instalamos o wmctrl, que é um programa para interação com o servidores graficos compativeis com o X Window Manager.

  aptitude install wmctrl

O objetivo não é esmiuçar o wmctrl (embora ele mereça uma dica somente para ele), mas ele te fornece uma serie de comandos em linha de texto para executar tarefas no gerenciador. Por exemplo ele permite listar as janelas abertas e fecha-las pela linha de comando.

Para exibir a primeira area de trabalho, executamos:

  /usr/bin/wmctrl -s0

Para exibir a segunda

  /usr/bin/wmctrl -s1

E assim por diante até quantas você tiver habilitadas.

A Ideia é abrir uma janela de monitoramento em cada área de trabalho e então alternar periodicamente entre áreas de trabalho. Como a exibição é independente do carregamento do conteúdo, você não fica sendo obrigado a apreciar aquela tela carregando imagens de gráficos no refresh.

Segue um exemplo simples, onde 4 áreas de trabalho se alternam num mesmo monitor. Se sua maquina tiver 2 monitores, você dobra a quantidade de telas mostradas.

  #!/bin/bash
  #Script para rotacionamento da Area de Trabalho
  export DISPLAY=":0.0"
  while true; do
  /usr/bin/wmctrl -s1
  /bin/sleep 10
  /usr/bin/wmctrl -s2
  /bin/sleep 10
  /usr/bin/wmctrl -s3
  /bin/sleep 10
  /usr/bin/wmctrl -s0
  /bin/sleep 40
  done

Esse script pode ser executado por ssh, por exemplo.

O que ele faz é chamar a área de trabalho e dar um sleep de acordo com o tempo que voce deseja que aquela area seja exibida. Então chama a proxima. Os tempos de exibição são diferentes pois algumas telas precisam de mais atenção que outras. (Claro que o correto é receber alertas e não depender de olhar os graficos.)

Se quiser automatizar ainda mais a inicialização da operação, é so adicionar os comandos de abertura do navegador ou de programas que sejam executados em cada espaço de trabalho. Algo do tipo:

  #!/bin/bash
  #Script para rotacionamento da Area de Trabalho
  #
  export DISPLAY=":0.0"
  #INICIALIZAÇÂO
  /usr/bin/wmctrl -s1
  /usr/bin/firefox -no-remote -new-window http://nagios.empresa.com.br -setDefaultBrowser
  /usr/bin/wmctrl -s2
  /usr/bin/firefox -no-remote -new-window http://cacti.empresa.com.br -setDefaultBrowser
  /usr/bin/wmctrl -s3
  /usr/bin/firefox -no-remote -new-window http://phpweathermap.empresa.com.br -setDefaultBrowser
  /usr/bin/wmctrl -s0
  /usr/bin/firefox -no-remote -new-window http://zabix.empresa.com.br -setDefaultBrowser
  #
  #ROTACIONAMENTO
  while true; do
  /usr/bin/wmctrl -s1
  /bin/sleep 10
  /usr/bin/wmctrl -s2
  /bin/sleep 10
  /usr/bin/wmctrl -s3
  /bin/sleep 10
  /usr/bin/wmctrl -s0
  /bin/sleep 10
  done

Voce pode melhorar isso tudo com poucas alterações, colocando as URLs em arquivos separados, e fazer oque a imaginação mandar. Ou pode fazer um "for" na linha de comando mesmo.

O foco é a alternância entre desktops para exibir mais janelas.

Outros navegadores podem dar novas opções também, como abertura da tela em tela cheia sem uso de plugins.

Não se esta preso ao navegador. Pode abrir consoles de gerenciamento de soluções, e o que mais quiser. Depois executa o script e deixa rotacionar.

Espero que seja útil. Se melhorar o script (o que esta fácil de fazer, hehehe) ou tiver ideias novas, poste nos comentários da Dica. Bom 2013 a todos.

Fabio Maximo é usuário de Tecnologias Livres por convicção, mala sem alça por opção e caçador de vampiros nas horas vagas.


 

 

Veja a relação completa dos artigos de Fabio Maximo

Opinião dos Leitores

Urias Fernandes
09 Mai 2017, 13:48
Ótima dica! Valeu!
Joelmir
19 Ago 2014, 16:37
Gostei. Parabens!!
John
24 Jan 2013, 01:12
Muito boa dica
Xinuo
11 Jan 2013, 17:09
Muito boa a dica, eu uso para fazer a mesma coisa, um comando específico do KDE, bem mais longo:

qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop $TELA

Onde $TELA é 0, 1, 2, ...

Mas me falta uma coisa: quando eu usava um Solaris para fazer a monitoração existia uma maneira de travar o uso do mouse e teclado (seria como ter um screensaver que deixa a tela sendo mostrada sem deixar que alguém que sente na frente do micro mexa no que está aparecendo na tela e pede a senha do usuário para destravar). Alguém sabe como fazer isso no GNU/Linux?


Antonio
09 Jan 2013, 11:49
vou pensar numa forma de usar essa dica num monitor que exibe a tela do nagios aqui na empresa...vlw abraço
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script