Eine frohe Adventszeit wünscht Apfeltalk
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Unser Dezember-Wettbewerb steht unter dem Thema Zeitreise - Macht mit und beteiligt Euch mit Euren kreativen Fotos! Zum Wettbewerb --> Klick

GeekTool - Systemmonitoring auf dem Desktophintergrund

Nobbi

Empire
Registriert
30.12.06
Beiträge
88
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
 

Nobbi

Empire
Registriert
30.12.06
Beiträge
88
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
 

Phero

Idared
Registriert
24.07.10
Beiträge
24
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
 

Phero

Idared
Registriert
24.07.10
Beiträge
24
Und noch was (editieren geht bei mir auch nicht :oops:):

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
 

Nobbi

Empire
Registriert
30.12.06
Beiträge
88
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'
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
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...
 

erikdietz

Morgenduft
Registriert
10.05.07
Beiträge
164
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
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
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.
 

erikdietz

Morgenduft
Registriert
10.05.07
Beiträge
164
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 :cool:
 

erikdietz

Morgenduft
Registriert
10.05.07
Beiträge
164
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...
 

erikdietz

Morgenduft
Registriert
10.05.07
Beiträge
164
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?
 

Macnum

Martini
Registriert
28.07.10
Beiträge
659
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
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
hast du den Pfad ordentlich escaped (mit \ oder Anführungszeichen)? So, wies gepostet ist mit dem Leerzeichen, funktionierts sicher nicht.
 
  • Like
Reaktionen: Macnum

Macnum

Martini
Registriert
28.07.10
Beiträge
659
also sollte es eher so aussehen? (wenn das nicht stimmt pls Korrekturcode posten)

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

ich werds mal probieren...
 

Macnum

Martini
Registriert
28.07.10
Beiträge
659
ok habs jetzt...
hab den teuflischen Ordner umbenannt und die Leerzeichen entfernt...
Es funktioniert, danke :)
 

D-Account

Kaiser Wilhelm
Registriert
09.06.09
Beiträge
178
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.