rsync modulenaam overnemen in de destination directory

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 22:44

aawe mwan

Wat ook leuk is:

Topicstarter
Ik maak een backup van een Synology NAS met rsync in Ubuntu.
  1. oude aanpak: door elke share van de NAS lokaal te mounten op /mnt/sharenaam
    /mnt/sharenaam is de Ubuntu rsync source;
  2. nieuwe aanpak: door de rsync-server op de NAS te activeren
    diskstation::sharenaam is de Ubuntu rsync source.
Het valt mij op dat rsync in deze situaties verschillend omgaat met de target directory.
Bij de oude aanpak plakt hij namelijk de sharenaam (dat is laatste directory van de sourcenaam) automagisch als een extra directoryniveau achter de targetdirectory. Bij de nieuwe aanpak doet hij dat niet.

Nou zeg je natuurlijk: dan tiep je toch gewoon zelf een keer die sharenaam achter je target directory. Maar ik zou graag meerdere shares in één keer willen kunnen rsyncen: met aanpak 1 kan dat door meerdere sources aan rsync mee te geven, met aanpak 2 kan dat niet omdat hij dan alle shares in dezelfde targetdirectory zet. (Bij rsync kan je meerdere sources meegeven, maar altijd maar 1 target.)

Waarschijnlijk moet ik een bijzondere optie meegeven aan rsync, omdat de sharenaam die direct achter de "::" staat officieel niet een "directory" maar een "module" heet.

Is er een manier om hier omheen te werken?

Ubuntu versie: 16.04.7 LTS
rsync versie: 3.1.1 protocol version 31

Wat ik al geprobeerd heb:
  • /%H aan de destination toevoegen: hij maakt een directory met de naam %H aan
  • / aan source en/of destination toevoegen: maakt geen verschil
  • /. aan de source toevoegen: maakt geen verschil
  • /../sharenaam aan de source toevoegen: geeft foutmelding

[ Voor 16% gewijzigd door aawe mwan op 25-10-2020 15:54 ]

„Ik kan ook ICT, want heel moeilijk is dit niet”

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:20

Hero of Time

Moderator LNX

There is only one Legend

Het is wel handig als je het volledige commando toont. Je zegt dat je een backup maakt van je NAS met Ubuntu, maar waar gaat het heen? Heb je al gedacht aan de rsync functie van je NAS zelf?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 22:44

aawe mwan

Wat ook leuk is:

Topicstarter
Dit is niet de complete oplossing, maar wel het stuk waar het om gaat.
Stel, ik wil de 3 shares install, media en data backuppen.

code:
1
2
3
4
5
export RSYNC_CONNECT_PROG='ssh jump-username@jumpserver-via-IPv6 nc %H 873'
export USER=synology-username
rsync -zavh --progress ${globalopts} ${passwordopts} ${deltaopts} ${renameopts} "diskstation::install" "${TARGET}/backup/install"
rsync -zavh --progress ${globalopts} ${passwordopts} ${deltaopts} ${renameopts} "diskstation::media" "${TARGET}/backup/media"
rsync -zavh --progress ${globalopts} ${passwordopts} ${deltaopts} ${renameopts} "diskstation::data" "${TARGET}/backup/data"

Als de shares gemount zijn, dan zou je de laatste 3 regels heel simpel kunnen combineren:

code:
1
rsync -zavh --progress ${globalopts} ${passwordopts} ${deltaopts} ${renameopts} /mnt/install /mnt/media /mnt/data "${TARGET}/backup"

Dat kan, omdat hij bij mounts het laatste directoryniveau overneemt van elke source naar de target.
Bij een remote shell als source doet hij dat ook. Alleen bij een rsync daemon als source doet hij dat niet.
Ligt het niet voor de hand dat dit daar ook zou moeten kunnen?

Met de alternatieve oplossing bedoel je een rsync server draaien onder Ubuntu en de backup starten vanuit de Synology webinterface/scheduler ?

„Ik kan ook ICT, want heel moeilijk is dit niet”


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:20

Hero of Time

Moderator LNX

There is only one Legend

Ik ben zelf niet enorm bekend met rsync. Modules e.d. die je gebruikt kende ik niet. Ik dacht dat je namelijk net zo makkelijk de ingebouwde rsync functie van je Synology kon gebruiken die in de webinterface beschikbaar is.

Maar als je door een aparte machine gaat naar een derde plaats, dan zal dat waarschijnlijk te geavanceerd zijn voor de basic functionaliteit van de webinterface.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 21:47

thunder7

houten vaas/schaal nodig?

https://serverfault.com/q...olute-directory-structure

Hier lijken wat uitspraken te staan over jouw situatie. Als ik het correct lees, moet je of een module definiëren per directory die je apart aanbiedt, of 1 module in root en zorgen dat al je directories daar compleet onder komen zoals ook in je bron.

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 22:44

aawe mwan

Wat ook leuk is:

Topicstarter
Dat lijkt inderdaad veel op mijn probleem, in die zin dat de oplossing voor mijn probleem ook een oplossing voor zijn probleem zou zijn. Toch zijn de problemen ook heel verschillend. Ik maak gebruik van de rsync.conf zoals de Synology die beheert en daarin zijn de "modules" (wat gewoon een naam is om het hoogste directoryniveau ingewikkeld te maken) gelijk aan de shares op de Synology. Voor het serverfault probleem zou je voor alle directories die hij wil backuppen een link kunnen maken in 1 "module".

Waarschijnlijk is het iets dat gewoon over het hoofd gezien is: bij andere typen source kan je het hoogste directoryniveau wel of niet laten meenemen naar de target, door de sourcedirectory niet of wel op een "/" te laten eindigen. Alleen als de source een rsync server is, dan neemt hij het hoogste directoryniveau ("module") nooit mee, wel of geen "/" aan het eind.

Een rsync server draaien onder Ubuntu en de Synology daar dan een standaard backup heen laten maken, werkt trouwens ook goed. Maar ik wil het nu een keer andersom proberen, met name omdat ik dan ook de opties kan gebruiken om meerdere versies van een bestand te bewaren.

Al die opties maken rsync als toepassing niet echt toegankelijk. Er zijn zelfs opties bij die bestanden corrupt maken. Om de goede opties te kunnen kiezen, moet je eerst precies weten hoe je rsync gaat inzetten.

„Ik kan ook ICT, want heel moeilijk is dit niet”


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:20

Hero of Time

Moderator LNX

There is only one Legend

Bedacht mij net dat je net zo goed alle remote locaties op kan geven met 1 lokale bestemming. En volgens https://stackoverflow.com...reserving-directory-paths kan dat ook gewoon. Door host:/pad1 :/pad2 /doel/ op te geven, kan je alsnog een remote host gebruiken zonder het te mounten en heb je ook geen last van de 'beperking' van modules.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 22:44

aawe mwan

Wat ook leuk is:

Topicstarter
Op zich heb je gelijk dat die oplossing werkt, maar: wanneer je de notatie met de enkele ":" gebruikt, dan moet de genoemde host een SSH host zijn.

„Ik kan ook ICT, want heel moeilijk is dit niet”

Pagina: 1