Hemsida » hur » Så här använder du rsync för att säkerhetskopiera dina data på Linux

    Så här använder du rsync för att säkerhetskopiera dina data på Linux

    rsync är ett protokoll byggt för Unix-liknande system som ger otroligt mångsidighet för säkerhetskopiering och synkronisering av data. Det kan användas lokalt för att säkerhetskopiera filer till olika kataloger eller kan konfigureras att synkronisera över Internet till andra värdar.

    Den kan användas på Windows-system men är endast tillgänglig via olika portar (som Cygwin), så i det här fallet kommer vi att prata om att installera den på Linux. Först måste vi installera / uppdatera rsync-klienten. På Red Hat-distributioner är kommandot "yum install rsync" och på Debian är det "sudo apt-get install rsync."


    Kommandot på Red Hat / CentOS, efter att du loggat in som root (notera att vissa nyligen distribuerade Red Hat stöder sudo-metoden).


    Kommandot på Debian / Ubuntu.

    Använd rsync för lokala säkerhetskopior

    I den första delen av denna handledning kommer vi att säkerhetskopiera filerna från Directory1 till Directory2. Båda dessa kataloger finns på samma hårddisk, men det skulle fungera exakt samma om katalogerna fanns på två olika enheter. Det finns flera olika sätt att vi kan närma oss detta beroende på vilken typ av säkerhetskopior du vill konfigurera. För de flesta ändamål är följande kodföljd tillräcklig:

    $ rsync -av --delete / Directory1 / / Directory2 /

    Koden ovan kommer att synkronisera innehållet i Directory1 till Directory2 och lämna inga skillnader mellan de två. Om rsync finner att Directory2 har en fil som Directory1 inte gör, kommer den att radera den. Om rsync hittar en fil som har ändrats, skapats eller raderats i Directory1, kommer den att återspegla samma ändringar i Directory2.

    Det finns många olika omkopplare som du kan använda för rsync att anpassa den till dina specifika behov. Här är vad den ovan nämnda koden berättar för rsync att göra med säkerhetskopieringarna:

    1. -a = rekursiv (återkod i kataloger), länkar (kopiera symbänkar som symlinks), perms (bevara behörigheter), tider (bevara ändringstider), grupp (bevara grupp), ägare (bevara ägaren), bevara enhetsfiler och bevara speciella filer.
    2. -v = verbose. Anledningen till att jag tror att det är viktigt är att du kan se exakt vad rsync säkerhetskopierar. Tänk på det här: Vad händer om hårddisken är dålig och börjar ta bort filer utan din vetskap, då kör du ditt rsync-skript och det trycker på dessa ändringar i dina säkerhetskopior och därmed raderar alla instanser av en fil som du inte vill få bli av?
    3. -delete = Detta berättar att rsync tar bort alla filer som finns i Directory2 som inte finns i Directory1. Om du väljer att använda det här alternativet rekommenderar jag också att använda de övergripande alternativen, av ovanstående skäl.

    Med hjälp av skriptet ovan är här den produktion som genereras genom att använda rsync för att säkerhetskopiera Directory1 till Directory2. Observera att du inte skulle få sådan detaljerad information utan den verbose switchen.

    Skärmbilden ovan berättar att File1.txt och File2.jpg upptäcktes som antingen nya eller på annat sätt ändrade från de existerande kopiorna i Directory2, och så var de säkerhetskopierade. Noob tips: Observera de efterföljande snedstreck i slutet av katalogerna i mitt rsync-kommando - det är nödvändigt, kom ihåg att komma ihåg dem.

    Vi kommer att gå över några fler praktiska växlar mot slutet av denna handledning, men kom ihåg att för att se en fullständig lista kan du skriva "man rsync" och se en komplett lista över växlar att använda.

    Det gäller om det gäller lokala säkerhetskopior. Som du kan säga är rsync väldigt lätt att använda. Det blir lite mer komplext när du använder det för att synkronisera data med en extern värd via Internet, men vi visar dig ett enkelt, snabbt och säkert sätt att göra det.

    Använda rsync för externa säkerhetskopieringar

    rsync kan konfigureras på flera olika sätt för externa säkerhetskopior, men vi kommer att gå över den mest praktiska (även den enklaste och mest säkra) metoden för tunneling rsync via SSH. De flesta servrar och till och med många kunder har redan SSH, och det kan användas för dina rsync-säkerhetskopior. Vi visar dig processen att få en Linux-maskin för att säkerhetskopiera till en annan på ett lokalt nätverk. Processen skulle vara exakt samma om en värd var ute på internet någonstans, bara notera att port 22 (eller vilken port du har SSH konfigurerad på), skulle behöva vidarebefordras på någon nätverksutrustning på serverns sida av saker.

    På servern (datorn som kommer att få säkerhetskopiorna), kontrollera att SSH och rsync är installerade.

    # yum -y installera ssh rsync

    # sudo apt-get installera ssh rsync

    Förutom att installera SSH och rsync på servern är allt som verkligen behöver göras att installera förvar på servern där du vill att filerna ska säkerhetskopieras och se till att SSH är låst. Se till att användaren du planerar att använda har ett komplext lösenord, och det kan också vara en bra idé att byta porten som SSH lyssnar på (standard är 22).

    Vi kommer att köra samma kommando som vi gjorde för att använda rsync på en lokal dator, men inkludera nödvändiga tillägg för tunneling rsync via SSH till en server på mitt lokala nätverk. För användare "geek" som kopplar till "192.168.235.137" och använder samma omkopplare som ovan (-av-delete) kommer vi att köra följande:

    $ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /

    Om du har lyssnare på en annan port än 22, måste du ange portnummer, som i det här exemplet där jag använder port 12345:

    $ rsync -av -delete -e 'ssh -p 12345' / Katalog1 / [email protected]: / Directory2 /

    Som du kan se från skärmbilden ovan är produktionen som ges när du säkerhetskopierar över nätverket ungefär samma som när du säkerhetskopierar lokalt, är det enda som ändras det kommando du använder. Observera också att det bad om ett lösenord. Detta är att verifiera med SSH. Du kan ställa in RSA-nycklar för att hoppa över den här processen, vilket också kommer att förenkla automatiseringen av rsync.

    Automatiserar rsync-säkerhetskopior

    Cron kan användas på Linux för att automatisera körning av kommandon, till exempel rsync. Med Cron kan vi få vårt Linux-system köra nattliga säkerhetskopior, eller hur ofta du vill att de ska springa.

    För att redigera cron tabellfilen för användaren är du inloggad som kör:

    $ crontab -e

    Du måste vara bekant med vi för att kunna redigera den här filen. Skriv "I" för att infoga, och börja sedan redigera cron tabellfilen.

    Cron använder följande syntax: minut av timmen, timmen på dagen, månadens dag, månad på året, veckodag, kommando.

    Det kan vara lite förvirrande först, så låt mig ge dig ett exempel. Följande kommando kör rsync-kommandot varje kväll klockan 10:

    0 22 * ​​* * rsync -av --delete / Directory1 / / Directory2 /

    Den första "0" anger minutens minut och "22" anger 10 PM. Eftersom vi vill att detta kommando ska köra dagligen lämnar vi resten av fälten med asterisker och klistrar sedan in rsync-kommandot.

    När du är klar med att konfigurera Cron trycker du på escape och skriver sedan "wq" (utan citat) och trycker på enter. Detta sparar dina ändringar i vi.

    Cron kan få mycket mer djupgående än detta, men att fortsätta om det skulle vara bortom omfattningen av denna handledning. De flesta vill bara ha en enkel veckovis eller daglig backup, och det vi har visat kan du enkelt uppnå. För mer information om Cron, se manens sidor.

    Andra användbara funktioner

    En annan användbar sak du kan göra är att sätta dina säkerhetskopior i en zip-fil. Du måste ange var du vill att zip-filen ska placeras, och sedan rsync den katalogen till din säkerhetskatalog. Till exempel:

    $ zip / ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /

    Kommandot ovan tar filerna från Directory1, lägger dem i /ZippedFiles/archive.zip och sedan rsyncs som katalogerar till Directory2. Ursprungligen kan du tro att den här metoden skulle visa sig ineffektiv för stora säkerhetskopior, eftersom zip-filen kommer att ändras varje gång den minsta ändringen görs till en fil. Rsync överför dock bara de ändrade data, så om din zip-fil är 10 GB och sedan lägger du till en textfil i Directory1 kommer rsync att veta att allt du har lagt till (även om det finns en zip) och bara överföra de få kilobyten av ändrade data.

    Det finns ett par olika sätt att kryptera dina rsync-säkerhetskopior. Den enklaste metoden är att installera kryptering på själva hårddisken (den som dina filer säkerhetskopieras till). Ett annat sätt är att kryptera dina filer innan de skickas till en fjärrserver (eller annan hårddisk, oavsett vad du råkar säkerhetskopiera). Vi kommer att täcka dessa metoder i senare artiklar.

    Oavsett vilka alternativ du väljer väljer rsync att vara ett av de mest effektiva och mångsidiga backupverktygen till dags dato, och även ett enkelt rsync-skript kan spara dig från att förlora dina data.