Hi,
ich möchte nach erfolgreichem download eine Mail an den User versenden, damit der weiss es gibt was neues.
kann ich den rc-code abfragen ?
wget -r ftp://userspace
Meldung von wget
downloaded xy byte in x files !!!!!!!!!
Wie kann ich dies auswerten, ohne die Dateien vergleichen zu müssen die geladen wurden ?
Bin für jeden Tipp dankbar
Tom
Abfrage des returncodes von wget
Re: Abfrage des returncodes von wget
Leider ist die Doku zu wget betreffs seiner Exitcodes sehr dürftig - um genau zu sein, nicht-existent. Aus dem Stegreif würde ich aber sagen, Exitcode 0 bei Download aller Dateien (auch keiner, wenn keine neuen dazugekommen sind) und Exitcode >0 bei Problemen (kein Connect usw.). Um den Exitcode selbst zu untersuchen, kannst Du natürlich nach wget-Aufrufen Die Shell-variable $? auswerten. Dort wird der Exitcode des zuletzt ausgeführten Kommandos gespeichert.
So wie sich Deine Frage liest, willst Du aber ganz was anderes, nämlich eine Analyse der Ausgabe von wget statt des Exitcodes. Richtig? Dazu böten sich Tools wie awk/sed/perl usw. an.
Jochen
So wie sich Deine Frage liest, willst Du aber ganz was anderes, nämlich eine Analyse der Ausgabe von wget statt des Exitcodes. Richtig? Dazu böten sich Tools wie awk/sed/perl usw. an.
Jochen
Re: Abfrage des returncodes von wget
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">wget -r ftp://userspace | sed -e '/^Downloaded/{
s/^Downloaded \<!--no-->([0-9,][0-9,]*\<!--no-->) bytes in \<!--no-->([0-9][0-9]*\<!--no-->) files/\<!--no-->1 \<!--no-->2/
s/,//g
}'</font><hr></pre></blockquote>Das sed-Skript lässt nur die Bytes (ohne Tausender-Komma) und die Anzahl übertragener Dateien übrig. Wenn Dir einer der beiden Werte reicht, streiche einfach \<!--no-->1 oder \<!--no-->2 im ersten Substitute-Kommando. Merke Dir den Wer in einer Variable und verschicke dementsprechend Mail.
Ist das ein erster Ansatz, oder hattest Du Dir was ganz anderes vorgestellt?
Jochen
s/^Downloaded \<!--no-->([0-9,][0-9,]*\<!--no-->) bytes in \<!--no-->([0-9][0-9]*\<!--no-->) files/\<!--no-->1 \<!--no-->2/
s/,//g
}'</font><hr></pre></blockquote>Das sed-Skript lässt nur die Bytes (ohne Tausender-Komma) und die Anzahl übertragener Dateien übrig. Wenn Dir einer der beiden Werte reicht, streiche einfach \<!--no-->1 oder \<!--no-->2 im ersten Substitute-Kommando. Merke Dir den Wer in einer Variable und verschicke dementsprechend Mail.
Ist das ein erster Ansatz, oder hattest Du Dir was ganz anderes vorgestellt?
Jochen
Re: Abfrage des returncodes von wget
Hallo Jochen,
ich denke ich komm damit hin.
Das ganze hat folgenden Hintergrund:
Per Script werden Dateien geladen. (wann's was neues gibt und was es ist ist hier nicht bekannt)
Geholt werden die Dateien mit wget (soweit kein Prob)
Nur wenn jetzt was neues dabei war, will der Anwender eine kurze Mail.
Thats all
ich denke ich komm damit hin.
Das ganze hat folgenden Hintergrund:
Per Script werden Dateien geladen. (wann's was neues gibt und was es ist ist hier nicht bekannt)
Geholt werden die Dateien mit wget (soweit kein Prob)
Nur wenn jetzt was neues dabei war, will der Anwender eine kurze Mail.
Thats all
Re: Abfrage des returncodes von wget
Hi,
bin's leider noch mal.
wenn ich die Parameter sed ..... anfüge ändert sich an der Ausgabe nichts.
Steckt da der Teufel noch im Detail.
Tom
bin's leider noch mal.
wenn ich die Parameter sed ..... anfüge ändert sich an der Ausgabe nichts.
Steckt da der Teufel noch im Detail.
Tom
Re: Abfrage des returncodes von wget
Nö, in meiner Blödheit... <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
Natürlich hatte ich nur eine einzige Testzeile mittels echo in das sed-Kommando gepipet. Unter der Prämisse tut's das Skript auch, nur alle anderen Zeilen werden auch ausgegeben - wie Du jetzt ja festgestellt hast. Sorry, hab da einen Schritt zu kurz gedacht. Bugfix:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
wget -r ftp://userspace | sed -n -e '/^Downloaded/{
s/^Downloaded \([0-9,][0-9,]*\) bytes in \([0-9][0-9]*\) files/\1 \2/
s/,//g
p
}'</font><hr></pre></blockquote>Mittels Option "-n" wird die Default-Ausgabe aller Zeilen unterdrückt und mittels Kommando "p" die bearbeitete Zeile explizit ausgegeben. Jetzt sollte es so tun wie gewünscht.
Jochen
Natürlich hatte ich nur eine einzige Testzeile mittels echo in das sed-Kommando gepipet. Unter der Prämisse tut's das Skript auch, nur alle anderen Zeilen werden auch ausgegeben - wie Du jetzt ja festgestellt hast. Sorry, hab da einen Schritt zu kurz gedacht. Bugfix:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
wget -r ftp://userspace | sed -n -e '/^Downloaded/{
s/^Downloaded \([0-9,][0-9,]*\) bytes in \([0-9][0-9]*\) files/\1 \2/
s/,//g
p
}'</font><hr></pre></blockquote>Mittels Option "-n" wird die Default-Ausgabe aller Zeilen unterdrückt und mittels Kommando "p" die bearbeitete Zeile explizit ausgegeben. Jetzt sollte es so tun wie gewünscht.
Jochen
Re: Abfrage des returncodes von wget
@Jochen:
Hast du schonmal überlegt nen Buch zu schreiben?
Hast du schonmal überlegt nen Buch zu schreiben?
Re: Abfrage des returncodes von wget
Wieso? Es gibt schon viele Bücher zum Thema Shellskriptprogrammierung. Und wenn ich jetzt noch mal neu anfangen würde zu lernen, wären sed/awk (meine vielgeliebten Tools <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">) heute auch nicht mehr erste Wahl, sondern eher perl (vielleicht python?).
Das erschwert mir das perl-Lernen momentan ungemein: Bevor ich mir "mühsam" eine perl-Lösung zusammengekratzt habe (weil ich ja noch lerne), bin ich schon 3mal mit Shell/sed/awk/sonstigen Tools fertig, weil ich die einigermassen aus dem Effeff beherrsche...
Was ich als Buch gut fände und was ich in der Form, wie ich's mir vorstelle, noch nicht gefunden hab, wäre so eine Art Kochbuch: Problemstellungen mit kommentierter Beispiellösung, von einfach bis komplex, mit Angaben, welche speziellen Features verwendet werden. So viel zu tun, wo wenig Zeit... *seufz*
Jochen
Das erschwert mir das perl-Lernen momentan ungemein: Bevor ich mir "mühsam" eine perl-Lösung zusammengekratzt habe (weil ich ja noch lerne), bin ich schon 3mal mit Shell/sed/awk/sonstigen Tools fertig, weil ich die einigermassen aus dem Effeff beherrsche...
Was ich als Buch gut fände und was ich in der Form, wie ich's mir vorstelle, noch nicht gefunden hab, wäre so eine Art Kochbuch: Problemstellungen mit kommentierter Beispiellösung, von einfach bis komplex, mit Angaben, welche speziellen Features verwendet werden. So viel zu tun, wo wenig Zeit... *seufz*
Jochen
Re: Abfrage des returncodes von wget
Tom wrote:Hi,
bin's leider noch mal.
wenn ich die Parameter sed ..... anfüge ändert sich an der Ausgabe nichts.
Steckt da der Teufel noch im Detail.
Tom