Rsync soll löschen was nicht mehr vorhanden ist.

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Alternativende
Beiträge: 2014
Registriert: 07.07.2006 18:32:05

Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von Alternativende » 20.06.2010 13:01:35

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?

rendegast
Beiträge: 14272
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von rendegast » 20.06.2010 13:05:19

'--delete'
Vorsicht! manpage genau durchlesen! Ausprobieren!
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Alternativende
Beiträge: 2014
Registriert: 07.07.2006 18:32:05

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von Alternativende » 20.06.2010 13:32:05

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.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 21287
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.

Beitrag von KBDCALLS » 20.06.2010 14:15:23

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:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

suno
Beiträge: 354
Registriert: 25.07.2008 17:33:40

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von suno » 20.06.2010 16:29:54

Code: Alles auswählen

rsync  -aSHAXh  --delete --progress --stats --numeric-ids
ist was ich intern immer verwende; viele Leute setzen sogar diesen alias

Code: Alles auswählen

alias cp='rsync  -aSHAXh  --delete --progress --stats --numeric-ids'
Wenn du nicht nur intern Daten verschiebst, dann lohnt sich auch SSH zu verwenden (siehe syncsec alias)
http://sunoano.name/ws/bash.html#some_b ... tion_i_did

Alternativende
Beiträge: 2014
Registriert: 07.07.2006 18:32:05

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von Alternativende » 23.06.2010 13:50:15

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.

uname
Beiträge: 8988
Registriert: 03.06.2008 09:33:02

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von uname » 23.06.2010 14:51:00

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.
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.
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.

Benutzeravatar
stollenreiter
Beiträge: 394
Registriert: 10.08.2004 16:30:47
Wohnort: Bremen

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von stollenreiter » 23.06.2010 16:38:00

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.
Gruß Stollenreiter
wat mutt, dat mutt
Mein Jakobsweg heißt Darb al-Arba'in

Alternativende
Beiträge: 2014
Registriert: 07.07.2006 18:32:05

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von Alternativende » 24.06.2010 08:01:29

Also so wie ich das gesehen hab hat er gestern bei folgendem Befehl :

Code: Alles auswählen

rsync -rv --delete /home/ich/Musik/ /media/Verbatim/Musik/
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.

uname
Beiträge: 8988
Registriert: 03.06.2008 09:33:02

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von uname » 24.06.2010 08:34:26

Habe ich richtig gesehen, dass Du die Option "r" nutzt? Vielleicht liegt da der Fehler.

Versuche die Option "a"

Code: Alles auswählen

rsync -av --delete /home/ich/Musik/ /media/Verbatim/Musik/

Alternativende
Beiträge: 2014
Registriert: 07.07.2006 18:32:05

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von Alternativende » 24.06.2010 08:52:43

Danke für den Hinweis ich habe es mir gerade mal auf de Manpage durchgelesen. Macht schon Sinn ;).

Benutzeravatar
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.

Beitrag von sum69sum » 24.06.2010 12:12:06

hier ein kleines rsync script das ich verwende.

Code: Alles auswählen

--bwlimit=180000
kannst du entfernen wenn du direkt von platte zu platte backup machst.
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

Benutzeravatar
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.

Beitrag von LessWire » 25.06.2010 04:52:58

Alternativende hat geschrieben:Also so wie ich das gesehen hab hat er gestern bei folgendem Befehl :

Code: Alles auswählen

rsync -rv --delete /home/ich/Musik/ /media/Verbatim/Musik/
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.
Wahrscheinlich willst Du das Verzeichnis "Musik" von "/home/ich/" nach "/media/Verbatim/" verschieben bzw. synchronisieren!?

Dann muß der Befehl lauten:

Code: Alles auswählen

 rsync -rv --delete /home/ich/Musik /media/Verbatim/ 
Aufpassen bei der Angabe der Quell- und Zielverzeichnisse und auch auf die backslashs achten! Zielverzeichnis ohne ".../Musik" angeben!

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.

dawg
Beiträge: 441
Registriert: 29.12.2008 19:59:00

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von dawg » 25.06.2010 06:10:43

Code: Alles auswählen

rsync -auv --delete-after source target
man rsync:
-u, --update skip files that are newer on the receiver

Ja, delete-after klappt bei mir auch nicht immer... im Normalfall aber schon.

uname
Beiträge: 8988
Registriert: 03.06.2008 09:33:02

Re: Rsync soll löschen was nicht mehr vorhanden ist.

Beitrag von uname » 25.06.2010 07:52:46

-u, --update skip files that are newer on the receiver
Kann ja eigentlich bei einem Backup in eine Richtung gar nicht sein.

Antworten