Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 26.07.2013 11:08:48
Hi all,
ich habe einen samba laufen auf /media/sdb1
Diese möchte ich per rsync auf /media/sdc1 syncen per script /cronjob
Sind verschiedene interne Platten aber gleiche Partitionsgröße.
Mein normaler rsync befehlt lautet:
Code: Alles auswählen
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log
Kann ich den jetzt einfach mit nano als .sh so speichern und mittels crontab aufrufen?
Code: Alles auswählen
#!/bin/bash
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log
fi
Kann ich da noch ne mail Funktion einbauen , die informiert wenn ein Fehler wäre?
Thx vorab
-
syssi
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Beitrag
von syssi » 26.07.2013 11:14:56
Code: Alles auswählen
#!/bin/bash
if ! /usr/bin/rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log
then
echo Fehler | mail root
fi
Wenn es aber sowieso als Cronjob laeuft, dann schickt der Cronjob schon eine Mail, wenn rsync eine Ausgabe produziert. Du solltest also dafuer sorgen, dass rsync in den normalen Durchlaeufen ungespraechig ist und nur Fehlermeldungen ausgibt. In der Regel erreicht man das, indem man die Standardausgabe nach /dev/null schickt und nur Standard-Error vom Cronjob verschickt wird:
Code: Alles auswählen
#!/bin/bash
/usr/bin/rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log >/dev/null
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 26.07.2013 12:20:35
hi und vielen Dank
werde ich so dann mal testen. - vielleicht noch die Frage ob es (abgesehen das dort das primäre Verzeichnis für ausführbare Dateien)
egal ist von wo das skript gestartet wird?
Und grundsätzlich kann ich dann solche einfachen Skripte 1:1 übernehmen nur mit Pfad dazu ? also:
greets
-
Cae
- Beiträge: 6349
- Registriert: 17.07.2011 23:36:39
- Wohnort: 2130706433
Beitrag
von Cae » 26.07.2013 14:41:22
cyberurmel hat geschrieben:werde ich so dann mal testen. - vielleicht noch die Frage ob es (abgesehen das dort das primäre Verzeichnis für ausführbare Dateien)
egal ist von wo das skript gestartet wird?
Ja, sofern das darunter liegende Dateisystem nicht mit
noexec gemountet ist. Falls es im
PATH sein soll, wuerde man es traditionell nach
/usr/local/sbin/ stecken (nicht
bin/, weil's ein Administrationsskipt fuer root ist). Falls nicht, nach
/usr/local/.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
syssi
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Beitrag
von syssi » 26.07.2013 14:42:27
Du musst lediglich sicherstellen, dass die Umgebungsvariable PATH gesetzt ist und /usr/bin enthaelt, dann kannst du dir auch die absoluten Pfade sparen. Ich habe den Pfad nur zur Sicherheit absolut gemacht, damit es bei einem nicht gesetzten PATH keine Probleme gibt.
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 26.07.2013 16:13:40
ok...danke
Jetzt habe ich es mal testen wollen und mein RAM läuft voll... laut Faq dürfte das aber nur bei vielen Daten sein. Ich habe 15 Ordner und in einem ca 20 Unterordner mit je 1-2 Dateien a 3-5 GB.
???
Was kann ich da tun?
greets
-
Cae
- Beiträge: 6349
- Registriert: 17.07.2011 23:36:39
- Wohnort: 2130706433
Beitrag
von Cae » 26.07.2013 16:24:07
Swap anlegen/vergroessern?
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 29.07.2013 09:18:56
Hallo Cae,
darauf wäre ich jetzt gar nicht gekommen. Dachte nicht das das volläuft.
Meine Swap ist 6 GB und mein RAM 8 GB .
An was muss ich mich da orientieren wieviel ich für das rsync brauche? Da ich ja synce und die Part 950 GB groß ist , ist da ne Menge Spielraum
Also da auch Filme darauf sind - sind einzelne files im 5-8GB Bereich durchaus möglich.
Jetzt größer machen oder "einfach" swapd nehmen?
thx für deine Meinung
greets
Cyb
-
uname
- Beiträge: 12406
- Registriert: 03.06.2008 09:33:02
Beitrag
von uname » 29.07.2013 10:46:01
Ich denke mal dass der RAM vollläuft liegt eher an einem fehlerhaften Aufruf. Schau dir mal während der Ausführung die Prozessliste mit top, htop oder aus pstree an.
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 29.07.2013 12:01:33
Hi .
ok - ich gebe ja zu das ich gar nicht wirklich weiß wonach ich da schauen soll
Ich sehe der Ram läuft zu , dann schreibt er auf die swap.
Mit htop habe ich gesehen das er zigtausend PID aufmacht mit dem Befehl und auch Memory volläuft . Dann bekomme ich die Meldung:
/usr/bin/rsync: fork: Nicht genügend Hauptspeicher verfügbar
und nun?
thx vorab
-
uname
- Beiträge: 12406
- Registriert: 03.06.2008 09:33:02
Beitrag
von uname » 29.07.2013 12:59:51
Poste mal wie du aufrufst und wie die Datei genau aussieht.
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 29.07.2013 13:15:48
Hi uname ,
wie oben bereits geschrieben- Aufruf über
Code: Alles auswählen
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/
Wobei ja die ganze Partition kopiert werden soll also hier
von part sdb1 in sdc1/bpsdb/
Die sdb1 ist der filestore von meinem Samba Server.
10 Verzeichnisse , eins davon mit ca .10 Unterordner - zwischen 500MB und 10 GB groß (Filme). Insgesamt 60GB.
Das wollte ich zum testen nehmen bevor ich die anderen Ordner fülle- aber siehe zuvor funzt nicht.
ach ja in den Ordner sind es ja meist nur 2 files : .DS_Store und film.mkv
hilft das weiter?
greets
Cyb
-
AndyJ9
- Beiträge: 29
- Registriert: 15.01.2013 16:39:54
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Beitrag
von AndyJ9 » 29.07.2013 13:48:12
cyberurmel hat geschrieben:
Mein normaler rsync befehlt lautet:
Code: Alles auswählen
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log
Kann ich den jetzt einfach mit nano als .sh so speichern und mittels crontab aufrufen?
Code: Alles auswählen
#!/bin/bash
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/ --log-file=/media/sdc1/logs/rsync.log
fi
Ich vermute das Problem in dem "--progress".
"--progress" wird verwendet um "aktiv" den erreichten Zustand anzuzeigen. Das ganz aus einem Script ohne Bildschirmausgabe aufgerufen könnte zu Problemen führen.
Versuch doch das "--progress" mal wegzulassen.
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 29.07.2013 16:14:57
Hi ,
das hatte ich auch schon versucht. Auch ohne logfile rein nur
Code: Alles auswählen
rsync --delete -avb --progress /media/sdb1/ /media/sdc1/bpsdb1/ --backup-dir=/media/sdc2/bdel/
brachte aber auch nichts.
Es muss mit den Daten zusammen hängen oder deren Größe.
Das Grundgerüst ohne Inhalte der Daten hat er ja über dieselbe Syntax gemacht. Ohne Probs.
Auch das mit dem deleten in das andere Verzeichnis- Kein Problem. Erst mit den Inhalten ist er so hochgelaufen.
Und abgesehen von deren Größe sind es vielleicht 40 files mit Ordner.
greets
-
cyberurmel
- Beiträge: 84
- Registriert: 13.05.2013 12:30:59
Beitrag
von cyberurmel » 01.08.2013 13:14:16
Hi,
habe mit dpkg -C fehlerhaftes Paket (Prüfsumme) deinstalliert. Wieder installiert. rsync deninstalliert - installiert.
Und siehe da... es geht - selbe Syntax da paste und copy. Also hatte (s)ich wohl was im System irgendwie zerdübelt gehabt.
thx
greets
cyb
ach .ja..wie kriege ich denn das gelöst vor den Tröt?