Heeft u zich ooit zorgen gemaakt over het verlies van uw gegevens, of bent u het zat om dagelijks of wekelijks handmatige back-ups te maken? Gebruik de rsync commando en synchroniseer automatisch uw lokale bestanden naar een externe server zo vaak als gewenst zonder handmatige tussenkomst. Let op, deze handleiding vereist wel toegang tot een externe Linux-server (bijv. AWS), en is geschreven onder Ubuntu 20.04, hoewel elke Linux-distro goed zou moeten werken.

Installeer rsync

Controleer voor alles of rsync is geinstalleerd. Voer op zowel uw lokale pc als webserver dit commando uit:

rsync --versie

Als je de huidige rsync-versie terugkrijgt, ben je helemaal klaar voor de volgende sectie. Anders, als u een opdracht niet gevonden fout, u mag installeren rsync met dit commando:

sudo apt-get -y install rsync

SSH-sleutel genereren

We zullen een gebruiken SSH-sleutel om de verbinding tussen onze lokale pc en de externe server te verifiëren. Om een ​​nieuwe SSH-sleutel op uw lokale pc in de terminal te genereren, voert u de opdracht uit:

instagram viewer
Hoe u SSH op Linux instelt en uw installatie test: een beginnershandleiding

Wilt u op afstand toegang krijgen tot uw Linux-computer of -server? Hier leest u hoe u SSH instelt en configureert op Linux, Windows en mobiel.

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

Wanneer u om een ​​wachtwoord wordt gevraagd, laat u dit blanco en drukt u tweemaal op de Enter-toets. Dit genereert twee nieuwe bestanden in uw ~/.ssh/ map met de naam rsync.key wat de privésleutel is, en rsync.key.pub, de openbare sleutel.

Externe server instellen

Hoewel dit niet vereist is, maken we voor deze handleiding een nieuwe gebruiker op de externe server voor rsync-verbindingen en om alle back-upbestanden op te slaan. Log in op de externe server via SSH en voer deze opdracht uit:

sudo useradd -m rsync

Het bovenstaande voorbeeld gebruikt de gebruikersnaam rsync, maar u kunt het veranderen in alles wat u maar wilt. De -m optie vertelt Linux eenvoudig om een ​​thuismap voor onze nieuwe gebruiker te maken.

Om uw lokale pc te laten verifiëren, moet de openbare SSH-sleutel die in de vorige sectie is gegenereerd, worden gekopieerd naar de externe server. Open de /~.ssh/rsync.key.pub bestand in a tekstverwerker en je zult een grote lijn zien die er ongeveer zo uitziet.

ssh-rsa gebruiker@host

Deze lange regel is de openbare SSH-sleutel. Kopieer het naar uw klembord en voer binnen uw externe server deze opdrachten uit:

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

Vervang in de voorlaatste opdracht de tekst tussen de aanhalingstekens door die lange openbare SSH-sleutelregel. Dat is alles, uw lokale pc kan zich nu verifiëren met uw externe server.

Configureer ssh-configuratiebestand

Voeg voor de eenvoud een vermelding toe aan de ~/.ssh/config bestand op uw lokale pc om eenvoudig verbinding te maken met de externe server. Open het bestand op uw lokale pc met de opdracht.

nano $HOME/.ssh/config

Voeg binnen het bestand een item toe voor de externe server, zoals:

host back-up_server
 hostnaam 192.168.0.24
 gebruiker rsync
 IdentityFile ~/.ssh/rsync

Wijzig de hostnaam in het IP-adres van uw externe server, en als u een andere gebruikersnaam dan "rsync" heeft gebruikt, verander dat ook. Je mag alles gebruiken wat je wilt voor de host, maar voor dit voorbeeld is "backup_server" gebruikt. Sla het bestand op en sluit het door op Ctrl+X te drukken, gevolgd door de toetsen "Y" en Enter.

Test uw SSH-verbinding met de externe server met de opdracht.

ssh backup_server

Ervan uitgaande dat alles correct is ingesteld, zou u nu via SSH op uw externe server moeten zijn ingelogd. Sluit de verbinding met het commando.

Uitgang

Synchroniseer uw bestanden

Test nu de rsync functionaliteit, en om bijvoorbeeld uw Documenten-map op uw lokale pc te synchroniseren, voert u de opdracht uit:

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

Het eerste optreden van ~/Documenten/ specificeert het lokale bestand of de map om te synchroniseren, backup_server komt overeen met de invoer toegevoegd aan de ~/.ssh/config bestand, en het einde :~/Documenten geeft eenvoudig aan dat alles moet worden geüpload naar de directory /Documents van de externe server ten opzichte van de homedirectory.

Log in op de externe server en u zou een nieuwe map Documenten moeten zien die synchroon loopt met die van uw lokale pc. Elke keer dat u de bovenstaande opdracht uitvoert, worden alleen bestanden geüpload die sinds de laatste keer zijn gewijzigd, dus u uploadt niet constant de volledige inhoud van de map.

Automatiseren via Crontab

Nu alles is getest en naar behoren werkt, kunnen we het hele proces eenvoudig automatiseren door een crontab-taak toe te voegen aan onze lokale pc. Om uw lokale map elke 15 minuten automatisch te synchroniseren met de externe server, voert u binnen terminal de opdracht uit.

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

Mogelijk krijgt u een bericht "geen crontab voor gebruiker" en kunt u dit gewoon negeren. Verander de Documenten map naar datgene waarvan u een back-up wilt maken, maar zorg ervoor dat u een schuine streep achterlaat voor mappen, anders zullen ze niet correct een back-up maken.

Controleer of de crontab-taak met succes is toegevoegd met de opdracht.

crontab -l

Als je de crontab-taak ziet die zojuist is toegevoegd, dan is alles op zijn plaats. Wacht 15 minuten, controleer uw externe server en alle benodigde bestanden zouden daar moeten zijn. Vanaf nu worden alle wijzigingen die in uw bestanden worden aangebracht, elke 15 minuten automatisch geüpload naar de externe server.

Downloaden van externe server

U kunt ook gebruik maken van rsync om bestanden te downloaden van de externe server en ze te synchroniseren met uw lokale pc. Gebruik het bovenstaande /Documents-mapvoorbeeld en voer in terminal de opdracht uit:

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

De ~./Documenten map op uw lokale pc zou nu een spiegelbeeld moeten zijn van de externe server.

Patronen opnemen en uitsluiten

Als u ooit alleen bestanden wilt synchroniseren die overeenkomen met een bepaald patroon, zoals eindigen met .html je kunt de gebruiken --erbij betrekken patroon. Voer binnen terminal het commando uit.

rsync -avz --include "*.html" --progress ~/mijnsite/ backup_server:~/public_html

Controleer de externe server en u zult zien dat alleen bestanden met de extensie .html uit de lokale /mysite/ directory zijn geüpload naar de /public_html/ remote directory. Op dezelfde manier kunt u ook alles synchroniseren, behalve bepaalde bestanden met de --uitsluiten optie. Met de volgende opdracht worden bijvoorbeeld alle bestanden gesynchroniseerd, behalve die met een .tekst verlenging.

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

Synchroniseer twee lokale mappen

Indien nodig, kunt u ook twee lokale mappen synchroniseren met de opdracht.

rsync -zvr ~/bron/map ~/bestemming/map

Deze opdracht werkt precies hetzelfde als bij het synchroniseren met een externe server, het enige verschil is dat het twee lokale mappen zijn.

Rust zacht

U kunt nu opgelucht ademhalen, wetende dat uw kansen op gegevensverlies nu aanzienlijk lager zijn. In dit artikel heb je geleerd wat: rsync is, hoe u een SSH-sleutel genereert en installeert, een server definieert binnen de ~./.ssh/config bestand, synchroniseer een lokale en externe map en automatiseer het hele proces via crontab. In de toekomst worden alle benodigde bestanden altijd met slechts 15 minuten vertraging gesynchroniseerd met uw externe server.

E-mail
Hoe u uw Linux-harde schijf kunt klonen: 4 methoden

Wilt u uw Linux-harde schijf of -partitie klonen? Gebruik een van deze hulpprogramma's voor het klonen van schijven om uw Linux-schijf te klonen.

Gerelateerde onderwerpen
  • Linux
  • Reservekopie van gegevens
  • Linux
  • Cloud backup
  • Thuisnetwerk
Over de auteur
Matt Dizak (13 artikelen gepubliceerd)Meer van Matt Dizak

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.