Como executar um script bash e exibir qualquer saída no Conky?

3

O script Bash que gostaria de executar em Conky é um loop, portanto, só precisa ser executado uma vez. É um script de monitoramento no caso do meu roteador VoIP ficar inativo.

${execi 3600 /home/justin/pingvoip}

Conky não quer começar com o código acima.

    
por leetwanker 06.03.2015 / 07:00

2 respostas

3

Eu trabalhei em torno do problema por ter o script de saída para um arquivo de log e eu conky cauda o arquivo de log.

Para quem quisesse ver o script:

#!/bin/bash
rm /home/username/ping.log #deletes the log file when the script starts
downTime=0
lastAccessTime=$(date +"%s")
while [ true ]; do
if ! ping -c1 192.168.1.28 >& /dev/null; then
    downTime=$(( $(date +"%s") - $lastAccessTime ))
else
    downTime=0
    lastAccessTime=$(date +"%s")

fi

sleep 60

if [ $downTime -ge 60 ]; then
   notify-send -u normal "VoIP is down! Please Reboot." #displays a desktop notification
   mplayer -nolirc -really-quiet /home/username/chime.ogg #plays a sound
   echo "'date +%b%e,%l:%M%p' $1": "VoIP is down!" >>/home/username/ping.log #writes Date & text to the log file
fi


done
    
por 06.03.2015 / 09:09
0

A maneira de fazer isso é através do comando / variáveis conky como exec , execp , execi , pre_exec , execbar e execgraph .

Assim como qualquer outra variável conky, apenas seguida por bash -

${pre_exec ls -flah}

ou

${exec your_script.sh} 

Lembre-se de que tudo isso, exceto execi e pre_exec , será executado toda vez que o conky 'ticks' - que pode ser muito consumidor de recursos, dependendo do seu script.

Veja a lista completa e mais informações na lista de objetos Conky :

    
por 12.06.2015 / 23:45