• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

GeekTool - Systemmonitoring auf dem Desktophintergrund

Ich habe das Skript mit den Wetterdaten nochmal aktualisiert
Code:
curl --silent "http://de.weather.yahoo.com/deutschland/nordrhein-westfalen/eschweiler-12834433/" | grep "forecast-icon" | sed "s/.*background\:url(\'\(.*\)\')\;\ _background.*/\1/" | xargs curl --silent -o /tmp/weather.png\

curl --silent "http://de.weather.yahoo.com/deutschland/nordrhein-westfalen/eschweiler-12834433/" >  /tmp/weather.txt

grep -E 'Gefühlte Temperatur:' /tmp/weather.txt |  grep -E 'Gefühlte Temperatur:' /tmp/weather.txt | sed -E 's/ .*Gefühlte Temperatur://' | sed -e 's/ *[^0-9] //' | sed -e 's/\<\/.*temp\"\>//' | sed -e 's/\&.*//' | tail -n1 | awk '{print "Temperatur: " $(NF-1) " Grad" }'

grep -e 'Luftdruck:' /tmp/weather.txt | sed -e 's/ .*relative\;\"\>//' -e 's/ .*[^0-9] //' -e 's/\<\/script\>\<\/div\>\<div\>\<\/div\>\<div//' -e 's/\".*//' | tail -n1 | awk ' {print "Luftdruck: "  $(NF-1) " mbar"}'

grep -e 'Luftfeuchtigkeit:' /tmp/weather.txt | sed -e 's/\%.*//' -e 's/.*Luftfeuchtigkeit:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Luftfeuchtigkeit: " $(NF-1) "%"} '

grep -e 'Sichtweite:' /tmp/weather.txt | sed -e 's/km.*//' -e 's/.*Sichtweite:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Sichtweite: " $(NF) " km"}'

grep -e 'Taupunkt:' /tmp/weather.txt | sed -e 's/\&\#176.*//' -e 's/.*Taupunkt:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Taupunkt: " $(NF-1) "°C"} '

grep -e 'Sonnenaufgang:' /tmp/weather.txt | sed -e 's/.*Sonnenaufgang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' | tail -n1 | awk '{print "Sonnenaufgang: " $(NF-1)} '

grep -e 'Sonnenuntergang:' /tmp/weather.txt | sed -e 's/.*Sonnenuntergang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' | tail -n1 | awk '{print "Sonnenuntergang: " $(NF-1)} '

grep -e 'Heute' /tmp/weather.txt | sed -e 's/Morgen.*//' -e 's/\;\<\/.*//' -e 's/.*Max\://' -e 's/\&\#176\;//' -e 's/\&\#176//' |tail -n1 |awk '{print"Heute " $(NF) "-" $(NF-3)"°C"}'

grep -e 'Morgen' /tmp/weather.txt | sed -e 's/.*Morgen//' -e 's/&#176\;\<\/div\>\<\/div\>\<\/div\>\<div class\=\"yui-gb.*//' -e 's/.*Max: //' -e 's/\&\#176\;//' | tail -n1|awk '{print"Morgen " $(NF) "-" $(NF-3)"°C"}'

rm /tmp/weather.txt
 
da war noch ein kleiner Bug drin, da ich meine Beträge nicht editieren an, muss es so gehen:
Code:
curl --silent "http://de.weather.yahoo.com/deutschland/nordrhein-westfalen/eschweiler-12834433/" | grep "forecast-icon" | sed "s/.*background\:url(\'\(.*\)\')\;\ _background.*/\1/" | xargs curl --silent -o /tmp/weather.png\

curl --silent "http://de.weather.yahoo.com/deutschland/nordrhein-westfalen/eschweiler-12834433/" >  /tmp/weather.txt

grep -E 'Gefühlte Temperatur:' /tmp/weather.txt |  grep -E 'Gefühlte Temperatur:' /tmp/weather.txt | sed -E 's/ .*Gefühlte Temperatur://' | sed -e 's/ *[^0-9] //' | sed -e 's/\<\/.*temp\"\>//' | sed -e 's/\&.*//' | tail -n1 | awk '{print "Temperatur: " $(NF-1) " Grad" }'

grep -e 'Luftdruck:' /tmp/weather.txt | sed -e 's/ .*relative\;\"\>//' -e 's/ .*[^0-9] //' -e 's/\<\/script\>\<\/div\>\<div\>\<\/div\>\<div//' -e 's/\".*//' | tail -n1 | awk ' {print "Luftdruck: "  $(NF-1) " mbar"}'

grep -e 'Luftfeuchtigkeit:' /tmp/weather.txt | sed -e 's/\%.*//' -e 's/.*Luftfeuchtigkeit:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Luftfeuchtigkeit: " $(NF-1) "%"} '

grep -e 'Sichtweite:' /tmp/weather.txt | sed -e 's/km.*//' -e 's/.*Sichtweite:\<\/dt\>\<dd\>//' -e 's/\<\/dd\>\<dt\>Taupunkt\:.*//'  | tail -n1 | awk '{print "Sichtweite: " $(NF) " km"}'

grep -e 'Taupunkt:' /tmp/weather.txt | sed -e 's/\&\#176.*//' -e 's/.*Taupunkt:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Taupunkt: " $(NF-1) "°C"} '

grep -e 'Sonnenaufgang:' /tmp/weather.txt | sed -e 's/.*Sonnenaufgang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' -e 's/h/:/g' | tail -n1 | awk '{print "Sonnenaufgang: " $(NF-1)} '

grep -e 'Sonnenuntergang:' /tmp/weather.txt | sed -e 's/.*Sonnenuntergang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' -e 's/h/:/g' | tail -n1 | awk '{print "Sonnenuntergang: " $(NF-1)} '

grep -e 'Heute' /tmp/weather.txt | sed -e 's/Morgen.*//' -e 's/\;\<\/.*//' -e 's/.*Max\://' -e 's/\&\#176\;//' -e 's/\&\#176//' |tail -n1 |awk '{print"Heute " $(NF) "-" $(NF-3)"°C"}'

grep -e 'Morgen' /tmp/weather.txt | sed -e 's/.*Morgen//' -e 's/&#176\;\<\/div\>\<\/div\>\<\/div\>\<div class\=\"yui-gb.*//' -e 's/.*Max: //' -e 's/\&\#176\;//' | tail -n1|awk '{print"Morgen " $(NF) "-" $(NF-3)"°C"}'

rm /tmp/weather.txt
 
Hallo :)

Da ich leider absolut unbegabt bin in solchen Sachen habe ich eine kleine Frage zu dem ganzen. Habe es geschafft, iCal Daten und aktuelle Temperatur auf dem Schreibtisch darzustellen. Kann auch so etwas eingebunden werden?

Wetter

Und wenn ja - wie?

Besten Dank im Voraus.

Grüsse
 
Und noch was (editieren geht bei mir auch nicht :o):

Was stimmt bei diesem Code nicht? Habe den obigen kopiert (danke dafür!) und die beiden Links für Zürich eingefügt. Jedoch zeigt es mir so gar nichts an...

Code:
curl --silent "http://weather.yahoo.com/switzerland/canton-of-zurich/zurich-784794/" | grep "forecast-icon" | sed "s/.*background\:url(\'\(.*\)\')\;\ _background.*/\1/" | xargs curl --silent -o /tmp/weather.png\

curl --silent "http://weather.yahoo.com/switzerland/canton-of-zurich/zurich-784794/" >  /tmp/weather.txt

grep -E 'Gefühlte Temperatur:' /tmp/weather.txt |  grep -E 'Gefühlte Temperatur:' /tmp/weather.txt | sed -E 's/ .*Gefühlte Temperatur://' | sed -e 's/ *[^0-9] //' | sed -e 's/\<\/.*temp\"\>//' | sed -e 's/\&.*//' | tail -n1 | awk '{print "Temperatur: " $(NF-1) " Grad" }'

grep -e 'Luftdruck:' /tmp/weather.txt | sed -e 's/ .*relative\;\"\>//' -e 's/ .*[^0-9] //' -e 's/\<\/script\>\<\/div\>\<div\>\<\/div\>\<div//' -e 's/\".*//' | tail -n1 | awk ' {print "Luftdruck: "  $(NF-1) " mbar"}'

grep -e 'Luftfeuchtigkeit:' /tmp/weather.txt | sed -e 's/\%.*//' -e 's/.*Luftfeuchtigkeit:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Luftfeuchtigkeit: " $(NF-1) "%"} '

grep -e 'Sichtweite:' /tmp/weather.txt | sed -e 's/km.*//' -e 's/.*Sichtweite:\<\/dt\>\<dd\>//' -e 's/\<\/dd\>\<dt\>Taupunkt\:.*//'  | tail -n1 | awk '{print "Sichtweite: " $(NF) " km"}'

grep -e 'Taupunkt:' /tmp/weather.txt | sed -e 's/\&\#176.*//' -e 's/.*Taupunkt:\<\/dt\>\<dd\>//' | tail -n1 | awk '{print "Taupunkt: " $(NF-1) "°C"} '

grep -e 'Sonnenaufgang:' /tmp/weather.txt | sed -e 's/.*Sonnenaufgang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' -e 's/h/:/g' | tail -n1 | awk '{print "Sonnenaufgang: " $(NF-1)} '

grep -e 'Sonnenuntergang:' /tmp/weather.txt | sed -e 's/.*Sonnenuntergang:\<\/dt\>\<dd\>//' -e 's/Uhr.*//' -e 's/h/:/g' | tail -n1 | awk '{print "Sonnenuntergang: " $(NF-1)} '

grep -e 'Heute' /tmp/weather.txt | sed -e 's/Morgen.*//' -e 's/\;\<\/.*//' -e 's/.*Max\://' -e 's/\&\#176\;//' -e 's/\&\#176//' |tail -n1 |awk '{print"Heute " $(NF) "-" $(NF-3)"°C"}'

grep -e 'Morgen' /tmp/weather.txt | sed -e 's/.*Morgen//' -e 's/&#176\;\<\/div\>\<\/div\>\<\/div\>\<div class\=\"yui-gb.*//' -e 's/.*Max: //' -e 's/\&\#176\;//' | tail -n1|awk '{print"Morgen " $(NF) "-" $(NF-3)"°C"}'

rm /tmp/weather.txt
 
PS. Hast du die Script-Datei ausführbar gemacht? Bsp. 'chmod 755 wetter.sh', testen kannst du das dann im Terminal mit dem Aufruf 'sh wetter.sh'
 
Du solltest auch so ne sh-Datei mit "sh datei.sh" starten können, ohne die Rechteänderung.
Aber ich denke eh nicht, dass er die Code-Zeilen in extra sh-Dateien kopiert hat...
 
Hey, ich habe eine Frage. Ich habe folgenden Code im Netz gefunden.
Dieser gibt mir die Aktivitäten auf meinem WebServer aus.

Code:
tail -10 /var/log/apache2/access_log
Nun hab ich aber so viele überflüssige Informationen drin, die ich gerne rausfiltern würde.
Kann mir einer sagen wie?

Hier mal mein Output:

Code:
xx.5.191.94 - - [10/Sep/2010:18:11:30 +0200] "GET /icons/unknown.gif HTTP/1.1" 304 -
xx.5.191.94 - - [10/Sep/2010:18:11:30 +0200] "GET /icons/back.gif HTTP/1.1" 304 -
xx.5.191.94 - - [10/Sep/2010:18:11:42 +0200] "GET /ordner/MW2MP.part5.rar HTTP/1.1" 401 401
xx.12.4.205 - - [10/Sep/2010:18:11:51 +0200] "GET /ordner/MW2MP.part5.rar HTTP/1.1" 401 401
xx.5.191.94 - benutzername [10/Sep/2010:18:14:12 +0200] "GET /ordner/ HTTP/1.1" 200 1308
xx.5.191.94 - - [10/Sep/2010:18:14:16 +0200] "GET /icons/blank.gif HTTP/1.1" 304 -
xx.5.191.94 - - [10/Sep/2010:18:14:17 +0200] "GET /icons/back.gif HTTP/1.1" 304 -
xx.5.191.94 - - [10/Sep/2010:18:14:17 +0200] "GET /icons/unknown.gif HTTP/1.1" 304 -
xx.5.191.94 - benutzername [10/Sep/2010:18:13:18 +0200] "GET /ordner/MW2MP.part5.rar HTTP/1.1" 200 100558298
xx.12.4.205 - benutzername [10/Sep/2010:18:11:53 +0200] "GET /ordner/MW2MP.part5.rar HTTP/1.1" 200 100558298
Das ganze habe ich schon lesbarer gemacht indem ich folgenden Terminus gewählt habe:

Code:
tail -5 /var/log/apache2/access_log | awk '{print $3,$1,$4,$7}' | uniq
Output:

Code:
- xx.5.191.94 [10/Sep/2010:18:14:17 /icons/back.gif
- xx.5.191.94 [10/Sep/2010:18:14:17 /icons/unknown.gif
benutzername xx.5.191.94 [10/Sep/2010:18:13:18 /ordner/MW2MP.part5.rar
benutzername xx.12.4.205 [10/Sep/2010:18:11:53 /ordner/MW2MP.part5.rar
benutzername xx.12.4.205 [10/Sep/2010:18:14:45 /ordner/MW2MP.part4.rar
Wo ich auch schon bei meinem Problem bin.

Wie kann ich die ersten beiden Zeilen ausblenden?
Also nicht immer die ersten beiden Zeilen, das änder sich ja immer :-p

Weil mich interessiert nur, welcher Nutzer auf welche Datei zugreift.
Also vllt das man alle Zeilen ausblendet, die icons/back.gif oder icons/unknown.gif enthalten. Irgendwo so...

Werde mich mal weiter belesen, bin grad auf den "sed"-Befehl gestoßen... Vllt krieg ich's ja selbst hin...

lg und nen schönen Feierabend an alle
 
das einfachste was mir einfällt ist grep:

mit grep "string" bleiben alle Zeilen, die String enthalten.
mit grep -v "string" bleiben alle Zeilen, die den String NICHT enthalten.

Damit könntest du direkt Zeilen ausblenden, welche bestimmte Textteile enthalten (zB. in deinem Output alle Zeilen, die ein "-" enthalten).

Aber um das allgemeingülig zu machen, sind reguläre Ausdrücke sicherlich die bessere Variante (--> sed). Aber da kann ich die im Moment nix fertiges auf die Schnelle sagen.
 
also ich bin ein schritt weiter... denn mit
Code:
sed -n '/icons/!p'
kann ich zB alle Zeilen ausblenden, die die besagten Inhalte enthalten. Das ganze hat jedoch einen Nachteil... Wenn von den letzten 5 Zeilen 2 diesen String enthalten, werden nur noch 3 Zeilen ausgegeben.

Aber ich bleib am Ball 8-)
 
Ich würd meinen eigenen Beitrag ja editieren, aber ich finde grad nicht wo...

Ich hab das Problem jetzt so gelöst, dass ich nur alle Zeilen ausgebe, die nur den Inhalt "ordner" enthalten.
somit hab ich alle Dinge erfasst, die wirklich auf den Ordner zugreifen.
Alles andere wird ignoriert.

Jetzt hab ich jedoch nach wie vor das Problem, dass eben von den 5 Zeilen nur 3 ausgegeben werden, wenn 2 andere wieder auf einen anderen Pfad zufgreifen. Vllt finde ich da ja was...
 
Ausgabe formatieren?

Habe jetzt eine tolle Ausgabe hinbekommen, aber die ist unformatiert...

Code:
xx.xx.144.224 namekurz   [11/Sep/2010:11:39:52 /icons/*.gif
xx.xx.144.224 einlangername [11/Sep/2010:11:39:09 /sh4re/test.gif
xx.xx.144.224 einlangername [11/Sep/2010:11:39:38 /sh4re/test.gif
xx.xx.159.132 einlangername [11/Sep/2010:12:53:16 /sh4re/
xx.xx.159.132 namekurz   [11/Sep/2010:12:53:35 /sh4re/
xx.xx.159.132 namekurz [11/Sep/2010:12:53:49 /sh4re/
xx.xx.159.132 namekurz [11/Sep/2010:12:54:03 /sh4re/
xx.xx.159.132 einlangername [11/Sep/2010:12:55:42 /sh4re/
xx.xx.159.132 namekurz   [11/Sep/2010:12:55:44 /icons/*.gif
xx.xx.159.132 einlangername [11/Sep/2010:12:55:51 /sh4re/
xx.xx.159.132 namekurz   [11/Sep/2010:12:55:54 /icons/*.gif
Wie bekomm ich das hin, dass ich das alles in "Spalten" ausgegeben bekomme?

Code:
xx.xx.144.224 namekurz        [11/Sep/2010:11:39:52 /icons/*.gif
xx.xx.144.224 einlangername   [11/Sep/2010:11:39:09 /sh4re/test.gif
xx.xx.144.224 einlangername   [11/Sep/2010:11:39:38 /sh4re/test.gif
xx.xx.159.132 einlangername   [11/Sep/2010:12:53:16 /sh4re/
xx.xx.159.132 namekurz        [11/Sep/2010:12:53:35 /sh4re/
xx.xx.159.132 namekurz        [11/Sep/2010:12:53:49 /sh4re/
xx.xx.159.132 namekurz        [11/Sep/2010:12:54:03 /sh4re/
xx.xx.159.132 einlangername   [11/Sep/2010:12:55:42 /sh4re/
xx.xx.159.132 namekurz        [11/Sep/2010:12:55:44 /icons/*.gif
xx.xx.159.132 einlangername   [11/Sep/2010:12:55:51 /sh4re/
xx.xx.159.132 namekurz        [11/Sep/2010:12:55:54 /icons/*.gif
Also ich hab das jetzt nur manuell eingerückt, aber ihr wisst sicher was ich meine...

Und noch was, wie bekomm ich die eckige Klammer am Ende des Datums hin?
Bzw wie bekomm ich die am Anfang weg?
 
Habe ein echt nerviges Problem...

Versuche seit geraumer Zeit ein externes Script unter GT V3.0 (A12) zu laden aber mit
Code:
osascript /GT Scripte/albumartist.scpt

bekomme ich nur einen Fehlerindikator, keine Fehlermeldung o.ä.
Script funktioniert, habe es schon mit dem AS-Editor getestet.

Habe die Datei extra auf die erste Ebene der Festplatte gepackt in der Hoffnung, dass die ganze Sache dann einfacher wird, allerdings ohne Ergebnis.

Weiß ehrlich gesagt nichtmehr weiter, auf allen Seiten steht, dass man über den "osascript" Befehl externe scripte einbinden kann, aber im Moment klappt gar nichts...
Normale Shells wie die Datumsanzeige funktionieren super, also ich bin einfach am Ende mit meinem Latein.
Erbitte dringend Hilfe!

Mfg Macnum
 
hast du den Pfad ordentlich escaped (mit \ oder Anführungszeichen)? So, wies gepostet ist mit dem Leerzeichen, funktionierts sicher nicht.
 
  • Like
Reaktionen: Macnum
also sollte es eher so aussehen? (wenn das nicht stimmt pls Korrekturcode posten)

Code:
osascript"/GT Scripte/albumartist.scpt"

ich werds mal probieren...
 
ok habs jetzt...
hab den teuflischen Ordner umbenannt und die Leerzeichen entfernt...
Es funktioniert, danke :)
 
Hab heute meinen ersten "großen" Script geschrieben.

Es gibt die aktuellen Top 10 Kinofilme aus. Als Quelle dient BoxOffice.com.

Code:
curl --silent "http://www.boxoffice.com/statistics/homepage" |
grep -E '(</th><th class="number">Weekend</th><th)' |
sed -e 's/<th class="first home_text_name">[-a-zA-Z0-9,. ]*<\/th>//g' -e 's/<td class="number">$[0-9,]*<\/td>//g' -e 's/ *<[-a-zA-Z0-9=":;%\/ _]*>//g' -e 's/WeekendTotal//g' -e "s/<a href='[-a-zA-Z0-9\/_]*'>/;/g" -e 's/;//1' | 
awk -F\; '{
printf "1.\t%s\n2.\t%s\n3.\t%s\n4.\t%s\n5.\t%s\n6.\t%s\n7.\t%s\n8.\t%s\n9.\t%s\n10.\t%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10
}'


Es ist vielleicht nicht der beste Code, ich studiere noch. Daher würde ich mich sehr freuen, wenn es Optimierungstips gibt. :)

Und noch etwas zu den iTunes Geeklets: Ich hatte sie auch, hab sie jedoch wieder gelöscht. Sind zwar toll (ausser iTunesCover Geeklet, was nicht funktionierte) haben mich aber gestört, wenn die Infos immer verzögert von einander aktualisierten, weil ich sie mit unterschiedlichen Geeklets realisiert hatte. Sprich Songtitel ein Geeklet und Singer ein anderes Geeklet.

Daher nutze ich nun Bowtie, es zeigt mir Infos und Cover an. Man kann damit auch iTunes steuern und Last.FM bedienen. Siehe Screenshot.

Viel Spaß mit dem Code und passt es euch an und verteilt es weiter.