4

Скрипт Bash, который я хотел бы запустить в Conky, представляет собой цикл, поэтому его нужно запускать только один раз. Это скрипт мониторинга на случай, если мой VoIP роутер выйдет из строя.

${execi 3600 /home/justin/pingvoip}

Конки не хочет начинать с приведенного выше кода.

2 ответа2

4

Я обошел проблему, имея вывод сценария в файл журнала, и у меня есть conky tail файл журнала.

Для тех, кто хотел увидеть сценарий:

#!/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
0

Это можно сделать с помощью команды / переменных conky , таких как exec , execp , execi , pre_exec , execbar и execgraph .

Как и любая другая переменная conky, за которой следует только bash -

${pre_exec ls -flah}

или же

${exec your_script.sh} 

Имейте в виду, что все они, за исключением execi и pre_exec будут выполняться каждый раз, когда требуются «тики», что может быть очень трудоемким, в зависимости от вашего сценария.

Смотрите полный список и дополнительную информацию в списке объектов Conky:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .