如何运行 bash 脚本并在 Conky 中显示任何输出?

如何运行 bash 脚本并在 Conky 中显示任何输出?

我想要运行的 Bash 脚本康基是一个循环,因此只需运行一次。这是一个监控脚本,以防我的 VoIP 路由器出现故障。

${execi 3600 /home/justin/pingvoip}

Conky 不想从上述代码开始。

答案1

我通过将脚本输出到日志文件来解决该问题,并使用 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

答案2

实现此操作的方式是通过 conky 命令/变量,例如execexecpexecipre_execexecbarexecgraph

就像任何其他 conky 变量一样,只跟在 bash 后面 -

${pre_exec ls -flah}

或者

${exec your_script.sh} 

请记住,所有这些 - 除了execipre_exec将在每次 conky“滴答”时运行 - 这可能会非常耗费资源,具体取决于您的脚本。

请参阅完整列表和更多信息Conky 对象列表

相关内容