Program för synkronisering över SSH

Permalänk
Medlem

Program för synkronisering över SSH

Hej, jag söker någon bra gratis mjukvara(gärna open source) för synkronisering av filer och mappar över SSH.

Jag vill ha ett program som kan göra följande:
När datorn startas upp(och internetanslutning finns) ska programmet automatiskt synkronisera och uppdatera så att de senaste versionerna finns på både SSH-server och lokalt.
Sedan ska alla ändringar jag gör lokalt i den synkronierade mappen laddas upp automatiskt, antingen att den känner av när man gör en ändring eller med ett visst intervall(t.ex. var 5:e min).

Jag har hittat ett par program som verkat bra, men de har inte haft stöd för SSH-anslutningar utan bara FTP.

Finns det något bra program som klarar detta?
Väldigt tacksam för svar!

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com

Permalänk
Medlem

Rsync/cwRsync kanske?

Permalänk
Medlem

Beskriv gärna lite mer utförligt vad du vill åstakomma.

Hur stora är filerna som skall syncas ?
Är det stora filer ? Är det store "edits" som görs ?
(kan bara var en liten del av dem, typ 2k ändrat i en 200 mb file?)

Kan systemet användas på flera datorere samtidigt ?
Hur kontrollerar du att så INTE sker (Om det nu inte skall ske)

###### Suggestion
Du kan kanske köra med någon form av Git eller Mercurial ?
Det är version control system, som kan användas på liknande sätt..
Jag kan INTE vara säker att de systemet passar sig för dig.

Det borde kunna fungera om det inte är stora editeringar som görs.
Rätt så enkelt att få det att fungera så länge som du är 100% SÄKER att du
bara kör från 1 dator i taget. Annars blir det lite mera komplicerat.

Tex Mercurial + lite shell scripts ..
Sätt upp SSH nycklar så du kommer åt servern..

I /etc/init.d/MYSCRIPT.sh
#Set HOEm så du kommer åt dina SSH nycklar
cd MYDIR
env HOME=/home/apa hg pull -u

Sedan periodiskt så kör du något i stil med:
MYDATE=`date`
hg commit -m "Autocommit at $MYDATE"
hg push

============= OBS
Mercurial eller GIT är kanske inte verktyg som passar dig.

De kommer bägge två att lagra en full historia över vilka filer som har ändrat sig både på din lokala dator och på dinn "ssh server".

Om du kommer till en ny dator så kommer det att ta lite längre tid första gången.
( Kan ta längre tid om du inte har använt en dator på länge )

[EDIT]
======== Suggestion sshfs
Om fil access inte behöver vara snabb så finns ju SSHFS

Permalänk
Medlem

Tack för svaren!

Det är i stort sett bara småfiler. Det är till största delen källkodsfiler och ett fåtal filer över <1 MB. De större filerna kommer antagligen inte ändras så ofta.

Det är in tänkt att det ska vara många olika personer som ska ändra filerna samtidigt(även om det kanske kommer att ske) så jag vet inte hur viktigt det är med någon avancerad versionshantering och full historia över filerna som ändats.
Hur sparas historian? Blir det en ny version vid varje syncning då?

Mercurial verkar väldigt intressant! Men det vekar ju inte helt lätt att konfigurera.

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com

Permalänk
Medlem

Om det är saker i stil med källkod så rekommenderrar jag att använda något
version controll system,
I börjannär jag programmerade så använda jag inte något version system.
Men nu för tiden så använder jag alltid ett. Rekommenderas starkt !

Jag har använt Mercurial mera än de andra systemet på sistone så mina exampel
grundar sig på just Mercurial.

1) Jag antar att det inte sker några "automatiska" ändringar av filerna.
DVS det är du (kanske någon annan) som går in och ändrar

- Kan bli LITE mer kompliceaert att göra en ändring
+ Du kan efter åt se NÄR / Vem (Och varför om du har skrivit in det)
+ Full historik, kan se vem som gjort exakt vad och när.

- Kan vara en del att läsa in sig på om du inte har hållt på med något liknande
+ Version Kontroll är bra att kunna använda i andra situationer..

Kan tex google på "Mercurial"

1) Antar följande:

Du har en dator där du har SSH access där du vill att allt skall ligga.
Du editerar inte filerna på den, utan alltid från andra datorer

#### Beskriver hur man skulle kunna arbeta med Mercurial nedan
####
#### Obs tycker att du skall titta genom manualen för det
####
Se till att du har SSH nycklar på de andra datorerna som du Editerar från
Se till att alla datorer har Mercurial installerat

Välj en plats att ha ditt "HUVUD" lager
Säg tex att det är Ditt hembibliotek på datorn som heter "sshserver.se" kontot "pek"

Gå in på sshserver.se

mkdir mitt-projekt
cd mitt-projekt
hg init
# Lägg till de filer som du vill ha med (Du kan editera mer filer senare)
hg add FILE1 FILE2 .... osv
hg commit -m "intial commit of Projekt mitt-projekt"

## Gå nu till en dator där du vill editera sakerna:

# FÖRSTA gången du är inne på denna datorn..
hg clone ssh://pek@sshserver.se:/mitt-projekt
#
cd mitt-projekt
# Hämta ändringar från SERVERN och Uppdatera filer
hg pull -u

# Gör din ändring
# ( Använd hg add XXX om du lägger till en fil eller hg rm YY om du tar bort )
hg commit -m "Fixade XXXXX så att YYY funkar"

# Skicka över ändringen till SERVERN
hg push

##############
Rekommenderar Mercurial(HG) Bazar (bzr) eller GIT för detta.

Andra tips
ssh nycklar är inget måste, Men jag rekommenderar det STARKT !
Jobbigt att skriva passordet hela tiden.

Du kan om du är paranoid också sätta en special konto där den tillåter
"hg ssh access" men inte tillåter normal login..
http://www.selenic.com/mercurial/wiki/SharedSSH

Håll isär olika saker som du gjort..
( Om du fixar 2 buggar, så gör gärna 2 commit )

Alla dessa vektyg har bra manualer på nätet och en del tutorials..

Permalänk
Medlem

Dina antagen stämmer bra och det där hjälpte nog massor. Tusen tack!

Igår upptäckte jag dock att Netbeans(som är den IDE som jag använder mest) har inbyggt stöd för bland annat Mercurial och det verkar finnas en del info om hur man fixar det. Så det är absolut något jag ska försöka fixa.

Ska kolla på det idag.

Visa signatur

Bloggar om Hemautomation på HomeAutomateIt.com