[gelöst] Backup mit tar OK, aber kein Split

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

[gelöst] Backup mit tar OK, aber kein Split

Beitrag von slu » 12.11.2005 14:58:48

Hallo Forum,

nach mehreren Stunden suchen und lesen hab ich nun das hier zusammen bekommen:

Code: Alles auswählen

#!/bin/sh
tar cvzf sicherung-`date +%d-%m-%Y`.tar.gz \
         /var/log \
	/home/swolf
echo "Sicherung ok"


#!/bin/sh
tar cvzf sicherung-`date +%d-%m-%Y`.tar.gz | split -b 1m /root/sicherung-`date +%d-%m-%Y`.tar.gz.split \
	/var/log \
	/home/swolf
echo "Sicherung ok"
Leider ist es noch nicht das gelb vom Ei.
Das obere Script geht problemlos, dann wollte ich noch Split mit einbauen, aber das will einfach nicht funktionieren:

Code: Alles auswählen

root@Samuel-D:~# ./backup.sh
tar: Anlegen eines leeren Archivs wird feige verweigert.
Try `tar --help' or `tar --usage' for more information.
split: zu viele Argumente
,,split --help" gibt weitere Informationen.
Sicherung ok
root@Samuel-D:~#
Sieht einer wo es hängt?
Zweites problem ist noch das tar das Archve immer in dem Verzeichniss erstellt in dem ich das Script ausführe.
Wollte jedoch voher den Inhalt des Verzeichnisses löschen damit alte Bachups sicher weg sind, kann ich haber nicht weil da ja mein Script liegt.
Zuletzt geändert von slu am 14.11.2005 23:24:18, insgesamt 1-mal geändert.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Re: Backup mit tar ok, aber kein Split

Beitrag von Joghurt » 12.11.2005 15:22:56

slu hat geschrieben:'tar cvzf sicherung-`date +%d-%m-%Y`.tar.gz | split -b 1m /root/sicherung-`date +%d-%m-%Y`.tar.gz.split \
Eine Pipe leitet die Ausgabe des ersten Programmes (tar) an die Eingabe des zweiten (split) um. Du sagt tar aber, dass es in eine Datei schreiben soll, und somit gibt es nichts aus. Desweiteren gibts du ihm keine Dateien an, die in das Archiv sollen, weswegen tar auch feige dessen Erstellung verweigert.

Du musst sowohl tar als auch split Anweisen, nach stdout zu schreiben bzw. zu lesen.

Code: Alles auswählen

tar cvzf - /var/log /home/swolf | split -b 1M - /root/sicherung-`date +%d-%m-%Y`.tar.gz.split.
Der letzte Punkt, damit die Dateien "...split.aa" ".ab", etc und nicht "splitaa" heißen.
Das "-" heißt bei tar und split, dass die Standardausgabe/-eingabe gemeint ist.

Aber ist ein splitten in so kleine 1MB-Päckchen sinnvoll?

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 12.11.2005 16:00:05

Hallo Joghurt,

vielen Dank, jetzt sieht das schon viele besser aus!

Wegen den 1MB Päckchen, ich bin am testen. Später soll es mal auf DVD größe.

Momentan siehts nun so aus:

Code: Alles auswählen

#!/bin/sh
rm sicherung*.tar.gz.split.*
tar cvzf - /var/log /home/swolf | split -b 1M - sicherung-`date +%d-%m-%Y`.tar.gz.split.
echo "Sicherung ok"
Muss ich noch sowas wie exit einbauen um das Script zu beenden?

Ob das komprimieren so viel sinn macht weis ich auch noch nicht da es ca. 40 GB sind...
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 12.11.2005 16:15:13

slu hat geschrieben:Muss ich noch sowas wie exit einbauen um das Script zu beenden?
Nö. Was soll die Shell denn deiner Meinung nach machen, wenn sie am Ende des Skriptes angekommen ist, wenn nicht beenden?
Ob das komprimieren so viel sinn macht weis ich auch noch nicht da es ca. 40 GB sind...
Das hängt von der Entropie der 40 GB ab, sprich ob diese 40GB größtenteils schon komprimierte Daten enthalten.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 13.11.2005 02:41:34

Hallo Joghurt,

danke für deine Antwort!
Eine Frage hab ich noch, kann ich der ganze Geschichte eine max. CPU Auslastung vorgeben?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.11.2005 02:54:05

Du kannst das Skript mit "nice" starten.

Code: Alles auswählen

nice skript
# oder
nice -20 skript #wenn du es mit minimalster Priorität laufen haben willst

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 13.11.2005 03:07:37

Hallo Joghurt,

die Option scheint bei der gesammt CPU-Last etwas zu bringen, hält sich laut TOP unter 4%.
Aber warum steht bei GZIP 88,9% (wenn man mit TOP schaut)?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.11.2005 03:14:44

Wenn weiter keine Programme laufen, warum sollte gzip dann nicht den Prozessor auslasten? Nice sagt ja nur, das der Prozess weniger Zeit zugeteilt bekommt, wenn es Engpässe gibt.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 13.11.2005 03:32:59

Hi Joghurt,

das leuchtet mir ein was du gepostet hast.

Hab gerade 21 GB gesichert, auslastung der CPU war dadurch ca. 30 Minuten im Schnitt schätzungsweise 70%.

Dacht mir nun warum das ganze in 30 Minuten wenn die Kiste dazu 4 Stunden Zeit hat, dann lieber die Hardware schonen...

Sollte es keine möglichkeit geben kann ich aber so auch leben :wink:
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 13.11.2005 11:12:10

hallo slu

du plagst dich ja reichlich - gut mit der hilfe von joghurt hast du wieder ein wenig mehr wissen angehäuft was immer gut ist

ich möchte dir gerne noch eine möglichkeit aufzeigen die ein wenig mehr "cushy" ist
http://dar.linux.free.fr/ siehe Slices
was du schlußendlich auswählst bleibt dir überlassen ...


markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 13.11.2005 15:43:48

Ansonsten gibt es noch mondo (http://www.mondorescue.org) erstellt automatisch bootbare Backup-CDs. Ist auch bei Debian dabei (apt-get install mondo)

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 14.11.2005 20:12:57

@ markus,

Danke für den Tip!
Hab den "ganzen" Sonntag mit dar versuche gemacht.

Nun haben sich auch zwei fragen ergeben:
1. Ist es nötig das ich -Z "*.zip" in Ausführungszeichen angebe (hab so in einem Beispiel gesehen)?
2. Verstehe ich das richtig das ich einmal ein vollbackup mache und dann nur noch differenzbackups, mach ich nun eine Rücksicherung brauche ich nur das vollbackup und DAS LETZTE differenzbackup?

Wie handhabst du das mit dem vollbackup? Wie oft soll ich das machen? Alle drei Monate?


Und dann noch eine andere Fragen (mhm sind doch drei :wink: ), kann ich die Ausgabe am ende einer dar Operation in eine Textdatei umleiten? Möchte dar nämlich als Cronjob ausführen...
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 14.11.2005 20:28:52

slu hat geschrieben::
1. Ist es nötig das ich -Z "*.zip" in Ausführungszeichen angebe (hab so in einem Beispiel gesehen)?
um zu verhindern das die bash sonderzeichen interpretiert setzt man ausdrücke in "<expression>" - was genau du machen willst kann ich ja nicht erahnen ...

2. Verstehe ich das richtig das ich einmal ein vollbackup mache und dann nur noch differenzbackups, mach ich nun eine Rücksicherung brauche ich nur das vollbackup und DAS LETZTE differenzbac
nach einem vollbackup besteht die möglichkeit inkrementell backups zu machen - d.h. es wird im augenblick des inkrementellen backups immer die veränderung relativ zum vollbackup festgestellt und gespeichert --> ja
Wie handhabst du das mit dem vollbackup?

n+1 d.h. n inkrementelle backups und ein (1) vollbackup
Wie oft soll ich das machen? Alle drei Monate?
how should i know ...?

das hängt ab von:
datenvolumen
intervall in dem sich änderungen ergeben
relevanz der daten (eine mp3 wird nicht so wichtig sein als daten die eine sonde vom mars zur erde schickt)
usw.

Und dann noch eine andere Fragen (mhm sind doch drei :wink: ), kann ich die Ausgabe am ende einer dar Operation in eine Textdatei umleiten?
was hat das mit
Möchte dar nämlich als Cronjob ausführen...
zu tun - wo siehst du korrelation?

markus


edit:
evtl. hilft der link
http://blog.matthiaswetzka.de/index.php ... 4/08/06/13

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 14.11.2005 20:37:14

Hi markus,

danke für deine Antwort!

Den Link hab ich schon gefunden, leider verstehe ich das Script noch zu wennig, hab aber in den letzten Tagen viel neues dazugelernt dank dieses Forums :D

Wegen dem CronJob, ich hätte gerne dieses in einer Textdatei um mir das sporadisch anzuschauen:

Code: Alles auswählen

--------------------------------------------
0 inode(s) saved
with 0 hard link(s) recorded
9338 inode(s) not saved (no file change)
0 inode(s) failed to save (filesystem error)
0 files(s) ignored (excluded by filters)
0 files(s) recorded as deleted from reference backup
--------------------------------------------
Total number of file considered: 9338
--------------------------------------------
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 14.11.2005 20:46:01

nun gut ...
textfile machen

Code: Alles auswählen

touch <funny_file_name>.txt
dann ein command in der shell eingeben

Code: Alles auswählen

command > funny_file_name.txt
könnte so aussehen

Code: Alles auswählen

touch file.txt
ls -l > file.txt
dann inhalt von file.txt betrachten

Code: Alles auswählen

less file.txt
wenn du less nicht hast dann

Code: Alles auswählen

apt-get install less
markus

edit
http://www.linuxfibel.de/bash.htm

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 20.11.2005 02:22:42

Ich brauche nochmal eure Hilfe.
Folgendes:

Code: Alles auswählen

wolfserver:/wolf_backup# ./diff_backup.sh
: bad interpreter: Datei oder Verzeichnis nicht gefunden
wolfserver:/wolf_backup#
In der diff_backup.sh steht:

Code: Alles auswählen

#!/bin/sh
rm sicherung_file_server_diff*.dar
dar -y -s 680M -D -R /wolf_server -c sicherung_file_server_diff_`date -I` -Z "*.zip" -Z "*.7z" -Z "*.jpg" -Z "*.png" -A sicherung_file_server > status.txt
Das Script habe ich mit "chmod u+x diff_backup.sh" ausführbar gemacht.

Wenn ich die Befehle direkt in der Konsole eingebe gehts ohne Probleme.

Wo klemmt da?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Beitrag von fuzzy » 20.11.2005 08:05:37

slu hat geschrieben:

Code: Alles auswählen

#!/bin/sh
rm sicherung_file_server_diff*.dar
dar -y -s 680M -D -R /wolf_server -c sicherung_file_server_diff_`date -I` -Z "*.zip" -Z "*.7z" -Z "*.jpg" -Z "*.png" -A sicherung_file_server > status.txt
Wenn ich die Befehle direkt in der Konsole eingebe gehts ohne Probleme.

Wo klemmt da?
Hallo slu,
aus meiner Sicht klemmt es an den Pfaden, die sollten "absolut" sein, also es sollten alle Pfade mit "/" beginnen.

Code: Alles auswählen

fuzzy@sid:/tmp$ which rm
/bin/rm
fuzzy@sid:/tmp$ which dar
/usr/bin/dar
daraus ergibt sich ->

Code: Alles auswählen

#!/bin/sh

/bin/rm /PFAD/ZU/sicherung_file_server_diff*.dar
/usr/bin/dar -y -s 680M -D -R /wolf_server -c /PFAD/ZU/sicherung_file_server_diff_`date -I` -Z "*.zip" -Z "*.7z" -Z "*.jpg" -Z "*.png" -A /PFAD/ZU/sicherung_file_server > /PFAD/ZU/status.txt
...hoffentlich habe ich Dir jetzt, keine logischen Fehler eingebaut, aber die jeweils genaue Pfadangabe sollte helfen, bitte anpassen und "vorsichtig" testen... :wink:

Gruß fuzzy

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 20.11.2005 12:55:50

Hi fuzzy,

leider war das nicht die Lösung :cry:

Gleiches verhalten.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Beitrag von fuzzy » 20.11.2005 13:16:31

Hallo slu,
ja schade...
Kannst Du bitte nochmal den aktuellen "Script-Inhalt" und "ls -l /PFAD/ZU/diff_backup.sh" und "Fehlermeldung" posten.

Gruß fuzzy

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 20.11.2005 16:02:16

Ersetze mal "#!/bin/sh" durch "#!/bin/sh -x", dann wird jede ausgeführte Zeile ausgegeben, da kann man eher sehen, woran es hakt. Obwohl die Meldung darauf hindeutet, dass die erste Zeile (#!) falsch ist. Entweder bei dir oder bei dar

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 20.11.2005 22:36:30

@ Joghurt,

-x geht nicht, ist keine gültige angabe.

@ fuzzy,

Code: Alles auswählen

#!/bin/sh
/bin/rm /wolf_backup/sicherung_file_server_diff*.dar 
dar -y -s 680M -D -R /wolf_server -c /wolf_backup/sicherung_file_server_diff_`date -I` -Z "*.zip" -Z "*.7z" -Z "*.jpg" -Z "*.png"
-rwxrwxrwx 1 root root 269 2005-11-20 12:57 diff_backup.sh
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 20.11.2005 22:56:46

/bin/sh durch /bin/bash ersetzen.

slu
Beiträge: 2237
Registriert: 23.02.2005 23:58:47

Beitrag von slu » 20.11.2005 23:03:13

Ich habe nochmal auf einem anderen Rechner die gleiche Datei erstellt (inhalt) und auf den Server kopiert und nun gehts. Waum weis ich leider nicht.

Die neu erstellt geht auch mit sh.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Antworten