[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Re: Vergleich zweier Verzeichnisse



On Thu, 24 Jul 2003, J. Volkmann wrote:

> Hallo Sven
> 
Hallo Johannes,

> Danke für die Antwort.
Gern geschehen. Dafür gibt es ja solche Listen ;-)

> 
> Sven Bergner (bergner@Fh-Worms.de) schrieb:
> 
> > On Wed, 23 Jul 2003, J. Volkmann wrote:
> > 
> > > ich habe hier zwei Verzeichnisse mit verschiedenen Dateien.
> > > 
> > > Jetzt will ich die Dateien aus Verzeichnis A mit denen aus Verzeichnis B
> > > synchronisieren. Erster Gedanke war rsync (besonders einfach, da die
> > > Verzeichnisse auf dem gleichen Rechner sind).
> > > 
> > > Doch jetzt sind mir zwei kleine Probleme aufgefallen:
> > > 1.) Einige Dateien sind doppelt vorhanden. Er soll dann automatisch die
> > > größere nehmen. Blöderweise finde ich bei rsync keine derartige Option?
> > 
> > Es gibt auch keine. rsync synct immer nur in eine Richtung. 
> >
> Arr. Aber wenn ich das erst von Rechner A auf B und danach von B auf A
> mache, sollte ich doch hinterher auf A alles haben was ich eigentlich
> will, oder?
Prinzipiell würde ich ja sagen.
Das Problem liegt meines erachtens darin, die erste synchronisierung
hinzubekommen. Das habe ich in meinem Fall einmal von Hand gemacht.
Danach habe ich mir ein Shell-Script geschrieben, das mit Hilfe der
Optionen -coming und -going entschieden hat, in welche Richtung er
syncronisieren soll.
In meinem Fall ist es so, dass ich meinen Rechner zu Hause und meinen
Rechner in der Firma so syncronisiere. Die Optionen coming und going
verwende ich sowohl zu Hause als auch in der Firma. Ein kleines
Beispiel zur verdeutlichung: Wenn ich abends zu Hause fertig mit arbeiten
bin syncronisiere ich den Stand zu Hause mit einem Rechner im
Internet(früher) oder meinem USB-Stick(mittlerweile) mit der Option
-going. Komme ich am nächsten Morgen in der Firma an, syncronisiere mit
der Option -coming meinen Rechner in der Firma mit dem Inhalt
des USB-Sticks. Abends geht das Spiel dann genau umgekehrt.


> 
> > Hast Du Dir mal die man-pages angesehen. Da gibt es z.B. die Option
> > --size-only die sollte das machen.
> > 
> Ja, die habe ich gelesen. Aber diese Option verstehe ich nicht.
>             --size-only             only use file size when determining
> 	    if a file should be transferred
> Wie determined der das dann? Und v.a. woher weiß es ob es die größere
> oder kleinere nehmen soll?

AFAIK, nimmt er immer das größere.

> > > 2.) Einige Dateien sind doppelt vorhanden, aber in eine in Caps, eine in
> > > lowercase. D.h. er soll _vor_ Beginn der Transaktion in jedem einzelnen
> > > Dir alle Files in Lowercase umwandeln und bei doppeltem Vorhandensein
> > > wieder die größere nehmen. Wie ich das machen kann ist mir schleierhaft,
> > > da man soetwas mv ja soweit ich gesehen habe nicht machen kann?
> > 
> > Von wegen größere Datei siehe oben. Eine Option für case-insensitive habe
> > ich auf die schnelle nicht gefunden. Aber das umwandeln in lowercase ist
> > mit sicherheit keine aufgabe von rsync.
> >  
> Hmm, eigentlich wollte ich einfach auf beiden Dirs vorher ein kleines
> script laufen lassen, welches die jeweils in lowercase umwandelt. Das
> doofe daran: Mir ist nicht so ganz klar wie ich das anstellen soll. Das
> prinzipielle umwandeln ist ja kein Thema, aber wie bekomme ich es hin,
> dass er es nur umwandelt wenn das Umwandlungsziel noch nicht existiert?
> 

Mit test -e kannst Du überprüfen, ob eine Datei vorhanden ist.

> Wow ich merke so allmählich, dass diese Aufgabe deutlich komplexer ist
> als ich dachte.
>
Ohne eine durchdachte Strategie und ein entsprechendes Shell- oder
vielleicht Perl-Skript wird da wohl nichts zu machen sein.
 
> mfG Johannes
> 

Gruß,
  Sven
-- 
+-----------------------------------------------------+
!   Sven Bergner  E-Mail: bergner@linuxtaskforce.de   !
!            Registered Linux-User #65111             !
+-----------------------------------------------------+



Reply to: