Sida 1 av 1

Synca katalog från flera datorer mot servern automatiskt?

Postat: 12 nov 2008, 22:48
av Emil.s
Läste om "Drop box", vilket är precis vad jag är ute efter. Men jag vill gärna använda min egen server, och även support för KDE.

Kan subversion vara något? Då lär man ju iof fixa något script, men det är ju en duglig lösning iallafall.

Finns det någon annan liknande lösning?

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 12 nov 2008, 22:51
av Christian Johansson
Jag är inte bekant med "Drop box" men kommandot rsync är bra för att synca kataloger. Genom att ha ett cron job som kör rsync så kan man få syncning av kataloger med jämna mellanrum.

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 12 nov 2008, 23:21
av tann
subversion är ett versionshanteringssystem och inte direkt gjort för att synca kataloger. tror nog oxo på rsync i detta fallet. :)

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 13 nov 2008, 00:14
av andol
Vill påstå att Subversion, eller annat versionshanteringssystem, kan vara ett nog så lämpligt verktyg för att hålla foldrar på olika datorer i synk. Det beror förstås lite på vilken typ utav data det gäller. Skulle till exempel inte lägga mitt musikbibliotek i SVN.

Utöver en del kod och dylikt så håller jag faktiskt min Dokument-mapp i just Subversion. Tycker det är riktigt skönt med ett system som håller koll på potentiella konflikten och i alla fall varnar i de fall det inte går att automerga.

Rsync känns betydligt mer lämpat i de fall då datan bara ändras i en ende. Ändras däremot data på flera olika datorer gäller det att hålla tungan minst sagt rätt i mun då det ska rsyncas.

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 13 nov 2008, 22:58
av Emil.s
Mjo, rsync är kanske bättre. Är en del textfiler. Det mesta är vanlig plantext, men det är ett väldigt blandat material...
Bilder, Open-dokuments, Musik, PDFer, och mycket annat.

Men någon idé om hur man får det att synca automatiskt? Cron är ju ett alternativ. Finns några andra föresten?

Om jag skriver ett enkelt script, med bara någon "rsync -o *options* emil@sandnabba.se:/my/files", hur blir det då om man inte har någon internetuppkoppling när scriptet försöker att köras?
Och om uppkopplingen bryts när man syncar?

Chansen lär ju inte vara så stor, men murphy vakar över mig... Vad händer om man syncar en fil sammtidigt som det skrivs?

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 14 nov 2008, 00:48
av andol
Emil.s skrev:Om jag skriver ett enkelt script, med bara någon "rsync -o *options* emil@sandnabba.se:/my/files", hur blir det då om man inte har någon internetuppkoppling när scriptet försöker att köras?
Händer inget värre att skriptet spyr ut sig felmeddelande. Fast snyggast är förstås att bädda in någon form utav kontroll i skriptet som först testar hurtillvida uppkoppling finnes.
Emil.s skrev:Och om uppkopplingen bryts när man syncar? Chansen lär ju inte vara så stor, men murphy vakar över mig... Vad händer om man syncar en fil sammtidigt som det skrivs?
Att en rsync avbrytt mitt i en fil är inga problem. Rsync skriver nämligen först till en temporär fil. När väl överföringen är färdig så ersätts den gamla filen med den nya. Det är alltså defaultbeteendet. Använder du däremot --inplace så blir det förstås annorlunda.

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 14 nov 2008, 21:10
av maths57
tann skrev:subversion är ett versionshanteringssystem och inte direkt gjort för att synca kataloger. tror nog oxo på rsync i detta fallet. :)
Läste om en kille som körde hela sin hemkatalog med Subversion. Du kan ju backa i flera steg om någon inställning skulle strula.

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 14 nov 2008, 21:32
av tann
maths57 skrev:
tann skrev:subversion är ett versionshanteringssystem och inte direkt gjort för att synca kataloger. tror nog oxo på rsync i detta fallet. :)
Läste om en kille som körde hela sin hemkatalog med Subversion. Du kan ju backa i flera steg om någon inställning skulle strula.
jag poängterar bara att rsync förmodligen är det som skrevs med liknande problem i åtanke, GÅR säkerligen att använda subversion också

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 15 nov 2008, 00:03
av Emil.s
Med SVN så får man ju automatiskt backup på köpet. :)
Dock så har jag ju redan automatiska inkrementella backuper...

Kom dock på en sak till som tex rsnapshot inte är så bra på... Vad händer om scriptet råkar köras 2 gånger?
Alltså att det inte hinner köra klart innan det körs (via t.ex cron) igen...

Någon lösning med en PID-fil? Typ "if [ -a ./XXX ] then ...." eller något.
Men vad händer då om man dödar datorn innan scriptet hunnit ta bort filen? Då vill man ju ha en varning på något sätt. Men hellst av allt så ska ju scripet fixa det automatiskt.

Någon idé? :)

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 15 nov 2008, 01:06
av KiviE
Emil.s skrev:Men vad händer då om man dödar datorn innan scriptet hunnit ta bort filen? Då vill man ju ha en varning på något sätt. Men hellst av allt så ska ju scripet fixa det automatiskt.
Kolla om pid filen finns vid start av datorn och i så fall ta bort den :)

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 15 nov 2008, 01:12
av andol
Emil.s skrev:Med SVN så får man ju automatiskt backup på köpet. :)
Dock så har jag ju redan automatiska inkrementella backuper...
Extra fint blir det om man dessutom kör med svnsync.
Emil.s skrev:Någon lösning med en PID-fil? Typ "if [ -a ./XXX ] then ...." eller något.
Men vad händer då om man dödar datorn innan scriptet hunnit ta bort filen? Då vill man ju ha en varning på något sätt. Men hellst av allt så ska ju scripet fixa det automatiskt.
Titta gärna på hur diverse init-skript hanterar sina pid-filer. Sen så är det ju inte för inte som pid-filer ofta bor bra i tmpfs.

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 19 nov 2008, 23:21
av Emil.s
andol skrev:Sen så är det ju inte för inte som pid-filer ofta bor bra i tmpfs.
Ah, smart. :P Får väl ta en titt i /etc/init.d/ också...

Har skrivit en väldigt primitiv början iallafall:

Kod: Markera allt

emil@ThinkPad: ~ $> cat sync_home.sh 
#!/bin/bash

# Backupscript för Thinkpaden. Av Emil Sandnabba

# Kontakt med servern?
if eval "ping -c 1 sandnabba.se"; then
# Om internet, synca ~ mot sandnabba.se:
rsync -av  . emil@sandnabba.se:~/thinkpaden/

else
    echo "No internet available"
fi
Men nu syncar det väl bara från Thinkpaden mot sandnabba.se? Hur får man 2-vägs sync?

Re: Synca katalog från flera datorer mot servern automatiskt?

Postat: 20 nov 2008, 17:36
av ronnylov
Emil.s skrev:Med SVN så får man ju automatiskt backup på köpet. :)
Dock så har jag ju redan automatiska inkrementella backuper...

Kom dock på en sak till som tex rsnapshot inte är så bra på... Vad händer om scriptet råkar köras 2 gånger?
Alltså att det inte hinner köra klart innan det körs (via t.ex cron) igen...

Någon lösning med en PID-fil? Typ "if [ -a ./XXX ] then ...." eller något.
Men vad händer då om man dödar datorn innan scriptet hunnit ta bort filen? Då vill man ju ha en varning på något sätt. Men hellst av allt så ska ju scripet fixa det automatiskt.

Någon idé? :)
Det finns en lockfile option i rsnapshot_config som använder lösningen med pid fil för att förhindra att det körs igen innan tidigare körning kört färdigt. Det är bara att avkommentera den raden i konfigfilen. Nackdelen är dock att om datorn crashar eller startas om mitt i överföringen blir man tvungen att manuellt ta bort låsfilen innan man kan köra rsnapshot igen... Jag använder själv rsnapshot med lockfile eftersom jag tar daglig backup via långsam internetförbindelse och om det är mycket nya data som ska koperas kan det i värsta fall ta mer än ett dygn innan den blir färdig.

I övrigt finns det ett synk-program som heter unison som kan synka i båda riktningarna. rsync synkar bara åt ena hållet vilket troligen duger om man har en server som ska spegla lokala datorn men säg att du har en gemensam mapp på servern som du uppdaterar från olika datorer så kan du med unison få uppdaterat åt båda hållen samtidigt (nya filer på servern ersätter gamla filer i lokala datorn och vice versa på ett smart sätt).
http://www.cis.upenn.edu/~bcpierce/unison/