Jun 24, 2018 - 07:56 AM

This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.
View previous topic Printable version Log in to check your private messages View next topic
Author Message
Andreas
Post subject: mit date rechnen *help*  PostPosted: Jun 21, 2006 - 01:55 PM




Joined: Feb 04, 2004
Posts: 53

Ausgangspunkt ist, das ich per skript automatisiert dateien aus dem Internet laden möchte
Die Dateien sind nach Datum und Uhrzeit geordnet ( jede viertelstunde kommt eine Datei hinzu )

Ich möchte auf diese weise angefangen vom aktuellen Datum und aktueller Uhrzeit rückwärts entsprechende Daten herunterladen (z.B. alle files von heute + gestern oder auch die der letzten Woche)

Um mir den sehr umständlichen Weg über das rechnen mit Zeichenketten (und allen außnahmen bei rückwärtszählen) zu ersparen will ich das ganze mit der date funktion lösen

Die Probleme die auftreten
1) Währrend der laufzeit des skriptes läuft die Uhrzeit weiter
2) Ich brauche die Minuten auf eine Viertelstunde gerundet (also 00,15,30 oder 45)

Code:

until (blabla)
Zeit=`date -d -$x"min" +%Y%m%d%H%M`
x=`expr $x + 15`
wget $Server/$Zeit
done

das ist mein erster ansatz dazu
was ich eigentlich brauche ist ein datentyp date mit dem ich genauso rechnen kann wie mit der date funktion, denn ich will natürlich nicht währrend der laufzeit des skriptes die systemzeit ändern und/oder anhalten

hab aber dazu leider nichts gefunden
vielleicht weiß ja jemand von euch weiter Winken
 
 View user's profile Send private message  
Reply with quote Back to top
acritox
Post subject: mit date rechnen *help*  PostPosted: Jun 22, 2006 - 08:51 PM
Developer
Developer



Joined: Jul 10, 2004
Posts: 227
Location: Niederbayern
Hi Andreas,

Code:
#!/bin/sh
timestamp=$(date -d "$(date +%H):$(expr $(date +%M) / 15 \* 15)" +%s)
baseurl="http://127.0.0.1/beispiel"
DEBUG=echo # diese Zeile auskommentieren!

while [ "$timestamp" -gt "$(date +%s -d yesterday)" ]
do
    timestring=$(date -d "1970-01-01 $timestamp seconds UTC" +%Y%m%d%H%M)
    timestamp=$[timestamp-15*60]
    $DEBUG wget $baseurl/$timestring
done


die Ausgabe wär dann in meinem Fall z.B:

Code:
wget http://127.0.0.1/beispiel/200606222145
wget http://127.0.0.1/beispiel/200606222130
wget http://127.0.0.1/beispiel/200606222115
wget http://127.0.0.1/beispiel/200606222100
wget http://127.0.0.1/beispiel/200606222045
wget http://127.0.0.1/beispiel/200606222030
wget http://127.0.0.1/beispiel/200606222015
wget http://127.0.0.1/beispiel/200606222000
wget http://127.0.0.1/beispiel/200606221945
wget http://127.0.0.1/beispiel/200606221930
wget http://127.0.0.1/beispiel/200606221915
wget http://127.0.0.1/beispiel/200606221900
wget http://127.0.0.1/beispiel/200606221845
wget http://127.0.0.1/beispiel/200606221830
wget http://127.0.0.1/beispiel/200606221815
wget http://127.0.0.1/beispiel/200606221800
wget http://127.0.0.1/beispiel/200606221745
wget http://127.0.0.1/beispiel/200606221730
wget http://127.0.0.1/beispiel/200606221715
wget http://127.0.0.1/beispiel/200606221700
wget http://127.0.0.1/beispiel/200606221645
wget http://127.0.0.1/beispiel/200606221630
wget http://127.0.0.1/beispiel/200606221615
wget http://127.0.0.1/beispiel/200606221600
wget http://127.0.0.1/beispiel/200606221545
wget http://127.0.0.1/beispiel/200606221530
wget http://127.0.0.1/beispiel/200606221515
wget http://127.0.0.1/beispiel/200606221500
wget http://127.0.0.1/beispiel/200606221445
wget http://127.0.0.1/beispiel/200606221430
wget http://127.0.0.1/beispiel/200606221415
wget http://127.0.0.1/beispiel/200606221400
wget http://127.0.0.1/beispiel/200606221345
wget http://127.0.0.1/beispiel/200606221330
wget http://127.0.0.1/beispiel/200606221315
wget http://127.0.0.1/beispiel/200606221300
wget http://127.0.0.1/beispiel/200606221245
wget http://127.0.0.1/beispiel/200606221230
wget http://127.0.0.1/beispiel/200606221215
wget http://127.0.0.1/beispiel/200606221200
wget http://127.0.0.1/beispiel/200606221145
wget http://127.0.0.1/beispiel/200606221130
wget http://127.0.0.1/beispiel/200606221115
wget http://127.0.0.1/beispiel/200606221100
wget http://127.0.0.1/beispiel/200606221045
wget http://127.0.0.1/beispiel/200606221030
wget http://127.0.0.1/beispiel/200606221015
wget http://127.0.0.1/beispiel/200606221000
wget http://127.0.0.1/beispiel/200606220945
wget http://127.0.0.1/beispiel/200606220930
wget http://127.0.0.1/beispiel/200606220915
wget http://127.0.0.1/beispiel/200606220900
wget http://127.0.0.1/beispiel/200606220845
wget http://127.0.0.1/beispiel/200606220830
wget http://127.0.0.1/beispiel/200606220815
wget http://127.0.0.1/beispiel/200606220800
wget http://127.0.0.1/beispiel/200606220745
wget http://127.0.0.1/beispiel/200606220730
wget http://127.0.0.1/beispiel/200606220715
wget http://127.0.0.1/beispiel/200606220700
wget http://127.0.0.1/beispiel/200606220645
wget http://127.0.0.1/beispiel/200606220630
wget http://127.0.0.1/beispiel/200606220615
wget http://127.0.0.1/beispiel/200606220600
wget http://127.0.0.1/beispiel/200606220545
wget http://127.0.0.1/beispiel/200606220530
wget http://127.0.0.1/beispiel/200606220515
wget http://127.0.0.1/beispiel/200606220500
wget http://127.0.0.1/beispiel/200606220445
wget http://127.0.0.1/beispiel/200606220430
wget http://127.0.0.1/beispiel/200606220415
wget http://127.0.0.1/beispiel/200606220400
wget http://127.0.0.1/beispiel/200606220345
wget http://127.0.0.1/beispiel/200606220330
wget http://127.0.0.1/beispiel/200606220315
wget http://127.0.0.1/beispiel/200606220300
wget http://127.0.0.1/beispiel/200606220245
wget http://127.0.0.1/beispiel/200606220230
wget http://127.0.0.1/beispiel/200606220215
wget http://127.0.0.1/beispiel/200606220200
wget http://127.0.0.1/beispiel/200606220145
wget http://127.0.0.1/beispiel/200606220130
wget http://127.0.0.1/beispiel/200606220115
wget http://127.0.0.1/beispiel/200606220100
wget http://127.0.0.1/beispiel/200606220045
wget http://127.0.0.1/beispiel/200606220030
wget http://127.0.0.1/beispiel/200606220015
wget http://127.0.0.1/beispiel/200606220000
wget http://127.0.0.1/beispiel/200606212345
wget http://127.0.0.1/beispiel/200606212330
wget http://127.0.0.1/beispiel/200606212315
wget http://127.0.0.1/beispiel/200606212300
wget http://127.0.0.1/beispiel/200606212245
wget http://127.0.0.1/beispiel/200606212230
wget http://127.0.0.1/beispiel/200606212215
wget http://127.0.0.1/beispiel/200606212200


acritox (btw: auch Andreas Winken )

_________________
http://www.andreas-loibl.de/ - Jabber: acritox@jabber.ccc.de - Skype: acritox - ICQ: #174053232
 
 View user's profile Send private message Visit poster's website ICQ Number 
Reply with quote Back to top
Andreas
Post subject: RE: mit date rechnen *help*  PostPosted: Jun 24, 2006 - 05:34 PM




Joined: Feb 04, 2004
Posts: 53

danke, werds gleich mal ausprobieren, bzw. erstmal versuchen zu verstehen was da abläuft Winken
 
 View user's profile Send private message  
Reply with quote Back to top
Andreas
Post subject: RE: mit date rechnen *help*  PostPosted: Jun 25, 2006 - 05:54 PM




Joined: Feb 04, 2004
Posts: 53

so, nochmal danke @acritox
hat mich mal mindestens 1h gekostet die paar zeilen code nachzuvollziehen Winken

hier dann auch mal der code meines kleinen skriptes das daraus entstanden ist
Code:

#!/bin/sh
Server="http://www.wetteronline.de/daten/radar/dwddg"
timestamp=$(date -d "$(date +%H):$(expr $(date +%M) / 15 \* 15)" +%s)
timestamp=$[timestamp - 2*3600]
Tempdir=Temp_$(date +%s)
mkdir $Tempdir
echo -n "Wieviele Tage sollen geholt werden: "
read AnzTage
#DEBUG=echo
while [ "$AnzTage" -gt "0" ]
do
   timestamp=$[timestamp-15*60]
   timestring=$(date -d "1970-01-01 $timestamp seconds UTC" +%Y/%m/%d/%H%M)
   MESZ=$(date -d "1970-01-01 `expr $timestamp + 7200` seconds UTC" +%H%M%d%m%Y)
   Datum=$(date -d "1970-01-01 `expr $timestamp + 7200` seconds UTC" +%d%m%Y)
if [ -f ./$Datum.gif ]
then
   echo -e -n "$Server"/"$Datum".gif____"\t"OK"\t"Datei schon vorhanden"\r"
   echo
   timestamp=$[ timestamp-$[(timestamp + 4*3600) % 86400] ]
   $DEBUG rm -f $Tempdir/*.gif
   AnzTage=$[AnzTage-1]
   continue
fi
   $DEBUG wget -q -U firefox -O $Tempdir/$MESZ.gif $Server/$timestring.gif
   echo -e -n "$Server"/"$MESZ".gif"\r"
if test $[(timestamp + 4*3600) % 86400] = "0"
then
   $DEBUG gifsicle --delay 10 $Tempdir/*.gif  > $Datum.gif
   $DEBUG rm -f $Tempdir/*.gif
   AnzTage=$[AnzTage-1]
   echo -e -n "$Server"/"$Datum".gif____"\t"OK"\r"
   echo
fi
done
rmdir $Tempdir
$DEBUG konqueror $Datum.gif


Das skript erzeugt mit hilfe des paketes gifsicle animated gifs der letzten x-Tage auf denen dank wetteronline der Niederschlag über Deutschland zu sehen ist
War als kleine Programmierübung für mich gedacht und ich bin sehr zufrieden mit dem Ergebnis
Bin natürlich für anregungen und verbesserungsvorschläge offen Cool
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits
 
RSS All News | English News | Deutsche News | All Forum Topics | English Forum Topics | Deutsche Forum Topics
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you

Fatal error: Call to a member function Execute() on a non-object in /srv/www/subdomains/archive/includes/pnSession.php on line 378