Backup Script hört bei einem Bruchteil bereits auf ohne Logs

Riseofdead

Lt. Commander
Registriert
Jan. 2013
Beiträge
1.030
Hallo

Ich lass 2x die Woche folgendes Script per Cronjob arbeiten.

Code:
#!/bin/sh

DATE=`date +"%d-%m-%Y"`
NAME="Backup"

cd /root/internet/scripte
./inet_stop.sh
#FTP-Backup
cd /
tar cf $NAME-$DATE.tar media/ext/ftp
mv $NAME-$DATE.tar /media/ext/backup/ftp
chown -R mario:mario /media/ext/backup/ftp
#Samba-Backup
cd /
tar cf $NAME-$DATE.tar media/ext/samba
mv $NAME-$DATE.tar /media/ext/backup/samba
chown -R mario:mario /media/ext/backup/samba

cd /root/internet/scripte
./inet_start.sh

inet_stop.sh und inet_start.sh stoppen bzw starten nur die Dienste Samba, proftpd, apache2 und Teamspeak Server

Nun hab ich mir die Datei angesehen. Ich glaub nicht das ein knapp 56 GB großes Samba Verzeichnis auf eine 270 MB große .tar Datei komprimiert werden kann. Deshalb ich es testweise mit tar xf Backup-25-09-2014.tar eingegeben und folgender Fehler kam

tar: Unerwartetes Dateiende im Archiv.
tar: „rmtlseek“ nicht an Recordgrenze angehalten
tar: Error is not recoverable: exiting now

Mit zip kann ich das ganze leider nicht machen da es den Server auf 100% CPU bringt und ca 30-60 mal den gleichen Prozess ausführt was man merkt da ich auch 30-60 mal die Datei sehe wie sie immer größer wird. Nach 12 Stunden ist das ganze noch immer nicht fertig. Außerdem läuft da der CPU Lüfter auf Hochtouren was Nachts nicht von Vorteil ist. Deshalb hab ich tar als Packprogramm genommen. Jedoch funktioniert das ja auch nicht. Was kann da sein? HDD Speicher ist mit 352 GB genug da und Dienste wurden vorher auch abgeschaltet. Betriebssystem hab ich Debian 7 Wheezy.
 
tar ist kein Kompressionsprogramm - es handelt sich um vereinfacht gesagt um einen Kontainer, bei dem die Dateien nacheinander aneinanderhängt werden

Code:
tar cjf
(bzip2)

oder

Code:
tar czf
(gzip)

oder

Code:
tar cJf
(xz, lzma)

sollten es schon sein


weiters sollte eventuell die resultierende gepackte Datei über tar --exclude rausgenommen werden,

sonst könnte es sein, dass der Vorgang sich asymptotisch dem Ende nähert aber theoretisch nie fertig wird (wird es wahrscheinlich - ist so aber besser) - es muss ja das Archiv oder Teile davon nicht in sich selbst enthalten sein


du kannst auch eine Liste an Dateien oder Ordner über eine Datei, die an tar übergeben wird auslassen:

http://www.cyberciti.biz/faq/exclude-certain-files-when-creating-a-tarball-using-tar-command/


mache das bei meinem System-Backup auch immer so, allerdings über tar & 7z, tar & lbzip2 oder Ähnliches


edit1:

Info:

de.wikipedia.org schrieb:
Tar bietet die Möglichkeit, Dateien sequenziell in eine einzige Datei zu schreiben bzw. Dateien aus selbiger wiederherzustellen.

de.wikipedia.org schrieb:
Gleichzeitig ist tar auch das englische Wort für Teer (mit dem Programm werden Dateien unkomprimiert zu einer Datei „zusammengeklebt“).

http://de.wikipedia.org/wiki/Tar

edit2:


was spricht dann dagegen das Samba-Archiv lokal mit rsync, scp, etc. auf die Platte zu transferieren und dann hiervon ein Archiv zu erstellen, dass z.B. jeweils immer 2 Backups lokal vorhanden wären

und wenn 2 vorhanden sind beim nächsten Vorgang das älteste Backup jeweils immer gelöscht bzw. durch das Neuste ersetzt wird ?

http://anouar.adlani.com/2011/12/how-to-backup-with-rsync-tar-gpg-on-osx.html


insgesamt ist das Samba-Archiv also 3-fach vorhanden

2-mal komprimiert (aktuell, alt)

1-mal unkomprimiert (aktuell)
 
Zuletzt bearbeitet:
eine stinknormale tar datei ist ein unkomprimiertes archiv. wenn du komprimieren willst, musst du den schalter z (gzip) oder j (bzip2) benutzen.

erstell doch während des backups eine log-datei mit "tar -cvzf /bla/bla.tar.gz /what/to/backup 2> tar-error.log". dann siehst du wo es hängt.
Ergänzung ()

übrigens fehlt bei media/ext/samba ein slash. => /media/ext/samba. wenn du den aktuellen pfad möchtest, musst du ./media/ext/samba ... das andere ist DEFINITIV falsch.
 
ok cjf czf oder cJf? Was ist da am besten? Und wie funktioniert tar --exclude dann? einfach
Code:
tar cf $NAME-$DATE.tar media/ext/ftp --exclude $NAME-$DATE.tar
?
 
Vermutlich läuft Dein root-Verzeichnis jedesmal voll. Du kopierst ja erstmal alles vom Samba-share nach "/"
 
du brauchst keine exclude option angeben. weil sich das zielarchiv nicht in dem zu archivierenden ordner befindet, sondern im root verzeichnis. warum sparst du dir eigentlich nicht das mv und archivierst direkt zum zielordner. das ist doch sonst doppelte belastung für die platte.

tar -cvjf /media/ext/backup/ftp/$NAME-$DATE.tar.bz2 /media/ext/ftp

gzip = gute kompression, schneller
bzip = sehr gute kompression, aber langsamer
 
Zurück
Oben