Conky, conkyrc e scripting bash

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Conky, conkyrc e scripting bash

Messaggio da danix »

Salve a tutti...
mi stavo chiedendo quanti di voi utilizzino conky per monitorare il sistema, e che tipo di utilizzo ne fate...
mi piacerebbe raccogliere un po' delle vostre esperienze per migliorare un po' il mio conkyrc che già adesso è molto ricco di informazioni... vi faccio vedere uno screenshot per darvi un'idea...
Immagine

Io utilizzo vari script in conky, uno per leggere la posta in arrivo di gmail, uno per visualizzare lo stato di amarok e uno per visualizzare il mio indirizzo ip (quest'ultimo l'ho scritto tutto io e ve lo posto :) )

Codice: Seleziona tutto

#! /bin/bash

# myip.sh - script che legge l'indirizzo il dal sito "http://myip.dk/"

downloaddir=~/.scripts/myipdown/

if [[ ! -d $downloaddir ]]
then
        mkdir $downloaddir
        cd $downloaddir
else
        cd $downloaddir
fi

wget -q http://myip.dk/

cat index.html |cut -d"
" -f 28 |cut -d" " -f 5 |cut -d">" -f 3 |cut -b -13

che ne pensate??

Voi che script utilizzate?? Non sarebbe male raccogliere un pò di idee in questo thread e fare anche una pagina del wiki dal momento che la pagina ufficiale degli screenshot di conky è un pochino outdated, molti link sono down e molti script non funzionano...

Spero di ricevere qualche risposta...
Ciau a tutti...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

Io uso conky da qualche tempo, ma senza script particolari

Però rilancio e chiedo: come faccio a visualizzare la frequenza di entrambi i processori su un dual core? (nel caso che voglia dare frequenze diverse)
qualche idea sul perchè in fase di scarica l'indicatore di batteria mi dica "full", mentre in carica riporta correttamente la carica attuale?

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

ti posso rispondere per quanto riguarda il processore, devi utilizzare cpu0 per il primo dei 2 processori cpu1 per il secondo e così via...
Prova a dare un'occhiata alla pagina delle variabili di conky per maggiori spiegazioni...

Per la batteria non saprei dirti dal momento che non sono su un portatile...

Ciau
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

nel caso in cui a qualcuno potessero interessare posto i vari script che uso per arricchire conky:

myip (versione aggiornata e corretta)

Codice: Seleziona tutto

#! /bin/bash

# myip.sh - script che legge l'indirizzo ip dal sito "http://myip.dk/"

downloaddir=/home/danix/.scripts/myipdown/
ipnum=[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]

if [[ ! -d $downloaddir ]]
then
        mkdir $downloaddir
        cd $downloaddir
else
        cd $downloaddir
        rm ./*
fi

wget -q http://myip.dk/

line=$(cat index.html | cut -d"
" -f4 |cut -b 17- |cut -d"<" -f1 -s)

echo $line

which_governor (script per visualizzare il governor attuale della cpu, richiede che siano installati i cpufreq-tools)

Codice: Seleziona tutto

#! /bin/bash

# script che visualizza il gestore utilizzato per la frequenza della cpu

cpufreq-info | cut -d'
' -f10 | cut -d'"' -f2

amaroker (script per visualizzare le info di amarok - preso dalla pagina degli screenshot di conky)

Codice: Seleziona tutto

#!/bin/bash
# amaroK info display script by eirc <eirc.eirc@gmail.com>
#
# requirements: amaroK (!)
# for Collection stats to work amarok must be using
# mySQL to store it's collection

case "$1" in

# Now Playing Info
artist) dcop amarok player artist ;;
title)  dcop amarok player title ;;
album)  dcop amarok player album ;;
year)   dcop amarok player year ;;
genre)  dcop amarok player genre ;;
progress)
    curr=`dcop amarok player trackCurrentTime`
    tot=`dcop amarok player trackTotalTime`
    if (( $tot )); then
        expr $curr \* 100  / $tot
    fi
    ;;

# Collection Info
totalArtists)      dcop amarok collection totalArtists ;;
totalAlbums)       dcop amarok collection totalAlbums ;;
totalTracks)       dcop amarok collection totalTracks ;;
totalGenres)       dcop amarok collection totalGenres ;;
totalCompilations) dcop amarok collection totalCompilations ;;

# Collection Stats
most_songs_by_artist) dcop amarok collection query 'SELECT t1.name FROM artist t1 INNER JOIN tags t2 ON t1.id = t2.artist GROUP BY t2.artist ORDER BY COUNT(t2.artist) DESC LIMIT 1;' ;;
most_songs_by_artist_n) dcop amarok collection query 'SELECT count(t2.artist) FROM artist t1 INNER JOIN tags t2 ON t1.id = t2.artist GROUP BY t2.artist ORDER BY COUNT(t2.artist) DESC LIMIT 1;' ;;
most_songs_are_genre) dcop amarok collection query 'SELECT t1.name FROM genre t1 INNER JOIN tags t2 ON t1.id = t2.genre GROUP BY t2.genre ORDER BY COUNT(t2.genre) DESC LIMIT 1;' ;;
most_songs_are_genre_n) dcop amarok collection query 'SELECT count(t2.genre) FROM genre t1 INNER JOIN tags t2 ON t1.id = t2.genre GROUP BY t2.genre ORDER BY COUNT(t2.genre) DESC LIMIT 1;' ;;
most_songs_during_year) dcop amarok collection query 'SELECT t1.name FROM year t1 INNER JOIN tags t2 ON t1.id = t2.year GROUP BY t2.year ORDER BY COUNT(t2.year) DESC LIMIT 1;' ;;
most_songs_during_year_n) dcop amarok collection query 'SELECT count(t2.year) FROM year t1 INNER JOIN tags t2 ON t1.id = t2.year GROUP BY t2.year ORDER BY COUNT(t2.year) DESC LIMIT 1;' ;;
most_albums_by_artist) dcop amarok collection query 'SELECT name FROM artist WHERE id=(SELECT t1.artist from (SELECT artist FROM tags GROUP BY album) AS t1 GROUP BY t1.artist ORDER BY count(artist) DESC LIMIT 1);' ;;
most_albums_by_artist_n) dcop amarok collection query 'SELECT count(artist) from (SELECT artist FROM tags GROUP BY album) AS t1 GROUP BY t1.artist ORDER BY count(artist) DESC LIMIT 1;' ;;
most_albums_are_genre) dcop amarok collection query 'SELECT name FROM genre WHERE id=(SELECT t1.genre from (SELECT genre FROM tags GROUP BY album) AS t1 GROUP BY t1.genre ORDER BY count(genre) DESC LIMIT 1);' ;;
most_albums_are_genre_n) dcop amarok collection query 'SELECT count(genre) from (SELECT genre FROM tags GROUP BY album) AS t1 GROUP BY t1.genre ORDER BY count(genre) DESC LIMIT 1;' ;;
most_albums_during_year) dcop amarok collection query 'SELECT name FROM year WHERE id=(SELECT t1.year from (SELECT year FROM tags GROUP BY album) AS t1 GROUP BY t1.year ORDER BY count(year) DESC LIMIT 1);' ;;
most_albums_during_year_n) dcop amarok collection query 'SELECT count(year) from (SELECT year FROM tags GROUP BY album) AS t1 GROUP BY t1.year ORDER BY count(year) DESC LIMIT 1;' ;;

esac

conky-rss.sh (script che legge un feed rss, adattato per leggere la posta in arrivo di gmail)

Codice: Seleziona tutto

#!/bin/bash
# RSS Display Script by Bill Woodford (admin@sdesign.us) v1.0
#
# This script is designed to output story titles for most any RSS Feed.
#
# This script depends on curl.  Please ensure it is installed and in your $PATH
# Gentoo: emerge -av net-misc/curl
# Debian: apt-get install curl
# Homepage: http://curl.haxx.se/
#
# Usage:
# .conkyrc:     ${execi [time] /path/to/script/conky-rss.sh URI LINES TITLENUM}
#       URI = Location of feed, ex. http://www.gentoo.org/rdf/en/glsa-index.rdf
#       LINES = How many titles to display (default 5)
#       TITLENUM = How many times the title of the feed itself is specified, usually 1 or 2 (default 2)
#
# Usage Example
#               ${execi 300 /home/youruser/scripts/conky-rss.sh http://www.foxnews.com/xmlfeed/rss/0,4313,1,00.rss 4 2}

#RSS Setup - Don't change unless you want these values hard-coded!
### info modificate per essere utilizzate con gmail
uri=https://user:password@mail.google.com/mail/feed/atom
lines=15  ### linee da visualizzare
titlenum=1   ### numero di ripetizioni del titolo del feed

#Script start
#Require a uri, as a minimum
if [[ "$uri" == "" ]]; then
        echo "No URI specified, cannot continue!" >&2
        echo "Please read script for more information" >&2
else
        #Set defaults if none specified
        if [[ $lines == "" ]]; then lines=5 ; fi
        if [[ $titlenum == "" ]]; then titlenum=2 ; fi

        #The actual work
        curl -s --connect-timeout 30 $uri |\
        sed -e 's/<\/title>/\n/g' |\
        grep -o '<title>.*' |\
        sed -e 's/<title>//' |\
        head -n $(($lines + $titlenum)) |\
        tail -n $(($lines))
fi
ho inserito inoltre un comando che conta il numero di tgz installati nel sistema:

Codice: Seleziona tutto

${texeci 300 ls /var/log/packages 2> /dev/null |wc -c}
e utilizzando hddtemp ho inserito il monitoraggio della temperatura dell'hard disk con questo comando:

Codice: Seleziona tutto

${execi 30 hddtemp SATA:/dev/sda |cut -d" " -f5}
Spero possano interessare e/o tornare utili a qualcuno...

Ciau...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

danix come fai a usare hddtemp da utente normale? anche se gli scrivo il path completo mi dice che non ho accesso a /dev/sda

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

puoi postare l'errore completo che ti restituisce??

a me sinceramente non da errori...

[EDIT]
ora che ci penso (scusami se ti sto chiedendo una cosa banale), hai un disco IDE o S-ATA/SCSI??

Nel caso tu abbia IDE il device giusto non è /dev/sda ma /dev/hd? (? può essere una lettera qualsiasi da A a P se non sbaglio)
Mentre se hai un S-ATA / SCSI allora può darsi che tu stia sbagliando la lettera finale del device, magari non è sda ma sdb... controlla bene perchè non mi sembra che hddtemp sià solo per root...

Ti ripeto, scusami se ti ho chiesto una cosa che per te è banale...ma io non posso saperlo...

Ciau
Ultima modifica di danix il lun 11 giu 2007, 21:50, modificato 1 volta in totale.
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

Allora, io aggiungo la riga

Codice: Seleziona tutto

${execi 30 /usr/sbin/hddtemp SATA:/dev/sda |cut -d" " -f5}
e mi restituisce l'errore
/dev/sda: Operation not permitted
invece con

Codice: Seleziona tutto

${execi 30 /usr/sbin/hddtemp /dev/sda |cut -d" " -f5}
mi restituisce l'errore
/dev/sda: Permission denied
Ovviamente il mio disco è su /dev/sda e il file ha permessi di lettura e scrittura per root e gruppo disk, del quale faccio parte

Lanciando hddtemp separatemente, apparte un warning sul fatto che il disco non è presente in database, ottengo il modello e la temperatura

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

Ok ho risolto settando il bit suid di hddtemp, potevo pensarci prima in effetti... :lol:

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

ok, mi hai risposto anche alle domande che ti avevo posto dopo...

sono felice che tu abbia risolto...

a presto
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

controllando meglio io avevo ovviato al tuo stesso problema creando un link simbolico in /usr/bin all'eseguibile hddtemp che di norma si trova in /usr/sbin...

non ricordavo, scusami...

Ciau
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

danix85 ha scritto: which_governor (script per visualizzare il governor attuale della cpu, richiede che siano installati i cpufreq-tools)

Codice: Seleziona tutto

#! /bin/bash

# script che visualizza il gestore utilizzato per la frequenza della cpu

cpufreq-info | cut -d'
' -f10 | cut -d'"' -f2

lo puoi fare senza cpufreq:

Codice: Seleziona tutto

bash-3.2$ echo current governor: `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`
current governor: userspace
M

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

Una piccola modifica, per hddtemp puoi usare i flag numeric e quiet (es. hddtemp -nq) così che visualizzi solo la temperatura nel suo valore numerico, poi aggiungi °C in fondo

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

grandi ragazzi, lo sapevo che sarebbe venuto fuori qualcosa di interessante...
e dello script per leggere l'ip che ne dite?? guardate quello che ho postato per ultimo però...
fatemi sapere se avete idee o suggerimenti...

Ciau
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
alessiodf
Linux 3.x
Linux 3.x
Messaggi: 823
Iscritto il: ven 14 ott 2005, 21:04
Slackware: current
Kernel: 2.6.26.4
Desktop: Kde 4.1
Località: Roma
Contatta:

Messaggio da alessiodf »

omg concky ciuccia troppa cpu :(

molto meglio gkrellm

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

alessiodf ha scritto:omg concky ciuccia troppa cpu :(

molto meglio gkrellm
Davvero? però conky non è grafico, sono solo righe di testo, e comunque è molto più personalizzabile di gkrellm

Rispondi