Автор Тема: Виджет доступности ресурсов  (Прочитано 1980 раз)

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Хочется странного, кто ниб может встречался?
Нужно на раб.столе какой нибуть виджет отображающий доступность ресурса, например элементарно пингованием.
Я такую программульку написал для винды и простой скрип на shell. Но их же запускать нужно, и реакция может быть запоздалой.
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн chaos_dremel

  • Участник
  • *
  • Сообщений: 519
  • Не будите, да не будимы будете.
Re: Виджет доступности ресурсов
« Ответ #1 : 17.08.2011 13:18:07 »
Хочется странного, кто ниб может встречался?
Нужно на раб.столе какой нибуть виджет отображающий доступность ресурса, например элементарно пингованием.
Я такую программульку написал для винды и простой скрип на shell. Но их же запускать нужно, и реакция может быть запоздалой.
Помоему у conky была такая функция.
Хаосу, знаете ли, без разницы, как его величают — на то он и Хаос.

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: Виджет доступности ресурсов
« Ответ #2 : 17.08.2011 13:34:04 »
Цитировать
Помоему у conky была такая функция.

нет там такого
« Последнее редактирование: 17.08.2011 14:25:37 от Belua »
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: Виджет доступности ресурсов
« Ответ #3 : 17.08.2011 13:34:17 »
Ну а если скрипт уже есть, то почему его не поставить в cron и по расписанию пусть ОС раз в минуту запускает...
Для сообщений можно использовать

notify-send "Прювет"

Будет у трея появляться сообщение - там если хелп команды прочитать можно и иконки прикрутить и тайм аут.
У меня в LXDE работает

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: Виджет доступности ресурсов
« Ответ #4 : 17.08.2011 14:32:14 »
у меня не работает... сообщение не появляется... но ошибки не выдаёт. Пробовал и с указанием точной позиции. Мне кажется он в Gnome корректно работает. Но идея интересна... буду смотреть в неё  =)
« Последнее редактирование: 17.08.2011 14:46:30 от Belua »
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: Виджет доступности ресурсов
« Ответ #5 : 17.08.2011 14:49:07 »
Заработало. Доустановил пакет notification-daemon

Но остаётся проблема. Если ресурс будет недоступен, то что бы прервать сообщения, мне нужно будет или остановить задание или менять скрипт.
« Последнее редактирование: 17.08.2011 14:54:21 от Belua »
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: Виджет доступности ресурсов
« Ответ #6 : 17.08.2011 16:43:33 »
Заработало. Доустановил пакет notification-daemon

Но остаётся проблема. Если ресурс будет недоступен, то что бы прервать сообщения, мне нужно будет или остановить задание или менять скрипт.

Киданите скрипт на форум

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: Виджет доступности ресурсов
« Ответ #7 : 21.08.2011 15:06:41 »
Да пожалуйста. Он прост.
#!/bin/sh
log="/home/user/logs/statnet.log"
count_ip=(1 2 3 4 5)
ip=(
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
)
 
name=(
pc1
pc2
pc3
pc4
pc5
)
 
for i  in ${count_ip[@]} #${ip[@]}
do
 
echo ${ip[$i-1]}
 
hop=$(/bin/ping -c 6 ${ip[$i-1]} | grep "received" | awk '{print $4}')
if [ $hop -eq 0 ]
    then
date >> $log
echo связи с ${ip[i-1]} ${name[i-1]} нет>> $log
notify-send -t 200000 -i toys_section "связи с ${ip[i-1]} нет"  ${name[i-1]}
fi

 
 
done


на  неделе попробую прикрутить к нему gnokii и настроить отправку SMS. Только бы телефон какай найти подходящий.
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!

Оффлайн ps1h

  • Участник
  • *
  • Сообщений: 418
    • Нихрена не работает!
Re: Виджет доступности ресурсов
« Ответ #8 : 21.08.2011 19:09:59 »
можно kdialog использовать если KDE стоит...  у меня уже не помню сколько лет такой скрипт валяется на рабочем столе
Код: (сохрянить это в виде hddtemp.sh) [Выделить]
[Desktop Entry]
Exec= kdialog --title "Температура жёстких дисков" --msgbox  "Western 500Gb -- `/usr/sbin/hddtemp -n /dev/sda1` Cº  "
Encoding=UTF-8
Icon=hdd_mount
Name="Sheli-скрипт Температура жёстких дисков"
Type=Application
  и по клику мышки вызывается или по крону можно запускать...   На основе его можете своё прикрутить.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: Виджет доступности ресурсов
« Ответ #9 : 21.08.2011 20:48:28 »
Ну скрипт править смысла не вижу.
Предлагаю скрипт запускать не из крона тогда, а из отдельной программы висящей в трее.

Вот код.
Сохранить со своим названием.
Сделать исполнимым.
#!/bin/bash
#\
exec wish "$0" "$@"

global timer
set timer 10000
global myscript
set myscript "/usr/local/bin/myscript.sh"
global mytray
set mytray 1
global tray_ico
global trayicon
global icontype

#######################################################################


if { [ catch { package require Tk} ] }  {
    set mytray 0
    tk_messageBox -icon info -type ok -title "Tk package not found" -parent . -message "Tk package not found!"
}

if { [ catch { package require tray} ] }  {
    if { [ catch { package require Tray} ] }  {
set mytray 0
        tk_messageBox -icon info -type ok -title "tray or Tray package not found" -parent . -message "tray or Tray package not found (tcl-tksystray) !"
    } else {set icontype 1}
} else {set icontype 2}

if { [ catch { package require img::png } ] }  {
set tray_ico "/usr/share/icons/ico.gif"
} else {
set tray_ico "/usr/share/icons/ico.png"
}

if { ![ file exists $tray_ico ] } {
    set mytray 0
    tk_messageBox -icon info -type ok -title "tray_ico" -parent . -message "Не могу найти файл  $tray_ico"
}

if { ![ file exists $myscript ] } {
    set mytray 0
    tk_messageBox -icon info -type ok -title "script file not found" -parent . -message "Не могу найти файл $myscript"
}


if { $mytray == 1 } {
    global myicon
    set myicon .ico
    if { $icontype==1 } {
if {![ catch { set trayicon [newti $myicon -pixmap $tray_ico ] } ] } {
    bind $myicon <ButtonRelease-1> But1
bind $myicon <ButtonRelease-3> But2
        } else {
set mytray 0
        tk_messageBox -icon info -type ok -title "can't create tray icon (type1)" -parent . -message "can't create tray icon (type1)"
        }
    }
    if { $icontype==2 } {
image create photo ico1 -file $tray_ico
if {![ catch { set trayicon [newti $myicon -pixmap ico1 ] } ] } {
        bind $myicon <ButtonRelease-1> But1
    bind $myicon <ButtonRelease-3> But2
        } else {
set mytray 0
        tk_messageBox -icon info -type ok -title "can't create tray icon (type2)" -parent . -message "can't create tray icon (type2)"
        }
    }
}




proc But1 {} {
    MyExit
}

proc But2 {} {
    MyExit
}

proc MyExit {} {
    toplevel .myexit
    wm geometry .myexit 200x60
    wm title .myexit "Close ?"
    label .myexit.te -text "Закрыть програму ?"
    place .myexit.te -x 5 -y 5
    button .myexit.ex -text "ДА, закрыть" -command {destroy .;}
    place .myexit.ex -x 2 -y 25
    button .myexit.clo -text "НЕТ" -command "destroy .myexit"
    place .myexit.clo -x 130 -y 25
}

wm protocol . WM_DELETE_WINDOW chk_exit

proc chk_exit {} {
    global mytray
    global myicon
    removeti $myicon;
    exit
}

if { $mytray == 1 } {
wm withdraw .
MyRun
} else {
destroy .
}


proc MyRun {} {
    global $myscript
    global $timer
    exec $myscript
    after $timer MyRun2
}

proc MyRun2 {} {
    MyRun
}
Соответственно
set timer 10000 - таймер 10 секунд
set myscript "/usr/local/bin/myscript.sh" - путь до вашего скрипта
set tray_ico "/usr/share/icons/ico.gif"
set tray_ico "/usr/share/icons/ico.png" - путь до вашей иконки - ну что висеть будет в трее.
Ну и надо поставить пакет
tcl-tksystray
и, если хотите иконку не gif а PNG, то
tcl-img
Вообщем теоретически должно работать :))))
« Последнее редактирование: 22.08.2011 07:36:53 от ruslandh »

Оффлайн Belua

  • Участник
  • *
  • Сообщений: 102
Re: Виджет доступности ресурсов
« Ответ #10 : 22.08.2011 06:39:21 »
Про иконку это здорово. Возьму на вооружение, спасибо. Сейчас у меня иконкой на панели.
Вот случилось где-то что-то Ой-ой-ой-ой-ой! Кто-то с кем-то сделал что-то, ай-яй-яй-яй-яй!