WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 22.08.2006, 11:07   #1
Nikro
Senior Member
 
Registriert seit: 27.03.2003
Beiträge: 164


Frage Shell-Skript funktioniert, als Cronjob aber nicht

Bin absoluter Neuling, was Shell-Skripte anbelangt. Ich habe mir folgendes Skript gebastelt, um meine MySQL-Datenbank täglich zu sichern:
Code:
#!/bin/sh

dateiname=`date +%Y%m%d`

# Dump der Joomla-Datenbank erstellen
mysqldump --user=abc --password=xyz usr_web2_1 > /pfad/zum/dump/dump_${dateiname}.sql

# Dumps, die aelter als 14 Tage sind, werden geloescht
find /pfad/zum/dump -ctime +14 | xargs rm -f
Wenn ich das Skript manuell starte (./backup.sh) funktioniert es einwandfrei! Daher habe ich dafür einen Cronjob angelegt, der täglich ausgeführt wird. Dabei wird aber lediglich eine leere Datei namens "dump_.sql" erzeugt.

Wieso?? Ich kapier das einfach nicht und steh total an...

Bin für jeden Tipp dankbar!!
PS: Falls es wichtig ist, es läuft unter Debian Linux.
Nikro ist offline   Mit Zitat antworten
Alt 22.08.2006, 11:17   #2
arctic
Elite
 
Registriert seit: 02.07.2005
Beiträge: 1.121


Standard

vielleicht muss es die datei vorher geben

bei solaris würde ich mit "touch filename"
die datei anlegen.

weiss nicht obs das auch bei linux gibt

permissions wären auch als problem denkbar
arctic ist offline   Mit Zitat antworten
Alt 22.08.2006, 11:29   #3
Nikro
Senior Member
 
Registriert seit: 27.03.2003
Beiträge: 164


Standard

Das kann es auch nicht sein. Ich habe das Skript manuell gestartet, daraufhin wurde die Datei "dump_20060822.sql" korrekt erstellt. Anschließend per Cronjob gestartet, Ergebnis: Leere Datei namens "dump_.sql"
Die Datei gab es also bereits, hat aber nichts genützt.
Nikro ist offline   Mit Zitat antworten
Alt 22.08.2006, 12:46   #4
m@rio
Master
 
Registriert seit: 10.10.2002
Beiträge: 711


Standard

Schau dir mal die Ausgabe von Cronjob an. Die müssten im Postfach des Users unter dem der Cronjob lauft (meistens root) liegen.
m@rio ist offline   Mit Zitat antworten
Alt 22.08.2006, 13:22   #5
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

`sh` kennt kein ${VARIABLE}-Konstrukt.
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Alt 22.08.2006, 13:24   #6
Nikro
Senior Member
 
Registriert seit: 27.03.2003
Beiträge: 164


Standard

Zitat:
Original geschrieben von colossus
`sh` kennt kein ${VARIABLE}-Konstrukt.
Bist du dir da sicher?? Wie gesagt, führe ich das Skript manuell aus, funktioniert es ja, es wird auch die Variable verarbeitet.
Nikro ist offline   Mit Zitat antworten
Alt 22.08.2006, 13:40   #7
Nikro
Senior Member
 
Registriert seit: 27.03.2003
Beiträge: 164


Standard

Zitat:
Original geschrieben von m@rio
Schau dir mal die Ausgabe von Cronjob an. Die müssten im Postfach des Users unter dem der Cronjob lauft (meistens root) liegen.
Da habe ich folgendes gefunden:
Code:
/var/www/web2/files/scripts/datenbank.sh: line 1: date: command not found
/var/www/web2/files/scripts/datenbank.sh: line 6: mysqldump: command not found
/var/www/web2/files/scripts/datenbank.sh: line 9: find: command not found
/var/www/web2/files/scripts/datenbank.sh: line 9: xargs: command not found
Ich verstehe nicht, warum das Skript nicht funktioniert, nur weil es automatisch gestartet wird... Was macht cron anders??
Nikro ist offline   Mit Zitat antworten
Alt 22.08.2006, 13:55   #8
m@rio
Master
 
Registriert seit: 10.10.2002
Beiträge: 711


Standard

Das hat vermutlich mit der "Art der Shell" zu tun (google mal nach "login shell"). Daher sind die Such-Pfade nicht gesetzt.
Du kannst in deinem Script die Programme mit dem kompletten Pfad angeben (findet man am leichtesten mit which programmname), dann müsste es funktionieren.
m@rio ist offline   Mit Zitat antworten
Alt 22.08.2006, 14:20   #9
gaelic
nugent
 
Registriert seit: 28.08.2001
Beiträge: 2.500


Standard

wie lautet der eintrag in der crontab? mit welchem user wird das script aufgerufen?
____________________________________
kill it & grill it
gaelic ist offline   Mit Zitat antworten
Alt 22.08.2006, 14:26   #10
Nikro
Senior Member
 
Registriert seit: 27.03.2003
Beiträge: 164


Standard

Zitat:
Original geschrieben von m@rio
Das hat vermutlich mit der "Art der Shell" zu tun (google mal nach "login shell"). Daher sind die Such-Pfade nicht gesetzt.
Du kannst in deinem Script die Programme mit dem kompletten Pfad angeben (findet man am leichtesten mit which programmname), dann müsste es funktionieren.
Das war wohl der Fehler! Habe mit which den Pfad anzeigen lassen und im Skript dazugeschrieben -> jetzt funktionierts!
Vielen Dank für eure Hilfe, besonders an m@rio!
Nikro ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:29 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag