Android

Hoe bestanden over te dragen met rsync via ssh

How to Sync Files/Directories Using Rsync with Non-standard SSH Port

How to Sync Files/Directories Using Rsync with Non-standard SSH Port

Inhoudsopgave:

Anonim

Als het gaat om het overbrengen van bestanden tussen systemen op het netwerk, hebben Linux- en Unix-gebruikers veel tools tot hun beschikking.

De populairste protocollen voor gegevensoverdracht zijn SSH en FTP. Hoewel FTP erg populair is, geeft u altijd de voorkeur aan SSH, omdat dit de veiligste manier is om uw bestanden over te zetten.

Er zijn gespecialiseerde tools voor bestandsoverdracht via SSH zoals scp en sftp maar geen daarvan heeft alle functies die rsync biedt. rsync kan worden gebruikt voor het spiegelen van gegevens, incrementele back-ups, het kopiëren van bestanden tussen systemen enzovoort.

In deze zelfstudie leggen we uit hoe u bestanden met rsync via SSH kopieert.

Voorwaarden

  • Het rsync hulpprogramma moet op zowel het doel- als het bronsysteem zijn geïnstalleerd. Als het niet is geïnstalleerd, kunt u het installeren met behulp van de pakketbeheerder van uw distributie:

    Ubuntu en Debian:

    sudo apt install rsync

    CentOS en Fedora:

    sudo yum install rsync

    SSH-toegang tot de externe computer.

    De gebruiker die de opdracht rsync uitvoert en de externe SSH-gebruiker moeten de juiste machtigingen hebben om bestanden te lezen en te schrijven.

rsync om bestanden over te dragen via SSH

Met rsync kunt u bestanden en mappen via SSH overbrengen van en naar externe servers.

De algemene syntaxis voor het overbrengen van bestanden met rsync is als volgt:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Waar SRC de DEST is, is DEST de doeldirectory USER is de externe SSH-gebruikersnaam en HOST is de externe SSH-host of het IP-adres.

De nieuwere versies van rsync zijn geconfigureerd om SSH te gebruiken als standaard externe shell, zodat u de optie -e ssh kunt weglaten.

Om bijvoorbeeld een enkel bestand /opt/file.zip van het lokale systeem naar de /var/www/ map op het externe systeem met IP 12.12.12.12 zou je het volgende uitvoeren:

rsync -a /opt/file.zip [email protected]:/var/www/

De optie -a staat voor de archiefmodus, die mappen recursief synchroniseert, speciale en blokkeerapparaten overbrengt, symbolische koppelingen, aanpassingstijden, groep, eigendom en machtigingen bewaart.

Als het bestand op de externe server bestaat, wordt het overschreven. Als u het bestand onder een andere naam wilt opslaan, geeft u de nieuwe naam op:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Om gegevens over te dragen van een externe naar een lokale machine, gebruikt u de externe locatie als bron en de lokale locatie als bestemming:

rsync -a [email protected]:/var/www/file.zip /opt/

Het overzetten van mappen met rsync via SSH is hetzelfde als het overzetten van bestanden.

Het is belangrijk om te weten dat rsync een andere behandeling geeft met een slash / . Wanneer de bronmap een slash bevat, kopieert rsync alleen de inhoud van de bronmap naar de doelmap. Wanneer de volgende schuine streep wordt weggelaten, wordt de bronmap gekopieerd naar de doelmap.

Als u bijvoorbeeld de lokale /opt/website/images/ map naar de /var/www/images/ map op een externe machine wilt overbrengen, typt u:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Gebruik de optie --delete als u de lokale en externe map wilt synchroniseren. Wees voorzichtig bij het gebruik van deze optie, omdat bestanden in de doelmap worden verwijderd als ze niet in de bronmap staan.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Als SSH op de externe host luistert naar een andere poort dan de standaard 22 , geeft u de poort op met de optie -e . Als SSH bijvoorbeeld luistert op poort 3322 u:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Bij het overdragen van grote hoeveelheden gegevens wordt aanbevolen om de opdracht rsync voeren in een schermsessie of de optie -P gebruiken die rsync vertelt om tijdens de overdracht een voortgangsbalk weer te geven en de gedeeltelijk overgedragen bestanden te behouden:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Conclusie

We hebben u laten zien hoe u rsync via SSH gebruikt om bestanden en mappen te kopiëren en te synchroniseren.

Misschien wilt u ook lezen hoe u bestanden of mappen uitsluit met rsync .

Als je nog vragen hebt, kun je een reactie achterlaten.

rsync-terminal