web-dev-qa-db-ja.com

bashスクリプトを実行してConkyで出力を表示するにはどうすればよいですか?

Conky で実行したいBashスクリプトはループなので、1回だけ実行する必要があります。これは、VoIPルーターがダウンした場合の監視スクリプトです。

${execi 3600 /home/justin/pingvoip}

Conkyは上記のコードから始めたくありません。

4
leetwanker

スクリプトをログファイルに出力することで問題を回避し、ログファイルをconkytailしました。

スクリプトを見たい人のために:

#!/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
4
leetwanker

これを行う方法は、execexecpexecipre_execexecbarexecgraphなどのconkyコマンド/変数を使用することです。

他のconky変数と同じように、bashが続くだけです-

${pre_exec ls -flah}

または

${exec your_script.sh} 

execipre_execを除いて、これらすべてがconky'ticks 'のたびに実行されることに注意してください。これは、スクリプトによっては非常にリソースを消費する可能性があります。

Conkyオブジェクトのリスト :の完全なリストと詳細情報を参照してください。

0
rm-vanda