Snabbare överförning av filer via Internet [LÖST]

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Snabbare överförning av filer via Internet [LÖST]

Inlägg av walle »

Fråga 1
Jag har en server som bland annat har till uppgift att lagra mina backuper från mina datorer hemma. Än så länge fungerar det hyfsat med Unison att överföra filerna i det lokla nätverket även om det tar sin tid. För att göra det hela extra säkert lagrar jag kopia av mina backuper på en dator som finns hos päronen. Enda problemet är när jag använder Unison för att överföra kopiorna via internet så tar den extremt mycket tid på sig att överföra filerna. Jag använder följande kommando:

Kod: Markera allt

unison backup -ui 'text' -silent -force /home/backup/ -retry 5
och unison-config för "backup" ser ut som följande:

Kod: Markera allt

root = /home/backup/
root = ssh://backup@adress_till_backup-server.test/home/backup/

# place new files at the top of the list
sortnewfirst = true

# Sätt igång logg
log = true

# Some regexps specifying names and paths to ignore
ignore = Name *~
ignore = Name .*~
Vi snackar om överförsningshastigheter på ca 20 kbit/s jämfört med jag gör det "manuelt" utan Unison med hastigheten 300 kbits/s.

Jag funderar på att använda rsync istället, dels för att den presterar bättre (förmodligen) och dels för att jag vill enbart ha en kopia som ser precis ut som i mappen /home/backup/. Tas en fil bort på serven så kommer motsvarande fil att tas bort på backupserven också, kommer en ny fil på serven så ska den filen kopieras till backupserven.

Kan någon hjälpa mig med att få upp hastigheten eller att fixa ett kommando för rsync som gör det jag vill göra? Jag vet, allt finns att läsa på "man rsync", men eftersom att det rör sig om väldigt viktiga filer så vill jag hellre låta någon som är säker på sin sak att fixa ett fungerade kommando som sedan ska köras med crontab.

Fråga 2
I korthet fungerar mitt backup-system följande; backupscript körs på användardatorn och backupen sparas, sedan så överförs den till serven vid en annan tidpunkt. Systemet bygger på att det som finns i backup-mappen på användardatorn finns också på serven, de speglas mer eller mindre med varandra. Så att vill jag spara backuper för en månad så sparas dessa på båda datorerna. Men backuperna tar en hel del plats på den bärbara och funderar på att minska det till två veckor, men detta medför att de enbart lagras två veckor på serven också.

Finns det något sätt att enbart överföra nya filer till serven och fullkomligt strunta i att hämta saknade filer från serven till den bärbara?
Senast redigerad av 1 walle, redigerad totalt 5 gånger.
zoombywoof
Inlägg: 202
Blev medlem: 27 nov 2006, 16:14
OS: Kubuntu
Ort: Stockholm

Re: Snabbare överförning av filer via Internet

Inlägg av zoombywoof »

Jag skrev en gång för länge sen en guide här om hur man kan använda rdiff backup, som gör exakt det du vill göra.

http://ubuntu-se.org/phpBB3/viewtopic.p ... iff#p30314

Kan kanske vara nått för dig

/zw
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Snabbare överförning av filer via Internet

Inlägg av walle »

Okej, ska titta på det imorgon då när man känner sig lite piggare än nu :) (klockan är 11 på kvällen). Men det verkar vara lovande.
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Snabbare överförning av filer via Internet

Inlägg av walle »

Nu tror jag att jag har hittat lösning på båda av mina frågor. Även om jag just nu testar lösningarna så ser de lovande ut. Hur som helst, detta har jag kommit fram till:

Fråga 1
Eftersom att Unison var så slö så ville jag hitta något annat som var snabbare, och svaret blev zoombywoof lösning. Tack för tipset! Dock så har jag gjort om den lite så att den ska fungera bättre för mig.

Kod: Markera allt

#!/bin/bash
TARGETS="/home/backup"
REMOTEHOST=192.168.5.111
REMOTEPORT=1234
REMOTEUSER=user
REMOTEBASE=""
VERBOSITY="5"
TERMINAL_VERBOSITY="3"
SCHEMA="ssh -p ${REMOTEPORT} -l ${REMOTEUSER} -C %s rdiff-backup --server"
VERBOSE="--verbosity ${VERBOSITY} --terminal-verbosity ${TERMINAL_VERBOSITY}"
OPTS="--print-statistics"

for target in $TARGETS
do
    echo "rdiff ${target}..."
    filtered_target=`echo $target`

    rdiff-backup --remote-schema "${SCHEMA}" ${VERBOSE} ${OPTS} ${target} ${REMOTEHOST}::${REMOTEBASE}/${filtered_target}
done

echo "Rdiff Backup done"
Det jag har gjort i huvudsak är att lägga in så att man kan ställa in en annan port för ssh samt se till att "filtered_taget" gör så att backupen inte läggs i en egen mapp utan motsvarande mapp som på serven där backuperna hämtas från.

Skillnaden blev från 20 kbit/s till ca 6000 kbit/s (6 mbit/s) i överförsningshasttighet. Det som utgör flaskhals är i detta fall uppkopplingen och förmodligen inte serven eller mjukvaran. Man skulle kunna optimera detta genom att lägga in "-ax -c blowfish" i ssh-komandot, men jag vet inte med säkerhet att det fungerar eftersom att jag ännu inte hunnit att testa det.

Fråga 2
Här kom jag på att rsync passade som handsken eftersom att den som standard beter sig precis som jag efterfrågade om. Så att till slut lyckades jag skrapa ihop följande:

Kod: Markera allt

rsync -avq -e "ssh -ax -c blowfish -p 1234" user@192.168.5.111:/home/backup/dator1/ /home/backup/
Tack för den hjälp som jag har fått, tråden löst!
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"