Cron Job erstellen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
dinosaur
Beiträge: 33
Registriert: 19.10.2006 21:01:41
Wohnort: Switzerland - Zürich

Cron Job erstellen

Beitrag von dinosaur » 31.10.2006 10:22:22

Hallo Forum

Ich möchte gerne auf meiner Debian Box einen Cron Job definieren, um täglich das Log-File des SSH Daemon in ein separates Verzeichnis /home/user/ssh_log zu speichern.

Wie muss ich vorgehen?

Danke für die Info...

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.10.2006 11:45:35

Am besten mal die Dokumentation zu crontab lesen. Dann schreibst du dir ein Skript, dass das eigentliche Kopieren erledigt und richtest dann den Cron-Job ein.
Natuerlich musst du dann mit den Rechten aufpassen, denn dein normaler User hat erstmal keinen Zugriff auf die Logfiles.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Beitrag von Meillo » 31.10.2006 12:28:25

Code: Alles auswählen

crontab -e
wäre dann der Befehl zum Editieren den Crontabelle
Use ed once in a while!

Benutzeravatar
dinosaur
Beiträge: 33
Registriert: 19.10.2006 21:01:41
Wohnort: Switzerland - Zürich

Beitrag von dinosaur » 31.10.2006 12:59:07

Ok, ich hab mir folgendes ausgedacht:
bsp.:

Code: Alles auswählen

#!/bin/sh
# copy /ssh log-file
cp /var/log/secure /home/user/sshlogfiles/secure"irgend eine funktion um das aktuelle datum zu integrieren"
ich brauche noch ne funktion, um das aktuelle datum in den dateinamen zu "pflanzen", damit ich nachher eine referenz auf das datum im dateinamen hab.

muss ich den job unter root ausführen oder einen speziellen user definieren?

danke

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.10.2006 13:12:13

So koenntest du das machen:

Code: Alles auswählen

#!/bin/sh
# copy /ssh log-file
TARGETFILE=home/user/sshlogfiles/secure`date +%Y%m%d`

if [ -e $TARGETFILE ]; then
  echo "Zieldatei $TARGETFILE existiert bereits"
  exit 1
fi

cp /var/log/secure $TARGETFILE
Ungetestet aber das ganze. Ach ja, das bei date sind Backticks, also keine Single Quotes! Das ist wichtig!

Ob du das als root machen musst, haengt von den Berechtigungen der /var/log/secure ab. Wenn dein User auf die Datei lesenden Zugriff hat, dann muss du es nicht als root machen.

Benutzeravatar
dinosaur
Beiträge: 33
Registriert: 19.10.2006 21:01:41
Wohnort: Switzerland - Zürich

Beitrag von dinosaur » 31.10.2006 14:20:33

ok danke, werde dies zu hause ausprobieren...

ich nehme mal an, falls ein fehler auftretet, wird der entsprechende user via local mail darauf hingewiesen?

das script wird im folder /bin/sh abgespeichert? endung des files?

im übrigen ist diese art der programmierung die shellprogrammierung oder?

gibts gute links dazu im internet? sorry für die newbie fragen...

gruss

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Beitrag von Meillo » 31.10.2006 14:36:55

dinosaur hat geschrieben:das script wird im folder /bin/sh abgespeichert? endung des files?
du kannst es abspeichern wo du willst.
Du musst es halt entweder mit kompletter Pfadangabe ansprechen, oder du speicherst es in einen Ordner der in $PATH liegt (siehe "echo $PATH")
... das Script muss übrigens ausführbar sein ("chmod +x <filename>")
im übrigen ist diese art der programmierung die shellprogrammierung oder?
jo
gibts gute links dazu im internet? sorry für die newbie fragen...
für den Anfang ...
... und für danach
Use ed once in a while!

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.10.2006 15:08:40

Wobei es generell besser ist, immer den kompletten Pfad anzugeben. In einer Cron-Umgebung muss das nicht genauso gesetzt sein wie wenn man in der Shell unterwegs ist.
Falls das Skript eine Ausgabe produziert (ob Fehler oder nicht) wird diese per Mail an den Eigentuemer der Crontab zugestellt.

Antworten