rsync-fråga

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Halmstad
  • 2008-11-21 17:09

På Windowstiden brukade jag använda xcopy för att uppdatera filerna vid backup, och har en tid använt rsync på MacOSX. Det funkar ju bra men det är en sak som irriterar mig.

Jag använder option'en (vilket är det svenska ordet?) -E för att få med alla attribut, associationer, fan och hans moster med filerna. Men medan den bara uppdaterar de vanliga filerna envisas den med att varje gång kopiera över (eller vad den nu gör) filerna med en punkt framför - alla varje gång. Så är det bara en enda fil vanlig fil som ändrats och kopieras så flimrar 20000 .punkt-filer - en för varje "huvudfil"- förbi innan allt är klart.

Är det något man kan undvika på något sätt? (men samtidigt få med associationerna/metadatan)

Är inte helt säker på exakt vad du frågar (så svaret blir väl därefter).
När rsync kopierar över filer så skapas det en tillfällig "punktfil" på motagarsidan, som sedan döps om till filens riktiga namn. Det är alltså "normalt" att den skapar en massa punktfiler.

Jag brukar anvanda flaggan -u för att bara kopiera saker som har ändrats.

t ex
rsync -auv bortamaskin:hej/hopp ngnkatalog/

för att kopiera alla ändringar under "hopp" till en lokal kopia (av hela katalogstrukturen hopp).

/m

EDIT:
-E för extended attributes torde även gå att kombinera med exemplet ovan, -auvE.

  • Medlem
  • Halmstad
  • 2008-11-22 11:53

Jo, du har förstått vad jag försökt förklara.

Jag har också -u option'en i båda mina exempel, med och utan -E

Men faktum är att det bara är när jag lägger till -E som de där punktfilerna flimrar förbi.

kommandot jag använder är:

rsync -avuE

Vilket alstrar punktfilerna för alla filer, inte bara de uppdaterade filerna.

Utan -E slipper jag punktfilerna, men då försvinner associationerna till alla filer som inte har en ändelse som MacOS känner igen. En RTF-fil som inte har .rtf ändelse blir en vit oassocierad fil.

Eftersom rsync-kommandot ovan bara skall uppdatera verkar det vara en bugg att den inte nöjer sig med att endast skapa punkt-filerna för de uppdaterade filerna. Går det att tweaka bort detta märkliga beteende i kommandot på något sätt?

  • Medlem
  • Stockholm
  • 2008-11-22 12:08
Ursprungligen av planB:

Jo, du har förstått vad jag försökt förklara.

Jag har också -u option'en i båda mina exempel, med och utan -E

Men faktum är att det bara är när jag lägger till -E som de där punktfilerna flimrar förbi.

kommandot jag använder är:

rsync -avuE

Vilket alstrar punktfilerna för alla filer, inte bara de uppdaterade filerna.

Utan -E slipper jag punktfilerna, men då försvinner associationerna till alla filer som inte har en ändelse som MacOS känner igen. En RTF-fil som inte har .rtf ändelse blir en vit oassocierad fil.

Eftersom rsync-kommandot ovan bara skall uppdatera verkar det vara en bugg att den inte nöjer sig med att endast skapa punkt-filerna för de uppdaterade filerna. Går det att tweaka bort detta märkliga beteende i kommandot på något sätt?

Om du kör med -E till ett filsystem som inte stödjer resourceforks så kommer den att skapa en punkfil som innehåller informationen i resourceforken för alla filer som finns för att spara metainformationen.

Så antingen kör du rsync till en annan HFS+ disk eller så får du leva med punkt filerna om du vill ha kvar meta informationen..

  • Medlem
  • Halmstad
  • 2008-11-22 12:48
Ursprungligen av ntity:

Om du kör med -E till ett filsystem som inte stödjer resourceforks så kommer den att skapa en punkfil som innehåller informationen i resourceforken för alla filer som finns för att spara metainformationen.

Så antingen kör du rsync till en annan HFS+ disk eller så får du leva med punkt filerna om du vill ha kvar meta informationen..

Så trodde jag också att det var. Men i exemplet handlar det om HFS+ --> HFS+

Men i vilket fall som helst borde inte punkt-filerna skapas för filer som inte är ändrade.

Ursprungligen av planB:

...

rsync -avuE

...

Hmm. jag blev nog förvirrad av -E-flaggan.

OS-X egna rsync säger:

$ rsync --help | grep -- -E
-E, --executability preserve the file's executability
-E, --extended-attributes copy extended attributes

(sic!)
Jag såg först bara den senare raden och tänkte inte mer på det.

Men "normala" rsync har ju -X för att fixa extended attributes.

  • Medlem
  • Halmstad
  • 2008-11-22 19:01

Vilken version av rsync har du? Jag kör Tiger .11 och versionen på rsync är:

rsync version 2.6.9 protocol version 29

för -E står det i man pages:

-E, --extended-attributes
Apple specific option to copy extended attributes, resource
forks, and ACLs. Requires at least Mac OS X 10.4 or suitably
patched rsync.

Ursprungligen av planB:

Vilken version av rsync har du? Jag kör Tiger .11 och versionen på rsync är:

rsync version 2.6.9 protocol version 29

för -E står det i man pages:

-E, --extended-attributes
Apple specific option to copy extended attributes, resource
forks, and ACLs. Requires at least Mac OS X 10.4 or suitably
patched rsync.

Det verkar vara "2.6.9 protocol version 29" även i OS-X 10.5, fast man-sidan är något trimmad och innehåller endast
"-E --extended-attributes copy extended attributes, resource forks".

Fick du ett bättre beteende med den nyare development-versionen?

  • Medlem
  • Halmstad
  • 2008-11-22 20:32

Jag såg nu att man kan köra en senare version av rsync. Jag får väl installera utvecklingsvertygen och installera den.

Apple - Downloads - UNIX & Open Source - Rsync Package Installer

  • Medlem
  • Halmstad
  • 2008-11-24 19:34

Jag har inte provat än. Jag väcker den här tråden till liv när jag testat.

1
Bevaka tråden