2009-08-28 18:10:40 +0000 2009-08-28 18:10:40 +0000
121
121

Hoe kan ik de thuismap synchroniseren tussen meerdere computers?

Ik heb drie computers thuis, en zou graag de /home/ mappenstructuur gesynchroniseerd willen hebben tussen de drie.
Alle bestanden/mappen (behalve die verborgen zijn) die gewijzigd/toegevoegd/verwijderd worden op een van de drie computers, worden bijgewerkt op de andere twee.

Is rsync genoeg om dit te doen? en hoe?

Antwoorden (14)

97
97
97
2014-01-18 17:52:37 +0000

Hier is een lijst van dingen die dit probleem zouden kunnen oplossen, elk balanceert de afwegingen die je moet maken anders, dus je zult je eigen keuzes moeten maken en dingen voor jezelf moeten uitproberen:

  • Unison - zoals door anderen genoemd, dit wordt handmatig uitgevoerd, maar is zeer snel, betrouwbaar en effectief. Vereist dat beide machines die gesynchroniseerd worden op hetzelfde moment aan staan. Het heeft een mooie gebruikersinterface om de bijna onvermijdelijke conflicten op te lossen, en volgt en verspreidt verwijderingen correct. De grafische app/pakket heet unison-gtk.

  • OwnCloud - Cloud opslag op je eigen server. Je hebt een machine nodig om op te laten staan. Vereist een redelijke hoeveelheid setup. Draait een volledige Apache 2 webserver en een SqlLite of MySQL database op de server. Werkt vergelijkbaar met Dropbox met een desktop client, maar de server staat onder uw controle. edit : OwnCloud heeft onlangs enkele wijzigingen ondergaan in de manier waarop het project wordt geleid, en heeft nu een nieuwe volledig open source (d.w.z. geen closed source ‘enterprise’ editie) onder het mom van NextCloud , (zie dit youtube interview met de oorspronkelijke OwnCloud ontwikkelaar voor meer details).

  • SparkleShare - gebruikt git om bestanden synchroon te houden. Volgens de homepage: goed voor veel kleinere bestanden, niet goed voor veel grote bestanden zoals muziek of fotocollectie.

  • Seafile - Biedt een servercomponent die je op een lokale machine kunt installeren. Seafile gebruikt een gegevensmodel vergelijkbaar met git voor het bijhouden van wijzigingen. Biedt synchronisatieclients voor desktops, tablets en smartphones. Een blog post die de installatie beschrijft kan gevonden worden op http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - “… bidirectionele bestand synchronisatie tool geschreven in bash en gebaseerd op rsync. Het werkt op lokale en / of remote directories via ssh tunnels. It’s mainly targeted to be launched as cron task” (tekst van de website)

  • PowerFolder - java based GPL v2 project. Hoofd website pusht commercieel aanbod dus het is niet duidelijk hoe het bijgeleverde .jar bestand gebruikt kan worden.

  • Rsync - snel en effectief en bestaat al tientallen jaren, het houdt echter geen geschiedenis bij dus je moet een richting kiezen om te beslissen of een bestand nieuw of verwijderd is. Grafische hulpmiddelen zijn beschikbaar zoals gwRsync .

  • Lsyncd - controleert mappen/bestanden om rsync replicatie te triggeren

  • dvcs-autosync - geschreven in python, gebruikt git om wijzigingen op te slaan en te delen tussen machines, en XMPP om wijzigingen door te geven.

  • git-annex - command line tool voor het rondsturen van bestanden, gebaseerd op git. Er is een illustratieve walkthrough hier: http://git-annex.branchable.com/walkthrough/

  • Tonido - freeware. Biedt een desktop app die bestanden kan delen met andere apparaten. Biedt ook commerciële cloud-aanbiedingen, en de TonidoPlug plug-computer.

  • BitTorrent Sync (freeware) - peer-to-peer bestandssynchronisatie gebaseerd op BitTorrent. Ik weet hier niet veel van omdat ik het niet zal gebruiken omdat het niet open source is en ik er niet op vertrouw dat het mijn gegevens binnen mijn LAN houdt, voel je vrij om dit antwoord te bewerken met betere informatie / echte ervaringen.

  • SyncThing - Ontwikkeld als een open source alternatief voor BitTorrent Sync. Het mist momenteel enkele van de geavanceerde functies van BitTorrent Sync, zoals niet-vertrouwde peers. Het is in actieve ontwikkeling.

  • Commerciële gehoste diensten zoals dropbox, ubuntu one, google drive, apple iCloud zijn allemaal snel goedkoop en handig, maar ze vereisen allemaal het vertrouwen van een bedrijf met al je gegevens, en vereisen een redelijk snelle internetverbinding.

  • Git / subversion - Gebruik direct een bronbeheersysteem. Volledig handmatig en kan een beetje complex zijn, maar populaire aanpak bij sommige gebruikers die bekend zijn met deze systemen door ze te gebruiken als programmeergereedschap.

  • CloudFS - synchroniseer een heel bestandssysteem, gebaseerd op cluster technologie

  • NFS mount - in principe leeft je thuis op één machine en heb je er toegang toe via het netwerk, niet goed voor laptops die je meeneemt. Meer info: http://www.linuxjournal.com/article/4880

Factoren om te overwegen bij het maken van uw beslissing:

  • Centrale server - sommige oplossingen vereisen dat er altijd een machine aan staat (of in ieder geval als je moet synchroniseren) waarmee andere machines kunnen synchroniseren. Dit kan een van uw bestaande machines zijn, of een aparte machine zoals een NAS. Pas op voor hogere energierekeningen.

  • Automatisch / Handmatig / Gepland - De beste manier om conflicten op te lossen als iets op meer dan één machine veranderd is, is om op elke machine een programma te hebben dat op veranderingen let en onmiddellijk synchroniseert. Bij handmatige processen moet u er altijd aan denken om de synchronisatie uit te voeren.

  • Toegang op afstand - wil je buiten je LAN (thuis dus) synchroniseren, denk dan na over de veiligheidsimplicaties daarvan.

  • Beveiliging - verlaten je gegevens je netwerk versleuteld of niet, hoe veilig is de overdracht tussen machines. Wat als iemand onderweg uw gegevens vastlegt en later blijkt dat de versleuteling gebreken vertoont? Wie controleert de server die uw gegevens bewaart, zijn de gegevens geëncrypteerd, kunt u derde partijen vertrouwen? Moet je gaten in je router prikken om op afstand toegang te krijgen? Hoe lang blijven “verwijderde” bestanden en verwante metagegevens bewaard op de gesynchroniseerde apparaten en op de centrale server. Synchroniseer je tussen versleutelde en onversleutelde opslag?

  • Verplaatsen van grote mappen - de oplossingen die ik heb geprobeerd hebben allemaal het probleem dat wanneer je een bestand of map verplaatst / hernoemt, de synchronisatie dit niet begrijpt en het helemaal opnieuw upload als nieuw en vervolgens de oude kopie verwijdert. Help me alsjeblieft door bovenstaande oplossingen te markeren die hier wel mee om kunnen gaan (ik vermoed dat de git-gebaseerde oplossingen dit wel doen, omdat git hier geen last van heeft vanwege de content-gebaseerde adressering die het gebruikt, maar ik weet het niet zeker omdat ik ze niet gebruikt heb).

  • Schijfcapaciteit

  • Backups - synchronisatie is geen backup. Als je per ongeluk een belangrijk bestand verwijdert, worden al je andere kopieën door veel van de bovenstaande dingen vrolijk verwijderd. Ik raad aan het stuk van Mat Honan over gehackt worden ](http://www.wired.com/gadgetlab/2012/08/apple-amazon-mat-honan-) te lezen voor een goed verslag van wat er kan gebeuren als je bij wijze van spreken al je digitale eieren in één digitaal mandje legt.

Ik raad aan niet de hele thuismap te synchroniseren, maar in plaats daarvan specifieke mappen te kiezen om te synchroniseren, zoals Documents/, Pictures/ enz. Dit voorkomt de pijn van gedwongen worden om te gaan met de snelheid / prestatie / schijfruimte problemen van het automatisch synchroniseren van alles. Het voorkomt ook dat je uitsluitingslijsten moet bijhouden.

Terwijl ik blijf proberen om iets te vinden dat voor mij persoonlijk werkt, zal ik proberen dit antwoord up-to-date te houden met nuttige info. Ik heb de informatie van alle andere antwoorden samengevoegd tot één compleet antwoord.

Referenties:

  • LinuxFormat - februari 2014 LXF180 p31, “Hosted Storage Roundup”

hacking/all/

19
19
19
2009-08-29 22:07:36 +0000

Wat dacht je ervan om je bestanden in een versiebeheersysteem zoals SubVersion of git te zetten?

Ik maak geen versiebeheer van mijn hele home dir, maar alleen van een handvol subdirs met wat belangrijk spul. Maar ik denk erover om over te stappen op git, omdat het beter lijkt te zijn voor dit soort werk. Een snelle zoektocht zal je in de juiste richting sturen.

Veel succes

  • *

Update : Een leuke bijkomstigheid van git is dat het makkelijk is om computer-specifieke bestanden te hebben, omdat je alleen een branch voor die computer hoeft te hebben (en in git krijg je dat standaard). Dus je hoeft niet exact dezelfde bestanden in alle computers te hebben, ze hoeven alleen maar vergelijkbaar te zijn, en een gemeenschappelijke “hoofd”-tak te hebben met dingen die je op alle verschillende computers wilt hebben.

6
6
6
2009-08-29 09:43:00 +0000

Het grootste probleem is om te bepalen hoe wijzigingen moeten worden samengevoegd, verwijderingen moeten worden doorgevoerd en conflicten moeten worden opgelost. Dit is moeilijk op een volledig geautomatiseerde manier te doen, vooral als je een installatie met 3 computers hebt die door meerdere mensen gebruikt wordt.

Als je gebruikers scheidt, wordt het veel eenvoudiger. Omdat een gebruiker niet op twee plaatsen tegelijk kan zijn (en dus conflicten kan genereren) zou je dan een rsync job kunnen instellen om te draaien bij het inloggen om “wijzigingen te krijgen” en uit te loggen om “wijzigingen te pushen” … naar een van je computers die de master zou zijn … dus op dit niveau van granulariteit zou je elke keer /home/myuser synchroniseren in plaats van de hele /home/. Een extra verfijning (in het geval dat mensen niet uitloggen) zou zijn om het push script te draaien na een korte periode van inactiviteit.

Er zijn veel andere mogelijke oplossingen, maar geen die dit probleem op magische wijze oplost, voor zover ik weet. De eerste stap is waarschijnlijk om na te denken over hoe je de machines gebruikt en een synchronisatiebeleid te bedenken dat past bij het gedrag van je gebruikers.

5
5
5
2010-06-11 20:05:12 +0000

Ik denk dat je beter kunt bereiken wat je wilt door een gemeenschappelijke thuismap te mounten met NFS. Kijk eens naar dit artikel http://www.linuxjournal.com/article/4880

4
4
4
2010-06-11 21:20:04 +0000

Kijk eens naar lsyncd

lsyncd kijkt naar een lokale directory bomen gebeurtenis monitor interface (inotify of fsevents). Het aggregeert en combineert gebeurtenissen gedurende een paar seconden en spawnt dan een (of meer) proces(sen) om de veranderingen te synchroniseren. Standaard is dit rsync. Lsyncd is dus een lichtgewicht live mirror oplossing die relatief eenvoudig te installeren is, geen nieuwe bestandssystemen of blockdevices nodig heeft en de prestaties van het lokale bestandssysteem niet belemmert.

Rsync+ssh is een geavanceerde actieconfiguratie die een SSH gebruikt om bestands- en directorybewegingen direct op het doel uit te voeren in plaats van het doel van de beweging opnieuw over de draad te zenden. 0x2 & > 0x2 & > Fine-grained customizaton kan worden bereikt door het config-bestand. Aangepaste actie configs kunnen zelfs worden geschreven vanuit het niets in cascade lagen variërend van shell scripts tot code geschreven in de Lua taal.lagen variërend van shell scripts tot code geschreven in de Lua taal.

4
4
4
2009-08-28 18:34:44 +0000

Dit zal niet helemaal een oplossing bieden, maar het zal je een begin geven:

Stel om de zoveel tijd een crontaak in om de bestanden te rsyncen. Ik gebruik een commando als het volgende:

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh user@10.10.0.1:/path/to/home/

Dit gebruikt rsync om alleen de benodigde wijzigingen te kopiëren, en niet alles opnieuw te kopiëren elke keer als het commando wordt uitgevoerd.

–stats en –progress zijn optioneel en moeten waarschijnlijk worden uitgesloten van je scripts

de inhoud van mijn rsync_backup_excludes.conf bestand zijn:

dev/*
proc/*
lost+found/*
mnt/*
sys/*
2
2
2
2011-08-24 23:57:12 +0000

Mount /home van de ene computer over naar de andere twee. Automount werkt vrij goed voor dit.

2
2
2
2009-08-28 18:41:17 +0000

Neem een kijkje op dropbox http://www.getdropbox.com/ Cross platform Win / Linux / Mac

1
1
1
2009-08-29 11:11:32 +0000

Ubuntu One ](https://ubuntuone.com/) is misschien wat je zoekt. Helaas is het nog in beta fase, en ik heb er geen ervaring mee, dus ik weet niet zeker of het voor jou zou werken.

1
1
1
2009-08-29 21:38:15 +0000

Als je ook configs wilt synchroniseren - de hierboven genoemde tools zijn totaal hulpeloos: configs worden vaak gewijzigd, en veel logfiles zullen conflicten maken zodat ze niet kunnen worden samengevoegd.
Mijn besluit is eenvoudig, en dom :) Ik heb een Master werkstation, en alle bestanden van “~” worden gewoon gekopieerd naar het tweede “Slave” werkstation. Op het moment dat ik me realiseer dat ik iets moet aanpassen - doe ik dat op Master, en Slave vangt deze veranderingen op bij sync.

Ook zouden sommige bash scripts anders moeten draaien op deze machines, dus heb ik mijn /etc/bash.bashrc aangepast:

export OOHOST=Master

Nu weten de scripts welke host ze bedienen ;)

1
1
1
2012-03-22 11:47:19 +0000

Probeer dvcs-autosync .

Dit is gebaseerd op git, gebruikt XMPP om geconnecteerde clients te informeren over bestandswijzigingen en reageert op bestandswijzigingen via inode veranderingen. Dus het wordt altijd direct na de bestandswijziging geïnformeerd, in geval van conflicten vertrouwt het op de bewezen methodes van git.

Ik gebruik het nu al een tijdje als een Dropbox vervanger via SSH publieke sleutels en het doet echt zijn werk.

0
0
0
2011-03-02 14:02:40 +0000

De workarounds die ik zou overwegen:

  • Dropbox.
    Belangrijkste nadelen: het is niet gratis voor een redelijke hoeveelheid data. Voor de rest werkt het vlekkeloos IMHO

  • Een NAS-server. Zet je bestanden op een NAS server, ze zijn de laatste tijd redelijk betaalbaar geworden (vanaf 150 $ of zo) en een goede verbruikt niet veel energie. Nooit problemen met synchroniseren.
    Belangrijkste nadeel: langzamer dan een lokale kopie

0
0
0
2011-03-02 13:47:07 +0000

Ik gebruik SyncTwoFolders voor Mac en Syncback voor PC - het eerste voor mijn drie macs thuis (inclusief laptop), en het tweede voor mijn PC op het werk. Beide programma’s hebben verschillende back-up- en synchronisatieopties, waardoor dit een fluitje van een cent is zodra de voorinstellingen zijn gemaakt. Gemakkelijk-gemakkelijk! Ik ben er zeker van dat er andere versies van gelijkaardige software beschikbaar zijn voor Linux en Ubuntu.

0
0
0
2013-08-18 14:28:59 +0000

U zou een synchronisatiescript zoals osync kunnen gebruiken dat verwijderde bestanden kan propageren en alleen gewijzigde bestanden kan updaten http://www.netpower.fr/osync osync is gebaseerd op rsync maar kan veel synchronisatiescenario’s aan tussen lokale mappen of mappen op afstand via ssh.