我想要运行的 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 命令/变量,例如exec
、execp
、execi
、pre_exec
、execbar
和execgraph
。
就像任何其他 conky 变量一样,只跟在 bash 后面 -
${pre_exec ls -flah}
或者
${exec your_script.sh}
请记住,所有这些 - 除了execi
和pre_exec
将在每次 conky“滴答”时运行 - 这可能会非常耗费资源,具体取决于您的脚本。
请参阅完整列表和更多信息Conky 对象列表: