Rsync soll löschen was nicht mehr vorhanden ist.
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Rsync soll löschen was nicht mehr vorhanden ist.
Hallo zuasmmen,
ich habe schon die Manpage von Rsync gelesen, aber scheinbar die richtige Option nicht gefunden. Folgende Situation:
rsync -rv /home/ich/Daten /media/extusb/Daten
Rsync soll aber auch alle Dateien und Verzeichnisse löschen die nicht mehr da sind, da es durchaus vorkommt das ich Dateien verschiebe usw...
Wie mache ich das?
ich habe schon die Manpage von Rsync gelesen, aber scheinbar die richtige Option nicht gefunden. Folgende Situation:
rsync -rv /home/ich/Daten /media/extusb/Daten
Rsync soll aber auch alle Dateien und Verzeichnisse löschen die nicht mehr da sind, da es durchaus vorkommt das ich Dateien verschiebe usw...
Wie mache ich das?
Re: Rsync soll löschen was nicht mehr vorhanden ist.
'--delete'
Vorsicht! manpage genau durchlesen! Ausprobieren!
Vorsicht! manpage genau durchlesen! Ausprobieren!
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Hab mir gerade damit die Sicherung gekillt. Wollte --delete-before ausprobieren, aber habe vergessen den Ordner Daten/Musik anzugeben. Ist nicht so tragisch fürs nächste mal weiß ich es.
- KBDCALLS
- Moderator
- Beiträge: 22360
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Evetuell mit --dry-run und -v einen Testlauf durchführen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Code: Alles auswählen
rsync -aSHAXh --delete --progress --stats --numeric-ids
Code: Alles auswählen
alias cp='rsync -aSHAXh --delete --progress --stats --numeric-ids'
http://sunoano.name/ws/bash.html#some_b ... tion_i_did
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Ne also das war noch nicht des Rätsel Lösung. Ich glaube ihr habt mich ein wenig falsch verstanden.
Ich möchte das rsync die Dateien auf dem Ziellaufwerk löscht die in der Quelle nicht vorhanden sind und nicht einfach alles im Ziel löscht, da sonst die Übertragung immer solange dauert.
Ein Beispiel:
Musik/Super Album wird in der Quelle umbenannt in /Musik/Mega Album.
Dann soll rsync Musik/Super Album löschen und Mega Album kopieren. Mit dem delete Befehl löscht er aber einfach alles, auch was sich überhaupt nicht verändert hat.
Hoffe das es nun ein wenig klarer ist.
Ich möchte das rsync die Dateien auf dem Ziellaufwerk löscht die in der Quelle nicht vorhanden sind und nicht einfach alles im Ziel löscht, da sonst die Übertragung immer solange dauert.
Ein Beispiel:
Musik/Super Album wird in der Quelle umbenannt in /Musik/Mega Album.
Dann soll rsync Musik/Super Album löschen und Mega Album kopieren. Mit dem delete Befehl löscht er aber einfach alles, auch was sich überhaupt nicht verändert hat.
Hoffe das es nun ein wenig klarer ist.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Ein einfaches "rsync" wäre mir generell zu gefährlich. Ich setze auf inkrementelle Tagesbackups. In einer alten Tagesversion wird nie etwas gelöscht. Erst wenn der Tag als veraltet gilt wird das ganze Tagesbackup gelöscht. Die Hardlinks halten den Rest des Backups zusammen
http://wiki.ubuntuusers.de/skripte/Backup_mit_RSYNC
Das Script nutzt im übrigen auch "--delete", obwohl es eigentlich unnötig ist bzw. nur Sinn macht, wenn man das Script mehrmals am Tag durchläuft.
http://wiki.ubuntuusers.de/skripte/Backup_mit_RSYNC
Das Script nutzt im übrigen auch "--delete", obwohl es eigentlich unnötig ist bzw. nur Sinn macht, wenn man das Script mehrmals am Tag durchläuft.
In allen älternen Tagessicherungen bleibt "Super Album" erhalten, bis die Sicherung selbst verschwindet. In der neusten Tagessicherung und allen anderen neuen Sicherungen heißt es dann "Mega Album". Bei extremen Umbenennaktionen erhöht sich natürlich dadurch die benötigte Backupmenge. Auch ist der Kopieraufwand beim ersten Mal sehr hoch, da das System keine Hardlinks setzen kann. Die Daten werden vollkommen neu kopiert. Aber ab dem zweiten Tag geht es dann wieder sehr schnell.Ein Beispiel:
Musik/Super Album wird in der Quelle umbenannt in /Musik/Mega Album.
Dann soll rsync Musik/Super Album löschen und Mega Album kopieren.
- stollenreiter
- Beiträge: 402
- Registriert: 10.08.2004 16:30:47
- Wohnort: Bremen
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Alternativende hat geschrieben:Ne also das war noch nicht des Rätsel Lösung. Ich glaube ihr habt mich ein wenig falsch verstanden.
Ich möchte das rsync die Dateien auf dem Ziellaufwerk löscht die in der Quelle nicht vorhanden sind und nicht einfach alles im Ziel löscht, da sonst die Übertragung immer solange dauert.
Ein Beispiel:
Musik/Super Album wird in der Quelle umbenannt in /Musik/Mega Album.
Dann soll rsync Musik/Super Album löschen und Mega Album kopieren. Mit dem delete Befehl löscht er aber einfach alles, auch was sich überhaupt nicht verändert hat.
Hoffe das es nun ein wenig klarer ist.
Aber genau das macht doch ein rsync mit --delete Angabe. Er löscht nur die Dateien im Zielordner/Zielrechner, wenn sie nicht mehr auf dem lokalen Verzeichnis/Rechner vorhanden sind. So mache ich das schon seit Jahren.
In deinem Fall würde er im Ziel das Verzeichnis Musik/SuperAlbum löschen und das Verzeichnis Musik/MegaAlbum anlegen.
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Also so wie ich das gesehen hab hat er gestern bei folgendem Befehl :
den kompletten Inhalt des Verzeichnisses /media/Verbatim/Musik/ gelöscht und erst danach angefangen zu kopieren. Ich habe nämlich nur 2 Verzeichnisse hinzugefügt, aber er hat trotzdem alles kopiert.
Code: Alles auswählen
rsync -rv --delete /home/ich/Musik/ /media/Verbatim/Musik/
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Habe ich richtig gesehen, dass Du die Option "r" nutzt? Vielleicht liegt da der Fehler.
Versuche die Option "a"
Versuche die Option "a"
Code: Alles auswählen
rsync -av --delete /home/ich/Musik/ /media/Verbatim/Musik/
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Danke für den Hinweis ich habe es mir gerade mal auf de Manpage durchgelesen. Macht schon Sinn .
- sum69sum
- Beiträge: 109
- Registriert: 27.09.2005 14:30:00
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Rsync soll löschen was nicht mehr vorhanden ist.
hier ein kleines rsync script das ich verwende.
kannst du entfernen wenn du direkt von platte zu platte backup machst.
gruss tom
Code: Alles auswählen
--bwlimit=180000
gruss tom
Code: Alles auswählen
#!/bin/bash
# Put backslashes on the end of your directories. It's safer that way
DESTINATION=/home/zumbi/0_backups/0_backups/_temp_downloads/
SOURCE=/mnt/desaster/0_backups/_temp_downloads/
# You should have a directory to log this sort of thing
LOGDIR=/tmp/
# This file should be specific to this script. I just overwrite it every time to save space.
LOGFILE="temp_downloads__DESASTER_2_monster.log"
# It's important to check that the relevant directories exist beforehand.
# Otherwise, things could get messy
if [ -d ${SOURCE} ] && [ -d ${DESTINATION} ]
then
rsync -avo --delete --bwlimit=180000 --progress ${SOURCE} ${DESTINATION} >& ${LOGDIR}/${LOGFILE}
else
# Complain if one or both of the directories are missing.
# Complain to the logfile though. Otherwise, you'll get a bunch of email from the system --
# one each time it runs
echo "Missing needed director(y/ies)!" >& ${LOGDIR}/${LOGFILE}
fi
- LessWire
- Beiträge: 558
- Registriert: 21.11.2004 04:36:04
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Bavaria
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Wahrscheinlich willst Du das Verzeichnis "Musik" von "/home/ich/" nach "/media/Verbatim/" verschieben bzw. synchronisieren!?Alternativende hat geschrieben:Also so wie ich das gesehen hab hat er gestern bei folgendem Befehl :
den kompletten Inhalt des Verzeichnisses /media/Verbatim/Musik/ gelöscht und erst danach angefangen zu kopieren. Ich habe nämlich nur 2 Verzeichnisse hinzugefügt, aber er hat trotzdem alles kopiert.Code: Alles auswählen
rsync -rv --delete /home/ich/Musik/ /media/Verbatim/Musik/
Dann muß der Befehl lauten:
Code: Alles auswählen
rsync -rv --delete /home/ich/Musik /media/Verbatim/
So wie Du es angegeben hast, entsteht als Ziel "/media/Verbatim/Musik/Musik/", vermutlich aber auch nur dann, wenn "/media/Verbatim/Musik/" bereits existiert.
Gruß, LW
at ~ now.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Code: Alles auswählen
rsync -auv --delete-after source target
-u, --update skip files that are newer on the receiver
Ja, delete-after klappt bei mir auch nicht immer... im Normalfall aber schon.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Kann ja eigentlich bei einem Backup in eine Richtung gar nicht sein.-u, --update skip files that are newer on the receiver
Re: Rsync soll löschen was nicht mehr vorhanden ist.
-u, --update skip files that are newer on the receiver
Kann ja eigentlich bei einem Backup in eine Richtung gar nicht sein.
Erstens hat die manpage immer Recht
Zweitens: klar kann das sein.
Der erste Durchlauf von rsync. Dateien rüber.
Der zweite Durchlauf: die Dateien, die sich auf der Quelle nicht geändert haben sind auf dem Ziel neuer als auf der source. Der letzte Zugriff (im Sinne einer Änderung) war eben das Kopieren.
Wenn Du auf den Dateien der Quelle nach dem Kopieren eine Änderung vornimmst sind die Dateien auf der Quelle damit neuer als die auf dem Ziel und werden erneut kopiert.
Die Dateien, die gleich geblieben sind, werden also nicht erneut kopiert.
Und es kann nicht nur so sein, es ist auch so.
Alle Unklarheiten weg? Wahrscheinlich eher nicht...
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Dann sagt mir mal jemand welches Datum genommen wird. Ich hoffe doch "mtime" und nicht "ctime".
Code: Alles auswählen
stat /media/backup/Tag/100625/etc/passwd
File: »/media/backup/Tag/100625/etc/passwd«
Size: 2624 Blocks: 8 IO Block: 4096 reguläre Datei
Device: 302h/770d Inode: 211269 Links: 8
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-06-18 01:00:30.000000000 +0200
Modify: 2010-06-17 13:32:55.000000000 +0200
Change: 2010-06-25 01:00:04.000000000 +0200
Code: Alles auswählen
stat /etc/passwd
File: »/etc/passwd«
Size: 2624 Blocks: 8 IO Block: 4096 reguläre Datei
Device: 303h/771d Inode: 34092 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-06-25 10:05:24.000000000 +0200
Modify: 2010-06-17 13:32:55.000000000 +0200
Change: 2010-06-17 13:32:56.000000000 +0200
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Das Problem ist auch nicht gelöst. Trotz Aufruf von wird immer alles übertragen. Scheitert es am FAT32 Dateisystem auf der externen Platte? Kann ich evtl. modification Time oder so als Option benutzen?
Code: Alles auswählen
rsync -auv --delete Quelle Ziel
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Wird wirklich alles übertragen oder dauert nur die Ausgabe (-v) so lange. Schau dir mal die Ausgaben von "stat" von Quelle und Ziel an. Kopiere auch mal alles in einen leeren Ordner und vergleich die Zeit bei den unterschiedlich vollen Zielordnern, verzichte evtl. auf die Option "-v".wird immer alles übertragen.
Code: Alles auswählen
date ; rsync ... ; date
-
- Beiträge: 42
- Registriert: 13.04.2009 08:17:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Verden - Nds.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Hallo dawg,
also ich synchronisiere einmal am Tag mit einem Script per crontab meine Daten-Festplatte auf eine Backup-Festplatte. Das Script enthält nur folgenden Befehl:
rsync -av --recursive --delete --progress --update /daten /backup_daten
Neue Daten werden rüberkopiert und auf /daten gelöschte Daten werden auch im Backup gelöscht.
Gruß underliner
also ich synchronisiere einmal am Tag mit einem Script per crontab meine Daten-Festplatte auf eine Backup-Festplatte. Das Script enthält nur folgenden Befehl:
rsync -av --recursive --delete --progress --update /daten /backup_daten
Neue Daten werden rüberkopiert und auf /daten gelöschte Daten werden auch im Backup gelöscht.
Gruß underliner
Google is my teacher !!!
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Rsync soll löschen was nicht mehr vorhanden ist.
@underliner
Was für ein Filesystem hat denn die Backup Platte?
Was für ein Filesystem hat denn die Backup Platte?
-
- Beiträge: 42
- Registriert: 13.04.2009 08:17:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Verden - Nds.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Hallo dawg,
ja ist ext3 und nicht FAT32.
ja ist ext3 und nicht FAT32.
Google is my teacher !!!
- pangu
- Beiträge: 1400
- Registriert: 15.11.2011 20:50:52
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: /proc/1
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Ich häng mich an diesen Thread, da es sehr gut reinpasst.
Mein Befehl sieht momentan so aus:
rsync -ave ssh --delete --exclude=exporttmp/ /var/www/site1/ remoteserver_key_authorized:/var/www/site1/htdocs/
Mein Problem ist folgendes. Auf dem Ziel gibt es /var/www/site1/htdocs/.htaccess und /var/www/site1/htdocs/errorpages/blabla.html
Wenn ich den obigen Befehl ausführe, dann werden auf dem Zielsystem die .htaccess und das Verzeichnis errorpages gelöscht, da sie ja auf der Quelle nicht vorhanden sind. Wie bringe ich dem rsync bei, dass er das --delete nur auf seine Quelldateistruktur anwenden soll, nicht aber auf andere vorhandene Dateien dort? geht das überhaupt?
Mein Befehl sieht momentan so aus:
rsync -ave ssh --delete --exclude=exporttmp/ /var/www/site1/ remoteserver_key_authorized:/var/www/site1/htdocs/
Mein Problem ist folgendes. Auf dem Ziel gibt es /var/www/site1/htdocs/.htaccess und /var/www/site1/htdocs/errorpages/blabla.html
Wenn ich den obigen Befehl ausführe, dann werden auf dem Zielsystem die .htaccess und das Verzeichnis errorpages gelöscht, da sie ja auf der Quelle nicht vorhanden sind. Wie bringe ich dem rsync bei, dass er das --delete nur auf seine Quelldateistruktur anwenden soll, nicht aber auf andere vorhandene Dateien dort? geht das überhaupt?
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Eventuell suchst du --exclude= bzw. --exclude-from=.
Gruß Cae
Gruß 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
- pangu
- Beiträge: 1400
- Registriert: 15.11.2011 20:50:52
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: /proc/1
Re: Rsync soll löschen was nicht mehr vorhanden ist.
Ja damit geht's natürlich. Ich muss halt dann meine exclude-Liste ergänzen. Ich dachte vielleicht gäbe es noch 'ne andere Option, so eine Art --delete die nur für die FILELIST gilt,nicht aber für aussenstehende Dateistrukturen. Ok, dann hat sichs erledigt. Werd's weiterhin über die excludes managen.
danke
danke
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.