DVD RW Format Util nicht ueber cron?

cat1510

Well-Known Member
Hallo Leute, ich habe ein Problem mit meinem Cron.

Habe ein sh script geschrieben um eine Datensicherung auf DVD zu machen.

Code:
#!/bin/sh

DATAPATH1=/data/noel
DATAPATH2=/data/install/scripts
DATAPATH3=
BACKUPPATH=/data/backup
DEV=0,0,0
DVD=/dev/cd0
LOGFILE=/data/backup/lastcdburn.log
LINEHEADER="\n\n*****"
LINETAIL="*****\n\n"

printline() {
  echo -e "$LINEHEADER $LINETEXT $LINETAIL"
  logger $LINETEXT
  }

while true
  do
  LINETEXT="Daten werden gepackt, start am `date`"
  printline

  tar cfz $BACKUPPATH/backup.tar.gz $DATAPATH1 $DATAPATH2 $DATAPATH3
   cp /var/log/messages $BACKUPPATH

  LINETEXT=" DVD-Image wird vorbereitet, und gebrannt am `date`"
  printline
  dvd+rw-format -force $DVD

  if [ $? -ne 0 ]
    then
      LINETEXT="Die DVD konnte nicht formatiert werden! Falsches oder kein Medium"
      printline
      exit 1
      else sleep 2
           growisofs -use-the-force-luke=dao -Z $DVD -J -R $BACKUPPATH
              if [ $? -ne 0 ]
                then
                   LINETEXT="DVD konnte nicht gebrannt werden"
                   printline
                   exit 1

              fi
              if [ $? -le 0 ]
                then
                   cdrecord -eject dev=$DEV

           fi
       fi
  LINETEXT="DVD Sicherung wurde erfolgreich beendet am `date`"
  printline
  exit 0

done | tee $LOGFILE
[CODE\]


Dazu habe ich dann in mein Crontab natuerlich das eingetagen.
Manuell laeuft das Script einwandfrei.
Ueber cron kann er die DVD nicht formatieren.
Der bricht also bei dvd+rw-format -force $DVD ab.


Hat jemand eine Idee, warum er das macht?

MFG

CAT
 
Diese Frage wird laufend gestellt... Wenn ich schon lese: "Läuft beim manuellen Aufruf, aber nicht unter cron", dann brauche ich gar nicht weiter zu lesen. Die Antwort lautet: Du hast unter cron ein anderes Environment als in deiner Login-Shell.

Sofern du den $PATH von cron nicht verändert hast, enthält er nur /etc, /bin, /sbin, /usr/bin und /usr/sbin, wobei dvd+rw-format jedoch unter /usr/local/bin liegt (gleiches gilt auch für das growisofs und das cdrecord in deinem Skript).

Ergo: $PATH anpassen oder absolute Pfadnamen im Skript verwenden.

Außerdem verstehe ich ehrlich gesagt nicht so ganz, warum du da eine Endlos-Schleife verwendest. Naja, laufen tut's natürlich trotzdem, ist aber, soweit ich das sehe, nutzlos.
 
Hallo CAT,
nur mal 'ne Frage - wenn du das Script manuell startest, läuft es mit root-Rechten? Ich meine, hast Du die Rechte zum Schreiben ect. für /dev/cd0?
Ich formatiere immer auf /dev/rcd0 bzw. /dev/dvd was entsprechend gelinkt ist! Stimmen die Gruppenrechte auch?
Gruß Frank
 
@ p.h. Jo Du hast natuerlich recht.
Habe ich nicht bedacht.

Nun, nachdem ich das Script geaendert habe klappt es aber immer noch nicht.
beim dem Aufruf von /usr/local/bin/growisofs -Z $DVD -J -R $BACKUPPATH
bekomme ich per cron die DVD nicht gebrannt.
Manuell klappt das.
Leite ich die Ausgabe nach /dev/null um besteht das gleiche Problem.

Vieleicht hast Du noch einen Tip fuer mich.
Mit der Endlosschleife hast Du auch recht, habe ich auf einer Unix Shell Script Schulung so "gelernt" .


CAT
 
Ohne auch nur eine einzige Fehlermeldung kann man zu dem Problem wohl kaum was sagen. Trete die Endlosschleife in die Tonne - die Ausgabeumleitungen ebenfalls. Führ das Skript dann noch mal aus und guck in der Cron-Mail nach. Außerdem wäre mal die entsprechende Cron-Tabelle (und zwar vollständig!) eine gute Idee.
 
Als erstes: Es laueft. Danke!

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin

Habe ich einfach in das Script eingefuegt.
Die Endlosschleife hat den Sinn, dass alle Ausgaben in der Logdatei festgehalten werden.
Was Deine Idee mit dem Cron anbelangt, die hat den Durchbruch geschafft.
Da stand dann schon mal:

Executing 'mkisofs -J -R /data/backup | builtin_dd of=/dev/pass2 obs=32k seek=0'
:-( unable to execute mkisofs: No such file or directory
:-( write failed: Input/output error

Also Danke fuer Die Idee.


CAT
 
Zurück
Oben