Termine per Shell auslesen

Bash, Shell, PHP, Python, Perl, CGI
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Termine per Shell auslesen

Post by tenshinhan10 »

Hallo,

ich benutze ein Kalenderfrontend, das gespeicherte Termine in einer Textdatei ablegt. Diese möchte ich mit einer Shell gerne auswerten um z.B. Erinnerungsemails zu verschicken.

Die vom Kalender erzeugten Daten sehen wie folgt aus:

1082894126|1082955600|1082916000|1082926800|Berlin|Party|

Die ersten 4 Werte sind Timestamps und stehen für Anfangsdatum, Anfangszeit, Enddatum, Endzeit.

Meine Idee war ein Script mit Endlos-Schleife oder einen Cronjob laufen zu lassen, der die Datei regelmässig ausliest und auswertet. Mit Shell Befehlen arbeite ich jedoch nur selten, so das es mir da noch am Lösungsansatz fehlt. Gibts eventuell schon eine fertige Funktion oder ein vergleichbares Script ?

Ich bin für jeden Tip dankbar.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Termine per Shell auslesen

Post by captaincrunch »

Stichworte: cut, grep, awk, ...

Was genau willst du denn damit anfangen?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Termine per Shell auslesen

Post by tenshinhan10 »

Das sollte so eine Art Terminbenachrichtigung sein. Wenn ein Termin erreicht ist (b.z.w. kurz davor) soll der eine Email versenden.
smur
Posts: 167
Joined: 2003-05-26 16:00
Location: Mannheim

Re: Termine per Shell auslesen

Post by smur »

Nimm doch einfach ein PHP-Skript als Shellskript. Damit kannst du ja schliesslich schon umgehen und musst zudem deine Funktionen nicht neu schreiben.

Gruß,
Nico
djbennyf
Posts: 176
Joined: 2003-04-06 19:44

Re: Termine per Shell auslesen

Post by djbennyf »

#!/usr/bin/php
<?
$datei = "events.txt";
$fp = fopen( $datei, "r");
while (!feof($fp)) {
$entryline = fgets($fp,1024);
if (ereg("|", $entryline) {
$entry = explode("|", $entryline);
$anfang = $entry[0];
$von = $entry[1];
$ende = $entry[2];
$bis = $entry[3];
$event = $entry[4];
$ort = $entry[5];

// Beispiel für erinnerung

if (time() > ($von - (12 * 3600))) {
$message = "Nicht vergessen,n um ". date("H:i", $von) ." findet in $ort das Megaevent: "$event" bis ca. ". date("H:i", $bis) ." statt";
mail("deine@mail.de", "Eventerinnerung", $message);
}
}
}



Wenn du dieses script als php speicherst und dann als cronjob mit "/bin/php /deinephp.php" ausführst, schickt er dir immer eine Mail wenn ein event innerhalb der nächsten 12 Stunden beginnt...

Ist beliebig erweiterbar.

Nicht getestet, aber könnte gehn *g*

Sowas gesucht?