• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] cron und sarg

froemken

Member
Hallo zusammen,

eigentlich kann es doch nicht so schwer sein mal eben einen neuen Crontab anzulegen. Laut den Informationen, die mir per mail zugeschickt werden funktioniert der Cron auch und der Befehl wird ausgeführt, aber als Ergebnis heißt es, es wären keine Daten vorhanden...

Code:
###
# Script by Stefan Froemken
# Erstellung von Auswertungen der Squid-Logdateien

# Aktuelles Datum
HEUTE=$(date +"%d/%m/%Y")

# Script ausfuehren alle 10 Minuten zum Testen
# danach dann taeglich
*/10 * * * * /usr/bin/sarg -l /var/log/squid/access.log -n yes -o /srv/www/htdocs/squid-reports -g e -d $HEUTE-$HEUTE

Ich habe den Befehl mal in der Bash ausgeführt mit Datumswerten, wie ich sie mir aus der Zeile darüber erhoffe: Kein Thema...Funktioniert. Leider nur nicht aus dem Aufruf der Crontabs nicht.

Jemand ne Idee?

Stefan Frömken
 
OP
froemken

froemken

Member
Vielleicht noch als Info:
Suse 9.3
Benutzerbezogene crontabs
-- crontab -u root -e
somit brauche ich nur 6 statt 7 Angaben

Der Body-Text in der Mail:
Code:
Date: Fri, 26 May 2006 12:00:01 +0200 (CEST)

SARG: Records in file: 6696, reading: 0.00%^MSARG: Records in file: 6696, reading: 74.67%^MSARG: Keine Datensaetze gefunden
SARG: Ende
SARG: Records in file: 6696, reading: 100.00%

Hab auch grad mal die Anführungszeichen in der Variablenzuordnung weggemacht = Kein Unterschied..."Fehler" besteht weiterhin

Stefan
 

schusch

Newbie
Hi,

versuch's mal mit backquotes in der Befehlszeile

Code:
*/10 * * * * /usr/bin/sarg -l /var/log/squid/access.log -n yes -o /srv/www/htdocs/squid-reports -g e -d `date +"%d/%m/%Y"`-`date +"%d/%m/%Y"`
 
OP
froemken

froemken

Member
Die Backquotes hab ich wie blöd versucht zu schreiben, aber da kommen immer solche Zeichen bei raus: ´

Dieses A lässt sich auch nicht löschen...

Habe den Fehler aber gerade gefunden...da soll mal einer drauf kommen *andenKopfpack*

Wenn ich mit crontab arbeite kann ich keine Wertzuweisungen machen. Diese Datei "root" hat auch nicht dieses #!/bin/bash in der Kopfzeile stehen, was mir sagt, dass diese Datei nicht von der Bash geparst wird. Also kann nur noch das Programm cron selbst diese Datei parsen und man muss davon ausgehen, dass Cron nicht die gleichen Interpretierungen wie die Bash hat. Kurz: Man bindet auf diese Weise allerhöhchstens eine selbstgeschriebene *.sh Datei ein.

Diese Scripte, wie ich sie geschrieben hatte, kann man in die Verzeichnisse cron.d cron.daily und co reinkopieren. Dort werden Sie auch entsprechend von der bash "vor"-geparst.

Vielen Dank Euch

Stefan Frömken
 

schusch

Newbie
1.
Die backquotes gehen an meiner deutschen Tastatur mit
<Shift><Taste neben Backspace> gliechzeitig und dann <Leertaste>

2.
Du hast es erkannt. Cron nimmt nicht die Bash sondern die Standardshell. Die bash ersetzt $(Befehl) durch die Standardausgabe von Befehl, sh macht dies mit der Syntax `Befehl`.
 
OP
froemken

froemken

Member
Ohh...ich Schnarchtüte. Hab das <SHIFT> nicht gemacht.

Ohne Shift geht das andere Apostroph nur auf der BASH selbst. Nicht aber im VI. Nutzt der VI einen anderen Zeichensatz?

Na denn...Danke Dir

Stefan
 
Oben