Synkronisering av kataloger över nätverk

Permalänk
Medlem

Synkronisering av kataloger över nätverk

Hejsan

Funderar lite på hur jag enklast ska göra för att hålla en katalog på min laptop synkroniserad med en katalog på en server. Både klientdator och server kör linux (bärbara gentoo och servern debian för tillfället).

Vill på något sätt att detta ska skötas automatisk. T.ex när jag ansluter till nätverket hemma så ska det göras någon slags koll vilka filer som blivit ändrade jämfört med serverns och då överföra de ändringar som gjorts mellan klient och server.

Det jag funderar på är om det finns några färdiga smidiga lösningar för detta? Hur skulle man göra för att "trigga" något att exekveras vid anslutning till ett visst nätverk?

Tänkte t.ex använda detta för min hemmapp, och ev. musiksamling, ifall någon funderar.

Permalänk
Hedersmedlem

rsync är det åtminstone helt klart som du vill använda. Hur du ska trigga igång det vet jag inte riktigt, men rsync är gjort för precis såna scenarion.
Installera det på båda burkarna, och sen kör du nåt i stil med detta på någon av dem:

rsync -avz -e "ssh -l <remote-användarnamn>" /home 192.168.x.x:/backup/home

Första gången överförs allt, nästkommande gånger överförs bara det som ändras. Jag tar backup på ca 45GB såhär, och det tar någon minut eller om dagen att gå igenom det.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem

Tack för tipset!
Kommer det synkroniseras båda vägarna också... Tänker om man ändrar något på servern från en annan dator t.ex, kommer detta överföras till klienten då?

Permalänk
Hedersmedlem

Nej, det överförs bara åt ena hållet. Eller rättare sagt, filerna kommer bara ändras på en av datorerna (den som anges sist i kommandot), men rsync arbetar för att använda lika mycket bandbredd åt båda hållen, hur nu det fungerar.

Om du VILL ha åt båda hållen så skulle du ju kunna synka två gånger, en åt varje håll, men då blir det ju lite problem med vad som ska gälla när du ändrat en sak, så att säga.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Thomas

Om du VILL ha åt båda hållen så skulle du ju kunna synka två gånger, en åt varje håll, men då blir det ju lite problem med vad som ska gälla när du ändrat en sak, så att säga.

Om man lägger till -u låter den bli att ändra filer på måldatorn som är ändrade senare än på källdatorn.

Permalänk
Medlem

Tackar Thomas och Elgot.
Låter som en bra början ändå så jag ska ta och kika på det.

Permalänk
Hedersmedlem

Ett annat alternativ är Unison, som verkar vara bra på att uppdatera åt båda håll.

Permalänk
Medlem

Ska kika på Unison också, men ser inte ut att utvecklas längre, vet inte sedan när. Så känns lite riskabelt att använda som sync/backup. Sitter nu och testar rsync lite. Tar lite tid att synca när man har ett antal källkodspaket med crosscompilerings-kedjor för gcc

Permalänk
Hedersmedlem

Det går sjukt fort när den inte behöver flytta över, dvs att bara kolla om det behövs.
7846 filer, 47GB, 10 sekunder.
Dessutom så uppdaterades två filer på den tiden. Grymt effektivt.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem

Får inte -u att fungera tycker jag. Fast jag tar med den som argument så skrivs en fil jag redigerat senare på servern än klienten över. Är det något uppenbart jag missat att tänka på?

Permalänk
Hedersmedlem

Nej, svårare än så borde det inte vara.