Probleme mit tar-Logdatei

R

recall

Jungspund
hi @ all!

ich habe in einem backup-script angegeben, dass er mir zwei verschiedene Logdateien erstellen soll. eine heißt automatisches_backup_fehler.log und die andere automatisches_backup_inhalt.log.

in die *inhalt.log sollen alle dateien geschrieben werden, die auf das band geschrieben werden, dies funktioniert ohne probleme.

in die *fehler.log sollen wie der name schon sagt alle auftretenden fehler reingeschrieben werden. Jedoch werden die fehler nicht in diese logdatei egschrieben, sondern einfach in der konsole ausgegeben z.B.:
bash-2.03# ./cron_backup_start.sh
Code:
bash-2.03# ./cron_backup_start.sh
tar: /sunblade2500/XXXX/lost+found: Permission denied
tar: /sunblade2500/XXXX/home/XXXX/.dt/sessions/home/dtfFupr_: Permission denied
tar: /sunblade2500/XXXX/home/XXXX/.dt/sessions/home.old/dtZTO0g_: Permission denied
tar: /sunblade2500/XXXX/home/XXXX/.dt/sessions/current.old/dt04NJzI: Permission denied
tar: /sunblade2500/XXXX/home/XXXX/.dt/Trash: Permission denied

ich hätte aber gerne, dass er mir das mit in die fehler-logdatei schreibt, da ich ja keine konsolenausgabe bekomme, wenn das script als cronjob ausführe.

Hier die Scripte:

cron_backup_start.sh
Code:
#!/usr/bin/bash
#---------------------------------------
# Hilfestellung für Cronjob, da er die Variablen nicht direkt verarbeiten konnte
#---------------------------------------
/sicherung/backup.sh > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

backup.sh
Code:
#!/usr/bin/bash
#---------------------------------------
# Sicherung
#---------------------------------------
# Band zurückspulen
echo "Band wird zurückgespult"
mt -f /dev/rmt/0 rewind > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

# Band löschen
echo "Band wird gelöscht!"
mt -f /dev/rmt/0 erase > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

# Band zurückspulen
echo "Band wird zurückgespult"
mt -f /dev/rmt/0 rewind > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

# Statusausgabe
echo "Der aktuelle Status des Bandes lautet: "
mt –f /dev/rmt/0 status

# Daten auf Band spielen
echo "Kopiervorgang ist nun gestartet"
tar cvf /dev/rmt/0 /sunblade2500/* > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

# Statusausgabe
echo "Der Kopiervorgang ist nun beendet!"
echo "Der aktuelle Status des Bandes lautet: "
mt –f /dev/rmt0 status

# Band zurückspulen
echo "Band wird zurückgespult"
mt -f /dev/rmt/0 rewind > /sicherung/log/automatisches_backup_inhalt-$(date +%d-%b-%Y).log

# Statusausgabe
echo "Sicherung wurde durchgeführt"
echo "Der aktuelle Status des Bandes lautet: "
mt –f /dev/rmt/0 status
mt -f /dev/rmt/0 offline > /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

exit 0

hoffe, ihr habt ne idee!

mfG. recall
 
Hallo

Eine Fehlerumleitung erfolgt Mittels "2>"
Beispiel
cat /etc/sudoers 2> /datensicherung/fehler
Siehe auch Linux-Fibel
[EDIT]
Ich habe mir dein ganzes Script nicht so genau ;) angesehen
Aber dein Befehl sollte IMHO so lauten
/sicherung/backup.sh 2> /sicherung/log/automatisches_backup_fehler-$(date +%d-%b-%Y).log

Gruß Lumpi
 
Zuletzt bearbeitet:
stdin, stdout, stderr

Hallo,
  • Kommando > Datei -> Leitet Standardusgabe in "Datei" um
  • Kommando < Datei -> Liest Eingabe aus "Datei"
  • Kommando 2> Datei -> Leitet Standard-Fehlerausgabe in "Datei"
  • Kommando >& Datei -> leitet Ausgabe und Fehler in "Datei"
  • Kommando >> Datei -> Hängt Standardausgabe an "Datei" an
  • Kommando | tee Datei -> Zeigt Ausgabe an und leitet diese gleichzeitig nach "Datei"
Damit werden die standard-Kanäle "stdin", "stdout" und "stderr" behandelt. Hoffe damit kommst du weiter...

[noparse][Edit:][/noparse] Lumpi, ich hab noch getippt, als dein Beitrag schon kam... sieh's als Ergänzung, bei dir stand das ja schon...
 
Zuletzt bearbeitet:
das ging schnell ;)
danke euch, ist echt ein klasse forum!
werde ich mir merken ;)

schönes wochenende!


mfG. recall
 
Naja, wenn das Ding als Cronjob läuft, bekommst du per Default den Output per Email geschickt. Geht im Normalfall dann an root, sofern es in der crontab nicht mit MAILTO anders angegeben wird.
 
also, das funktioniert nur halb.

wenn ich das in der konsole ausführe, dann sehe ich zwar, dass er den fehler-log erstellt (datei wird größer und wenn ich sie im editor ansehe, stehen dort die betreffenden dateien), aber nachdem das script fertig ist leert er die Datei und lässt die leere datei auf dem rechner.

wie bekomme ich das hin, dass mehr mir die aufgetretenen fehler in der log-datei lässt?

die inhalte in der datei automatisches_backup_inhalte.log behält er ja auch! :think:


mfG. recall
 
Zuletzt bearbeitet:
Benutze einfach >> also anhängen.
Die letzte Fehlerausgabe (die leer sein kann) überschreibt den inhalt nämlich.

Gruß Wolfgang
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Queue für copy Script

Shellskript - Fehler in Cron

tar network backup problem

Zurück
Oben