Rechte übertragen

25/04/2014 - 20:10 von Andre Tann | Report spam
Hallo zusammen,

ich habe zwei Trees, die ich kürzlich mit rsync synchronisiert habe.
Inzwischen wurde auf dem Ziel etwas geàndert, aber nicht viel. Vor allem
aber, und das ist mein Problem, wurde versehentlich UID und GID aller
Dateien veràndert.

Daher möchte ich alle Dateien auf der Quelle durchgehen, und wenn die
Datei auch auf dem Ziel existiert, dann möchte ich UID/GID übertragen.

In Prinzip ginge das so:

find /quelle -printf 'chown %U:%G "%p"'

Dahinter vielleicht noch ein wenig sed-Magie, und fertig wàre das
Skript, welches man auf den Zielbaum jagen kann.

Allerdings enthalten die Dateinamen allerlei Unfug wie ' und " und
beides auch zusammen in einem Pfad, sodaß das nicht so ganz einfach ist,
wirklich alles zu erwischen.

Nochmal mit rsync rüberbügeln will ich nicht, denn dann gehen die
Änderungen verloren.

Hat jemand ne Idee, wie man das machen könnte? Wenn nicht, dann würde
ich mir was mit Perl bauen. Aber vielleicht gibts ja was fertiges.

Freue mich über Ideen.

Danke, und viele Grüße!
Andre Tann


Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
Archive: https://lists.debian.org/535A9EFD.9000004@alphasrv.net
 

Lesen sie die antworten

#1 Michael Schuerig
25/04/2014 - 23:00 | Warnen spam
On Friday 25 April 2014 20:00:24 Andre Tann wrote:
Hallo zusammen,

ich habe zwei Trees, die ich kürzlich mit rsync synchronisiert habe.
Inzwischen wurde auf dem Ziel etwas geàndert, aber nicht viel. Vor
allem aber, und das ist mein Problem, wurde versehentlich UID und GID
aller Dateien veràndert.

Daher möchte ich alle Dateien auf der Quelle durchgehen, und wenn die
Datei auch auf dem Ziel existiert, dann möchte ich UID/GID übertragen.

In Prinzip ginge das so:

find /quelle -printf 'chown %U:%G "%p"'

Dahinter vielleicht noch ein wenig sed-Magie, und fertig wàre das
Skript, welches man auf den Zielbaum jagen kann.

Allerdings enthalten die Dateinamen allerlei Unfug wie ' und " und
beides auch zusammen in einem Pfad, sodaß das nicht so ganz einfach
ist, wirklich alles zu erwischen.

Nochmal mit rsync rüberbügeln will ich nicht, denn dann gehen die
Änderungen verloren.

Hat jemand ne Idee, wie man das machen könnte? Wenn nicht, dann würde
ich mir was mit Perl bauen. Aber vielleicht gibts ja was fertiges.

Freue mich über Ideen.



Wie *ich* das machen würde:

Auf der Quelle

find /quelle -printf '%U\t%G\t%p"' > ugp.dsv

Auf dem Ziel

#! /usr/bin/ruby

user_group_path_list File.open('ugp.dsv') { |f|
f.each_line.map { |l| l.split("\t", 3) }
}

user_group_path_list.each do |user, group, path|
File.chown(user, group, path)
end

Oder so àhnlich. Hab's nicht ausprobiert.

Michael

Michael Schuerig
mailto:
http://www.schuerig.de/michael/


Zum AUSTRAGEN schicken Sie eine Mail an
mit dem Subject "unsubscribe". Probleme? Mail an (engl)
Archive: https://lists.debian.org/

Ähnliche fragen