remind

  1. Einführung
  2. Allgemeines über Reminder-Scripts
  3. Beispiel-Reminder-Script
  4. Starten von Programmen
  5. Reminder-Script für deutschen Kalender

Einführung

Remind bietet einen ausgefeilten Dienst, um Benutzer an Termine zu erinnern. Es kann auch (ähnlich wie at) dazu genutzt werden, zu bestimmten Zeiten Programme zu starten. Weiterhin kann man Kalender in verschiedener Form erzeugen, ggf. unter Mitverwendung des Hilfsprogramms rem2ps.

Aufruf: remind [optionen] dateiname [datum]

Wird als Dateiname '-' angegeben, so werden die Befehle von der Standardeingabe gelesen. Das Script rem kennt die gleichen Optionen wie remind, es verwendet die Default-Datei $HOME/.reminders :

rem [optionen] [datum]

Die Wirkungsweise von remind wird durch das Reminder-Script gesteuert (z.B. .reminders). Im einfachsten Fall hat eine Scriptzeile den folgenden Aufbau:

REM datum MSG Meldung
REM 1 Jan MSG Neujahrstag

Im Beispiel liefert der Aufruf von remind bzw. rem an einem 1. Januar die Meldung "Neujahrstag" auf dem Terminal.

Mail Messages

Sofern ein entsprechendes Script (remind-all.sh) installiert ist, das vom cron überwacht wird, werden die Dateien $HOME/.reminders täglich überprüft. Ist für den betreffenden Benutzer eine Meldung für den jeweiligen Tag vorgesehen, so wird ihm diese per Mail zugestellt.

Allgemeines über Reminder-Scripts

(Hinweis für das CHEMnet: Beispiel-Scripts stehen in /usr/local/lib/remind/reminders.*)

Zwischen Groß- und Kleinschreibung der Kommandos und Funktionen wird nicht unterschieden.

Kommentarzeilen werden eingeleitet durch '#' oder ';'.

Datum

Die Datumsspezifikation kann folgende Angaben enthalten:

Tag als Zahl
17
Monat mindestens die ersten drei Buchstaben (englisch oder deutsch)
Mar
Jahr vollständige Angabe mit Jahrhundert (Jahre ab 1990)
1994
Wochentag mindestens die ersten drei Buchstaben (englisch oder deutsch)
Thu

Modifizierer (Bsp.):

+7
Die Meldung wird am Zieltag sowie an 7 davorliegenden Tagen ausgegeben (delta)
*7
Die Meldung wird wöchentlich wiederholt (repeat)
-7
Vom angegebenen Datum werden 7 Tage abgezogen (back)

Platzhalter (Substitutionsfilter) im Meldungsteil

Beispiele:
%a
Triggerdatum: am Wochentag, den n. Monat Jahr
am Sonntag, den 27. Februar 1994
ggf. wird heute oder morgen ausgegeben
%g
Triggerdatum: am Wochentag, den n. Monat
am Sonntag, den 27. Februar
ggf. wird heute oder morgen ausgegeben
%y/%t/%r
jjjj/mm/tt (Jahr/Monat/Tag)

Beispiel-Reminder-Script

(CHEMnet: /usr/local/lib/remind/reminders.example)

# Beispiel fuer eine .reminders Datei
# Kommentarzeilen beginnen mit '#' oder ';'
# Die folgende Datei enthaelt OMIT-Befehle fuer dt. Feiertage:
INCLUDE /usr/local/lib/remind/reminders.inc
# einfaches Beispiel
REM 28 Feb 1994 MSG Heute ist der 28. Februar 1994
# Beispiel fuer jaehrlich wiederkehrende Meldung:
REM 1 May MSG Maifeiertag
# Bsp. fuer jaehrlich wiederkehrende Meldung, am ersten Mi
#      nach 16.11. incl.:
REM Wed 16 Nov MSG Busstag
# Am letzten Maerz- bzw. September-Sonntag:
REM Sun 1 Apr -7 MSG Sommerzeit Anfang
REM Sun 1 Oct -7 MSG Sommerzeit Ende
# Bsp. fuer Meldung mit einem Werktag Vorwarnung:
REM 11 Nov +1 OMIT Sat Sun MSG 11:11 %g Karneval
# Bsp. fuer Meldung mit 5 Werktagen Vorwarnung
REM 25 Jan 1995 +5 OMIT Sat Sun MSG Ablauf der Chem-X-Lizenz %g
# Bsp. fuer woechentlich zu erledigende Aufgaben:
REM Fri BEFORE MSG Backups!
# Folgendes erscheint jeden Dienstag im Zeitraum
#      11.4.1994-16.7.1994:
REM Tue 11 Apr 1994 *7 UNTIL 16 Jul 1994 MSG 14:15 Vorlesung

Starten von Programmen

Aufruf: remind -a remind.run

Beispiel für eine Datei remind.run:

REM 25 Feb 1994 AT 17:15 +15 *5 RUN popup %#: Termin %3! &

Im Beispiel ist vorausgesetzt, daß es ein Programm namens popup gibt, das unter X Window die entsprechende Meldung produziert. Das Beispiel bezieht sich auf einen Termin am 25.2.1994, wobei die Meldung um 17:15 (AT) sowie mit Vorwarnung ausgegeben wird. Das heißt, die erste Meldung erscheint 15 Minuten vorher (+15) und wird in Intervallen von 5 Minuten wiederholt (*5).

%# liefert die aktuelle Zeit.
%3 liefert die Trigger-Zeit (im Beispiel: um 17:15).

Reminder-Script für deutschen Kalender

(CHEMnet: /usr/local/lib/remind/reminders.cal)
SET $FoldYear 1
REM Sun PS [psshade(95)]
REM CAL [trigdate()-date(year(trigdate()), 1, 1)+1]
REM MSG SA [sunrise()]%
REM MSG SU [sunset()]
REM [trigger(moondate(0))] PS [psmoon(0)]
REM [trigger(moondate(1))] PS [psmoon(1)]
REM [trigger(moondate(2))] PS [psmoon(2)]
REM [trigger(moondate(3))] PS [psmoon(3)]
SET jahr year(trigdate())
REM [trigger(easterdate(jahr)-2)] PS [psshade(95)]
REM [trigger(easterdate(jahr)-2)] MSG Karfreitag
REM [trigger(easterdate(jahr))] MSG Ostersonntag
REM [trigger(easterdate(jahr)+1)] PS [psshade(95)]
REM [trigger(easterdate(jahr)+1)] MSG Ostermontag
REM [trigger(easterdate(jahr)+39)] PS [psshade(95)]
REM [trigger(easterdate(jahr)+39)] MSG Himmelfahrt
REM [trigger(easterdate(jahr)+49)] MSG Pfingstsonntag
REM [trigger(easterdate(jahr)+50)] PS [psshade(95)]
REM [trigger(easterdate(jahr)+50)] MSG Pfingstmontag
REM 1 Jan PS [psshade(95)]
REM 1 Jan MSG Neujahr
REM 1 May PS [psshade(95)]
REM 1 May MSG Maifeiertag
REM 3 Oct PS [psshade(95)]
REM 3 Oct MSG Tag d. dt. Einheit
REM Wed 16 Nov PS [psshade(95)]
REM Wed 16 Nov MSG Busstag
REM 24 Dec MSG Hl. Abend
REM 25 Dec PS [psshade(95)]
REM 25 Dec MSG 1. Weihnachtstag
REM 26 Dec PS [psshade(95)]
REM 26 Dec MSG 2. Weihnachtstag
REM 31 Dec MSG Silvester
REM Sun 1 Apr -7 MSG Sommerzeit Anfang
REM Sun 1 Oct -7 MSG Sommerzeit Ende

Aufruf-Beispiele:

remind -p12 -b1 reminders.cal | rem2ps -i -n -l -e -m A4 > calendar.ps

remind -p12 -b1 reminders.cal jan 1994 | rem2ps -i -n -l -e -m A4 > calendar.ps

Eine sehr ausführliche Anleitung findet man in der man page.


Burkhard Kirste, 1994/02/28