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:
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.
Behöver du klona din Linux-hårddisk eller -partition? Använd ett av dessa enhetskloningsverktyg för att klona din Linux-disk.
- Linux
- Säkerhetskopiering av data
- Linux
- Cloud Backup
- Hemnätverk
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.