Har du någonsin oroat dig för att förlora din data eller tröttna på att göra manuella säkerhetskopieringar dagligen eller varje vecka? Använd rsync kommando och automatiskt synkronisera dina lokala filer till en fjärrserver så ofta du vill utan manuell inblandning. Observera att den här guiden kräver åtkomst till en fjärransluten Linux-server (t.ex. AWS), och är skriven under Ubuntu 20.04 även om vilken Linux-distro som helst borde fungera bra.

Installera rsync

Före något, kontrollera om eller inte rsync är installerad. Kör detta kommando på både din lokala PC och webbserver:

rsync --version

Om du får den nuvarande rsync-versionen i gengäld, är du redo för nästa avsnitt. Annars, om du får en Kommando inte hittat fel kan du installera rsync med detta kommando:

sudo apt-get -y installera rsync

Generera SSH-nyckel

Vi kommer att använda en SSH-nyckel för att autentisera anslutningen mellan vår lokala PC och fjärrservern. För att generera en ny SSH-nyckel på din lokala PC i terminalen kör kommandot:

instagram viewer
Så här ställer du in SSH på Linux och testar din installation: En nybörjarguide

Behöver du komma åt din Linux-dator eller -server på distans? Så här ställer du in och konfigurerar SSH på Linux, Windows och mobil.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

När du tillfrågas om ett lösenord, lämna det tomt och tryck på Enter två gånger. Detta kommer att generera två nya filer i din ~/.ssh/ katalog namngiven rsync.key som är den privata nyckeln, och rsync.key.pub, den publika nyckeln.

Konfigurera fjärrserver

Även om det inte krävs, för den här guiden kommer vi att skapa en ny användare på fjärrservern för rsync-anslutningar och för att lagra alla säkerhetskopior. Logga in på fjärrservern via SSH och kör detta kommando:

sudo useradd -m rsync

Ovanstående exempel använder användarnamnet rsync, men du kan ändra det till vad du vill. De -m alternativet säger helt enkelt till Linux att skapa en hemkatalog för vår nya användare.

För att tillåta din lokala dator att autentisera, måste den offentliga SSH-nyckeln som genererades i föregående avsnitt kopieras över till fjärrservern. Öppna /~.ssh/rsync.key.pub fil i en textredigerare och du kommer att se en stor linje som ser ut ungefär som.

ssh-rsa användare@värd

Denna långa rad är den offentliga SSH-nyckeln. Kopiera det till ditt urklipp och kör dessa kommandon på din fjärrserver:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

I det näst sista kommandot, ersätt texten mellan citattecken med den långa offentliga SSH-nyckelraden. Det är allt, din lokala dator kommer nu att kunna autentisera med din fjärrserver.

Konfigurera ssh config-fil

För enkelhetens skull, lägg till en post i ~/.ssh/config fil på din lokala PC för att enkelt ansluta till fjärrservern. Öppna filen på din lokala dator med kommandot.

nano $HOME/.ssh/config

Lägg till en post för fjärrservern i filen, till exempel:

värd backup_server
 värdnamn 192.168.0.24
 användarens rsync
 IdentityFile ~/.ssh/rsync

Ändra värdnamnet till IP-adressen för din fjärrserver, och om du använde ett annat användarnamn än "rsync" ändra det också. Du kan använda vad du vill för värden, men för detta exempel användes "backup_server". Spara och stäng filen genom att trycka på Ctrl+X följt av "Y" och Enter-tangenterna.

Testa din SSH-anslutning till fjärrservern med kommandot.

ssh backup_server

Förutsatt att allt är korrekt inställt bör du nu vara inloggad på din fjärrserver via SSH. Stäng anslutningen med kommandot.

utgång

Synkronisera dina filer

Testa nu rsync funktionalitet, och till exempel för att synkronisera din dokumentkatalog på din lokala dator, kör kommandot:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

Den första förekomsten av ~/Dokument/ anger den lokala filen eller katalogen som ska synkroniseras, backup_server överensstämmer med posten som lagts till ~/.ssh/config fil och slutet :~/Dokument anger helt enkelt att ladda upp allt till /Documents-katalogen på fjärrservern i förhållande till hemkatalogen.

Logga in på fjärrservern så bör du se en ny dokumentkatalog som är synkroniserad med den på din lokala dator. Varje gång du kör kommandot ovan kommer endast filer som har ändrats sedan förra gången att laddas upp, så du laddar inte hela tiden upp hela innehållet i katalogen.

Automatisera via Crontab

Nu när allt är testat och fungerar korrekt kan vi enkelt automatisera hela processen genom att lägga till ett crontab-jobb på vår lokala PC. För att automatiskt synkronisera din lokala mapp till fjärrservern var 15:e minut, kör kommandot inom terminalen.

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

Du kan få ett "ingen crontab för användare" meddelande, och du kan bara ignorera det. Ändra Dokument katalogen till vad du vill säkerhetskopiera, men se till att lämna ett snedstreck för kataloger annars kommer de inte att säkerhetskopiera ordentligt.

Kontrollera att crontab-jobbet har lagts till med kommandot.

crontab -l

Om du ser crontab-jobbet som precis lades till så är allt på plats. Vänta 15 minuter, kontrollera din fjärrserver och alla nödvändiga filer bör finnas där. Från och med nu kommer alla ändringar som görs i dina filer automatiskt att laddas upp till fjärrservern var 15:e minut.

Ladda ner från Remote Server

Du kan också använda rsync för att ladda ner filer från fjärrservern och synkronisera dem till din lokala PC. Med hjälp av katalogexemplet /Documents ovan, kör kommandot i terminalen:

rsync -chavzP backup_server:~/Documents/ ~/Documents

De ~./Dokument katalogen på din lokala PC bör nu vara en spegelbild av fjärrservern.

Inkludera och exkludera mönster

Om du någonsin behöver synkronisera endast filer som matchar ett visst mönster, till exempel sluta med .html du kan använda --omfatta mönster. Kör kommandot inom terminalen.

rsync -avz --inkludera "*.html" --progress ~/mysite/ backup_server:~/public_html

Kontrollera fjärrservern och du kommer att se att endast filer med .html-tillägget från den lokala /mysite/-katalogen har laddats upp till /public_html/-fjärrkatalogen. På samma sätt kan du också synkronisera allt utom vissa filer med --utesluta alternativ. Till exempel kommer följande kommando att synkronisera alla filer utom de med a .Text förlängning.

rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html

Synkronisera två lokala kataloger

Om det någonsin behövs kan du också synkronisera två lokala kataloger med kommandot.

rsync -zvr ~/källa/katalog ~/destination/katalog

Detta kommando fungerar exakt på samma sätt som när du synkroniserar till en fjärrserver, den enda skillnaden är att det är två lokala kataloger.

Vara lugn

Du kan nu andas en suck av att veta att dina chanser att förlora data nu är betydligt lägre. I den här artikeln har du lärt dig vad rsync är, hur man genererar och installerar en SSH-nyckel, definierar en server inom ~./.ssh/config fil, synkronisera en lokal och fjärrkatalog och automatisera hela processen via crontab. Framöver kommer alla nödvändiga filer alltid att synkroniseras med din fjärrserver med endast 15 minuters fördröjning.

E-post
Så här klonar du din Linux-hårddisk: 4 metoder

Behöver du klona din Linux-hårddisk eller -partition? Använd ett av dessa enhetskloningsverktyg för att klona din Linux-disk.

Relaterade ämnen
  • Linux
  • Säkerhetskopiering av data
  • Linux
  • Cloud Backup
  • Hemnätverk
Om författaren
Matt Dizak (13 publicerade artiklar)Mer från Matt Dizak

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Vänligen bekräfta din e-postadress i e-postmeddelandet vi just skickade till dig.

.