Как запустить скрипт bash и отобразить любой вывод в Conky?
Скрипт Bash, который я хотел бы запустить в Conky, представляет собой цикл, поэтому его нужно запускать только один раз. Это скрипт мониторинга на случай, если мой VoIP роутер выйдет из строя.
${execi 3600 /home/justin/pingvoip}
Конки не хочет начинать с приведенного выше кода.
2 ответа
Я обошел проблему, имея вывод сценария в файл журнала, и у меня есть 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
Способ сделать это через команду / переменные conky, такие как exec
,execp
, execi
, pre_exec
,execbar
, а также execgraph
,
Как и любая другая переменная conky, за которой следует только bash -
${pre_exec ls -flah}
или же
${exec your_script.sh}
Имейте в виду, что все это - за исключением execi
а также pre_exec
будет запускаться каждый раз, когда требуются "тики" - что может быть очень трудоемким, в зависимости от вашего сценария.
Смотрите полный список и дополнительную информацию в списке объектов Conky: