[Solved] Conky - konfiguracja skryptu USB

Tylko tematy nie mieszczące się powyżej.
Awatar użytkownika
szogun_
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 04 mar 2010, 23:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Xfce
Architektura: x86

[Solved] Conky - konfiguracja skryptu USB

Post autor: szogun_ »

Witam

Ostatnio bawiłem się swoim conky aby doprowadzić go do stanu finalnego. I natrafiłem na problem z którym nie jestem wstanie sobie poradzić. Z racji tego że w bashu czuje się.... w sumie to się nie czuje w ogóle tyle co udało mi się pozmieniać już w gotowy skrypt. Próbuje uzyskać

Kod: Zaznacz cały

${fs_bar 6,40 /home}
taką wartość tyle żeby po zamontowaniu wyskakiwał taki graf dla nowego USB. Tutaj jest skrypt którego używam

Kod: Zaznacz cały

#!/bin/bash

declare -a _index
declare -a _mount_point

for x in $(hal-find-by-property --key storage.bus --string usb)
do
	if (hal-device "$x" |grep "storage\.drive_type = 'disk'" > /dev/null);
	then
		_bminor=$(hal-device "$x" |grep "block\.minor" |sed -e "s/'//g" |cut -d\  -f5)
		_index[$_bminor]=$_bminor
		_vendor[$_bminor]=$(hal-device "$x" |grep "info\.vendor" |sed -e "s/'//g" |cut -d\  -f5)
		_product[$_bminor]=$(hal-device "$x" |grep "info\.product" |sed -e "s/'//g" |cut -d\  -f5)
		_info_udi=$(hal-device "$x" |grep "info\.udi" |sed -e "s/'//g" |cut -d\  -f5)
		_udi=$(hal-find-by-property --key info.parent --string $(echo "$_info_udi"))
		_device=$(hal-device "$_udi" |grep "block\.device" |sed -e "s/'//g" |cut -d\  -f5)
		y=$(df -h |grep $(echo "$_device"))
		if [ "$y" ]
		then
			set $y
			_device[$_bminor]="$1"
			_mount_point[$_bminor]="$6"
			_space_used[$_bminor]="$3"
			_percent_used[$_bminor]="$5"
			_space_available[$_bminor]="$2"
			_fs_bar [$_bminor]="$6"
		fi
	fi
done

if [ ${#_mount_point[@]} -gt 0 ];
then
	for x in "${_index[@]}"
	do
		if [ "${_mount_point[$x]}" ]
		then
		echo -e "${_product[$x]}: ${_space_used[$x]} /${_space_available[$x]} \${goto 90} \${fs_bar 6,40 [$6x} \${goto 132} ${_percent_used[$x]}"
		fi
	done
fi
exit 0
O ile już mam uzyskane wszystkie dane liczbowe to i tak na pierwszy rzut oka lepiej mieć graf i w tym tkwi problem że nie potrafię tego napisać w bashu.
Będę bardzo wdzięczny za pomoc.
Awatar użytkownika
igotit4free
Przyjaciel
Przyjaciel
Posty: 6453
Rejestracja: 29 paź 2008, 22:51
Płeć: Mężczyzna
Architektura: x86_64
Lokalizacja: KRK

Odp: Conky problem ze skryptem USB

Post autor: igotit4free »

Zanim ponownie wpiszesz w tytule tematu słowo PROBLEM zapoznaj się z REGULAMINEM
W razie wątpliwości/zastrzeżeń odnośnie powyższej informacji skontaktuj się z moderatorem, który ją wstawił.

Zmień tytuł tematu tak, aby w sposób możliwie precyzyjny przedstawiał sedno sprawy, w której piszesz. Miej na uwadze również zgodność z REGULAMINEM
Tytuł tematu zmienisz edytując pierwszy post
W razie wątpliwości/zastrzeżeń odnośnie powyższej informacji skontaktuj się z moderatorem, który ją wstawił.
Windows 10 @ GA-P67A-D3-B3, i3-2100 3.10GHz, 8GB RAM, Gigabyte HD6850 1GB RAM
Android 7.0 @ Motorola Moto G4+
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Conky - konfiguracja skryptu USB

Post autor: COVERek »

A nie lepiej tak zrobic? Mam w ten sposób zrobione dla swojego pendrive o etykiecie 32GB.

Oto wyciety fragment z .conkyrc:

Kod: Zaznacz cały

${if_mounted /media/32GB}${color0}/media/32GB ${hr}
 ${color }${fs_used /media/32GB}/${fs_size /media/32GB}${alignr}${color }${fs_used_perc /media/32GB}%
 ${color1}${fs_bar 4,180 /media/32GB}$endif
Linux User #462372 || Ubuntu User #20118
Awatar użytkownika
igotit4free
Przyjaciel
Przyjaciel
Posty: 6453
Rejestracja: 29 paź 2008, 22:51
Płeć: Mężczyzna
Architektura: x86_64
Lokalizacja: KRK

Odp: Conky - konfiguracja skryptu USB

Post autor: igotit4free »

@ COVERek:
Trochę mało eleganckie w tej formie ...
Po pierwsze po wyjęciu pena zaczyna bić do nieskończoności błędem:
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Conky: statfs '/media/32GB': No such file or directory
Tu aż się prosi o konstrukcję if/else/endif.

Po drugie podpinasz pena kolegi albo koleżanki i czar pryska, działa jeno dla jednej etykiety.

.
Windows 10 @ GA-P67A-D3-B3, i3-2100 3.10GHz, 8GB RAM, Gigabyte HD6850 1GB RAM
Android 7.0 @ Motorola Moto G4+
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Conky - konfiguracja skryptu USB

Post autor: COVERek »

W sumie racja. :)
Linux User #462372 || Ubuntu User #20118
urgentino
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 23 kwie 2009, 16:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Xfce
Architektura: x86

Odp: Conky - konfiguracja skryptu USB

Post autor: urgentino »

Sporo tego kodu, a wynik rzeczywiście marny:

Obrazek

To samo uzyskam, bez tej zachodzącej belki wypełnienia:

Obrazek

A oto kod:

Kod: Zaznacz cały

#!/bin/bash

echo "$( df -h | grep /media | awk '{ print $6,":",$3,"/",$2,$5 }' | sed 's/\/media\///')" 
A może coś w pythonie z małymi moimi poprawkami:

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess

# root filesystem
#print "${voffset 2}${goto 60}${color}Root: ${color1}${fs_free_perc /}%"
#print "${goto 60}${color}F: ${color1}${fs_free /}${color}  U: ${color1}${fs_used /}${color}"

# /home folder (if its a separate mount point)
#if os.path.ismount("/home"):
#	print "${voffset 2}${goto 60}${color}Home: ${color1}${fs_free_perc /home}%"
#	print "${goto 60}${color}F: ${color1}${fs_free /home}${color}  U: ${color1}${fs_used /home}${color}"

# folder in /media
for device in os.listdir("/media/"):
	if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
		print "${voffset 2}${goto 20}${color}"+device.capitalize()+": ${color2}${fs_used /media/"+device+"}${color2} / ${color2}${fs_free /media/"+device+"}${color}" "${color} ${color1}${fs_free_perc /media/"+device+"}%"
A tak to wygląda:

Obrazek

Fajnie by było uzyskać to co powyżej.

[EDIT]

Przysiadłem się trochę do tego skryptu pythona i uzyskałem coś takiego:

Obrazek

A wygląda to teraz tak:

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess

# folder in /media
for device in os.listdir("/media/"):
	if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
		print "${voffset 2}${goto 20}${color #8BC53F}${fs_bar 14 /media/"+device+"}" "${voffset 6}${goto 20}${#FF0000}"+device.capitalize()+": ${goto 95}${#FFFFFF}${fs_used /media/"+device+"} / ${fs_free /media/"+device+"}" "${voffset -14}${goto 185}${#10c20c}${fs_free_perc /media/"+device+"}%" 
A w conkyrc:

Kod: Zaznacz cały

${goto 20}${voffset -1}${color}${font Droid Sans:style=Bold:size=8}DYSK ${stippled_hr}${font}
${goto 20}${color0}${font Poky:size=15}y${font}${color}${goto 44}${voffset -10}${color #8BC53F}${fs_bar 14 /}
${voffset -22}${goto 60}${#FF0000}root  ${#FFFFFF}${fs_used /} / ${fs_size /}${#10c20c}${goto 185}${fs_free_perc /}%
${goto 20}${color0}${font Poky:size=15}y${font}${color}${goto 44}${voffset -10}${color #8BC53F}${fs_bar 14 /home}
${voffset -22}${goto 54}${#FF0000}home  ${#FFFFFF}${fs_used /home} / ${fs_size /home}${#10c20c}${goto 185}${fs_free_perc /home}% 
${execpi 3 ~/.scripts/media.py}
Podałem przy okazji z tym co powyżej.
Tylko jeden problem pojawił się, gdy dodałem możliwość wyświetlania się belki jest coś takiego jak odmontuję napęd USB:

Kod: Zaznacz cały

Conky: statfs '/media/SAMSUNG': No such file or directory

Może między czasie jakoś to rozwiążę, a jak nie to ciekaw jestem jak w bashu by to mogło wyglądać.

[EDIT]

Widzę że temat stoi i nikt nie rusza dalej. Przeszukałem dziesiątki stron i tu na forum było poruszane nie raz. Jak rozwiązać problem w danym przypadku u mnie dysk USB SAMSUNG:

Kod: Zaznacz cały

Conky: statfs '/media/SAMSUNG': No such file or directory
Wielu boryka się z tym i ja też i nikt jakoś nie wie jak rozwiązać problem czy to w skrypcie bash czy pythonie czy bezpośrednio w conky?
Znalazłem też dość ciekawy skrypt Python-Script-Conky-Disks w pythonie który w części wcześniej zastosowałem skądś pobierając, ale pozostał problem i nikt tam do tej pory nie poruszył. Jeśli ktoś ma konto na http://www.deviantart.com/ mógłby poruszyć kwestię ww. problemu.
Awatar użytkownika
szogun_
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 04 mar 2010, 23:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Xfce
Architektura: x86

Odp: Conky - konfiguracja skryptu USB

Post autor: szogun_ »

Bardzo dziękuję. O to mi chodziło, nie wiem dlaczego Ci wyskakuje taki komunikat. U mnie nic podobnego nie wyskakuje po prostu po odmontowaniu urządzeń zostaje mi jedna pusta linijka jakby przerwa.

Z zamontowanymi urządzeniami
Obrazek

Po odmontowaniu urządzeń
Obrazek

Moja konfiguracja skryptu.

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess

# folder in /media
for device in os.listdir("/media/"):
	if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
		print "${#FFFFFF}"+device.capitalize()+": ${fs_used /media/"+device+"} /${fs_free /media/"+device+"}  ${goto 93}${fs_bar 6,40 /media/"+device+"}" "${goto 135s}${fs_used_perc /media/"+device+"}%"
urgentino
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 23 kwie 2009, 16:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Xfce
Architektura: x86

Odp: Conky - konfiguracja skryptu USB

Post autor: urgentino »

Zaangażowałem się w temacie i w trakcie gdy testowałem kolejne ustawienia conky i usb zaczął pojawiać się problem z:

Kod: Zaznacz cały

Conky: statfs '/media/jakieś_usb': No such file or directory


szukając rozwiązania przejrzałem dziesiątki stron i okazało się że nie jestem odosobnionym przypadkiem i żadnego rozwiązania czy to były skrypty w bashu, pythonie czy w perlu. Już się z tym oswoiłem - można i bez tego "bajeru" żyć. Dałem jeszcze raz szansę pythonowi, wziąłem skrypt kolegi szogun_ trochę do mojego conky dostroiłem i podłączyłem wszystkie moje nośniki usb oto efekt:

Obrazek

robię odmontuj usb i cisza nie ma tego przykrego problemu. Cóż międzyczasie był upgrade, może coś innego, ale muzyka gra. A dla zainteresowanych mój media.py:

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess

# folder in /media
for device in os.listdir("/media/"):
	if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
		print "${goto 20}${color0}${font Poky:size=15}y${font}" "${goto 44}${voffset -10}${color #8BC53F}${fs_bar 14 /media/"+device+"}" "${goto 45}${voffset 5}${color0}"+device.capitalize()+": ${goto 113}${color0}${fs_used /media/"+device+"} /${fs_free /media/"+device+"}" "${goto 205}${voffset -14}${color1}${fs_used_perc /media/"+device+"}%"
na upartego można też wstawić root i home, ale nie wywołujmy wilka z lasu tamte partycje mam w conky i jest ok.

Pozdrowienia i podziękownia za współpracę!
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [Solved] Conky - konfiguracja skryptu USB

Post autor: COVERek »

Panowie, chcialem zaaplikowac Wasz skrypcik do siebie... Ale nie dziala tak jak terzeba. Co to moze byc?

Obrazek

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess
# folder in /media
for device in os.listdir("/media/"):
    if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
        print "${color0}/media/"+device.capitalize()+" ${hr}"
        print " ${color }${fs_used /media/"+device+"}/${fs_size /media/"+device+"}${alignr}${color }${fs_used_perc /media/"+device+"}%"
        print " ${color1}${fs_bar 4,180 /media/"+device+"}"
Linux User #462372 || Ubuntu User #20118
urgentino
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 23 kwie 2009, 16:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Xfce
Architektura: x86

Odp: [Solved] Conky - konfiguracja skryptu USB

Post autor: urgentino »

A kto to może wiedzieć. :craz:
A tak na poważnie - popraw tak:

Kod: Zaznacz cały

#!/usr/bin/env python
import sys
import os
import subprocess

# folder in /media
for device in os.listdir("/media/"):
    if (not device.startswith("cdrom")) and (os.path.ismount('/media/'+device)):
        print "${color0}/media/"+device.capitalize()+" ${hr}"
        print "${color }${fs_used /media/"+device+"}/${fs_size /media/"+device+"}${alignr}${color }${fs_used_perc /media/"+device+"}%"
        print "${color1}${fs_bar 4 /media/"+device+"}"
Odstępy będzie ładniejszy kod :grin: i fs_bar 4. I u mnie jest OK w tym przypadku, tylko że przestałem bawić się z tymi skryptami bo znów:

Kod: Zaznacz cały

Conky: statfs '/media/jakieś_usb': No such file or directory
Poczekam na lepsze (w)czasy. :boat:

Powodzenia!
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [Solved] Conky - konfiguracja skryptu USB

Post autor: COVERek »

jest to samo. ;] a spacje musza byc w mojej konfiguracji, bo odstep jest potrzebny na poczatku. :P
Linux User #462372 || Ubuntu User #20118
urgentino
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 23 kwie 2009, 16:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Xfce
Architektura: x86

Odp: [Solved] Conky - konfiguracja skryptu USB

Post autor: urgentino »

Teraz to ja naprawdę nie wiem bo wziąłem ten Twój skrypt bez poprawek i u mnie jest OK - oto dowód:

Obrazek

A zobacz jeszcze jak działa Tobie ten Python-Script-Conky-Disks.
Bo jak i ten nic i inne czyli może któryś z import'ów pythona nie łapie, albo czegoś w systemie brakuje.

Powodzenia!
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości