Conky ping

Conky ping

mkdir .conky
cd .conky
mkdir status
nano ping.sh

#!/bin/bash
if [[ "$#" != "3" ]]; then echo "Usage: ping.sh IP onsign offsign"; fi

# Get the status
STATUS="$(ping $1 -c 1 -w 2 | grep packets | sed "s/^.*tted, //;s/1/$2/;s/0/$3/;s/ re.*$//")"

# Create the directory
if [ ! -d ~/.conky/status ]; then mkdir ~/.conky/status; fi

# Remove the old status
if [ "$STATUS" == "$2" ]; then
if [ -f ~/.conky/status/$1.$3 ]; then rm ~/.conky/status/$1.$3; fi
else
if [ -f ~/.conky/status/$1.$2 ]; then rm ~/.conky/status/$1.$2; fi
fi

# Create the new status file
if [ ! -f ~/.conky/status/$1.$STATUS ]; then touch ~/.conky/status/$1.$STATUS; fi
chmod a+x ping.sh

Пример использования скрипта. (Пингуем yandex)
=============================================

use_xft yes
xftfont Monospace:size=8
xftalpha 0.8
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_hints below
#update_interval 1.0
double_buffer yes
alignment top_left
gap_x 5
gap_y 270
maximum_width 400
update_interval 6
total_run_times 0
draw_shades no
draw_graph_borders no
# ------------------ COLORS ---------------------------------#
color3 green
color4 red
# ------------------ Main Text ---------------------------------#
TEXT
INET - ${alignr}${execi 60 /home/imbicile/.conky/ping.sh 77.88.21.3 "up" "down"}${if_existing /home/imbicile/.conky/status/77.88.21.3.up}${color3}Online$else${color4}Offline$endif

Пример с WAN адресом
======================================

INET: ${execi 60 /home/imbicile/.conky/ping.sh 87.250.251.3 "up" "down"}${if_existing /home/imbicile/.conky/status/87.250.251.3.up}${color3}${execi 3600 wget -O - http://ip.tupeux.com/ | tail}$color$else${color4}Offline$endif$alignr${nodename}

One comment

  • Леонид Пантелеев Леонид Пантелеев

    Спасибо за Ваши труды…

    Вот только не получилось…
    Нужна помощь. Жаль, что нет скриншота конечного результата.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *