rsync nur zu bestimmten Zeiten laufen lassen?

Status
Für weitere Antworten geschlossen.

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Hallo,

ich würde per rsync gerne ein Verzeichnis synchronisieren lassen, das soll aber nur von Mitternacht bis 7:00 Uhr in der Früh passieren. Also um 7:00 Uhr soll sich rsync wieder beenden und erst wieder um Mitternacht starten.
Wie löst man sowas denn am geschicktesten?
Im Internet habe ich von einem rsync Parameter --stop-at 07:00 gelesen, diesen scheint es aber bei der Synology Version von rsync leider nicht zu geben.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Wie lange dauert denn der Sync?

rsync gleicht einmal ab und synced/überträgt die Daten.
Danach macht er erst weiter, wenn er wieder aufgerufen wird.
Das ist kein Dauersync wie Synology Drive oder ähnliches.
 

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Kann über VPN schon mal über 24 Stunden dauern, deshalb möchte ich nicht, dass er mir tagsüber die Leitung zumacht. Es gäbe zwar den Parameter bwlimit, aber dann wäre rsync in der Nacht ja leider auch limitiert, obwohl es da niemanden stören würde.
Ich weiß, dass rsync immer wieder aufgerufen werden muss.

Ich würde es halt gerne von Mitternacht bis 7:00 Uhr unlimitiert laufen lassen und evtl. auch tagsüber, aber halt limitiert.

Hättest du eine Idee, wie man das elegant lösen könnte?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
Mal so als Idee:

1. Richte einen cron Job ein der ab 24:00 den rsync anstoesst
2. Richte einen cron Job ein der um 7:00 den rsync stoppt. Hammermethode ist kill -9 . Die humane Methode ist kill -15. In wieweit rsync bei den Signal reagiert musst Du ausprobieren.
 

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Danke für den Tipp, die Idee mit kill kam mir auch schon, aber ich hätte halt nach einer eleganten Lösung gefragt.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Kill ist nicht unbedingt nicht elegant. :)

Weiß aus dem Stand nicht ob rsync sigterm auswertet.

Aber vielleicht muss auch das Konzept überdacht werden.

Dauert der Sync öfter mal 24h oder ähnlich lang, auch wenn ein initiale Sync schon existiert?
Dann würdest du vermutlich nie mehr fertig werden, wenn du nur 7h lang am Tag abgleichst.

Von daher vielleicht geschickter einmal in den sauren Apfel zu beißen und den Initial am Stück laufen zu lassen. Und je häufiger du syncst, desto kleiner würden die einzelnen Transfers.
Und wenn täglich mehr geänderte Daten anfallen, als dass du in 7h transferieren kannst wirst damit nicht glücklich.
 

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Ich synchronisiere damit ein Backup-Verzeichnis von Acronis True Image auf eine andere NAS über VPN. Wenn Acronis True Image ein Full Backup mit ca. 210 GB gemacht hat, dann dauert es gut 24h.
Aktuell habe ich es aber so eingestellt, dass das nur einmal pro Woche der Fall ist und werde das vermutlich auf alle 30 Tage erhöhen.
Der Sync wird also sehr wohl fertig, aber ich suche halt nach einer guten Lösung, wie rsync nur in der Nacht mit Full Speed läuft.
Noch jemand Ideen?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Pkill und sigterm sind gebräuchliche Optionen beim scripting.

Die stop-at und time-limit Optionen kamen vermutlich erst mit rsync 3.1.1 oder später hinzu.

Wenn man sich also nicht mit einer passenden DS die Docker unterstützt eventuell dort einen aktuelleren rsync bastelt nimmt man halt die Optionen die vorhanden sind.
 

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Danke. Hätt's inzwischen mit kill -15 gebastelt.
Wäre es besser auf pkill oder sigterm umzustellen? Wäre ja so gut wie kein Aufwand jetzt.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
'pkill rsync' wäre die einfachere Syntax. Für sigterm brauchst halt erst die PID. Wenn du die schon hast würde ich das nehmen.
Oder 'kill - SIGINT PID', dass ist vielleicht das schwächste und entspricht Strg+C
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
..Ich synchronisiere damit ein Backup-Verzeichnis von Acronis True Image auf eine andere NAS über VPN. Wenn Acronis True Image ein Full Backup mit ca. 210 GB gemacht hat, dann dauert es gut 24h...
Ist das eine dicke Datei oder ein Verzeichnis mit vielen Dateien? Bei ersterem nutzt mein Ansatz nicht da immer wieder von vorne angefangen wird :(
 

mensa

Benutzer
Mitglied seit
06. Mrz 2015
Beiträge
279
Punkte für Reaktionen
2
Punkte
18
Es ist ein Verzeichnis wo Backup Files von Acronis True Image von einem PC reinkommen.
Also das wird einmal pro Woche (oder einmal pro Monat) eine große Datei mit gut 200 GB sein und dann täglich die inkrementellen Backups mit ungefähr 1 - 10 GB.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat