Backup-Script läuft nicht per cron sonst schon

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Backup-Script läuft nicht per cron sonst schon

Beitrag von Meillo » 14.04.2007 11:52:08

Hoi Community,

ich brauche mal ein wenig Hilfe von euch. Wahrscheinlich sehe ich nur den Wald vor lauter Bäumen nicht ...

Ich habe ein Backup-Script geschrieben, das täglich einmal meine Emails als gzipptes ISO-Image sichern soll.
Das Script:

Code: Alles auswählen

    $ cat bin/mailbackup-auto.sh
#!/bin/bash
#
# generates a gzipped ISO-Image
#


source_dir='/home/meillo/Mail/'
target_dir='/mnt/unsafe/BU/Mail/'
tmp_file='/tmp/Mail-Backup.iso.tmp'
output_file='Mail-Backup_'`date +%Y-%m-%d`'.iso.gz'

mkisofs -R -J $source_dir > $tmp_file
cat $tmp_file | gzip > ${target_dir}${output_file}
rm $tmp_file
starte ich nun das Script aus der Shell heraus, läuft alles wie gewünscht ab.
Lasse ich es aber per cron oder von at starten, dann erzeugt es das Image und bricht danach mit folgender Meldung ab

Code: Alles auswählen

/home/meillo/bin/mailbackup-auto.sh: line 13: /mnt/unsafe/BU/Mail/Mail-Backup_2007-04-14.iso.gz: Permission denied
(Das ist die Zeile mit cat ...)

der Ordner /mnt/unsafe/BU/Mail/ hat Schreibrechte für alle und die zu erzeugende Datei existiert noch nicht.
Da das Script via cron/at ja auch unter dem gleichen User läuft, sollte es doch keine Berechtigungsprobleme geben, oder?


Freue mich über Aufklärung ;-)
Use ed once in a while!

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 14.04.2007 14:12:14

Hallo Meillo,

ich würde auf fehlende "absolute" Pfade tippen.

Code: Alles auswählen

fuzzy@free:~$ which mkisofs
/usr/bin/mkisofs
also "/usr/bin/mkisofs" statt "mkisofs" usw.

Gruß fuzzy

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

Beitrag von Meillo » 14.04.2007 14:33:32

@fuzzy: Danke für den Tipp, aber daran hat es nicht gelegen

__


Auflösung:

Einer der übergeordneten Ordner (/mnt/unsafe) war das Problem:

Code: Alles auswählen

    $ ll /mnt/
drwxrwx--- 10 root family 4096 2007-04-13 21:31 unsafe/

Code: Alles auswählen

    $ chmod o+x /mnt/unsafe
hat Erfolg gebracht



Über die Shell hat es funktioniert, da ich in der Gruppe 'family' bin (sekundäre Gruppe)

... nun vermute ich, dass cron/at evtl. nur primäre Gruppen (oder gar keine) heran ziehen.
Weiß da jemand mehr?
Use ed once in a while!

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 24.04.2007 14:01:24

versuch mal dein script ohne die endung .sh
gruss pischti
debian stable

Antworten