De Linux
rsync
Opdracht is een krachtig hulpmiddel voor het kopiëren van bestanden en map. Hier zijn tien veel voorkomende use-cases die u op uw eigen systemen goed kunt gebruiken.
Het RSYNC -tool
De
rsync
Tool kopieert bestanden en mappen tussen twee computers. Het gebruikt een
geavanceerd algoritme
Die mapbomen scant om bestanden op de broncomputer te vinden die niet op de bestemmingscomputer bestaan. Deze bestanden worden verzonden naar de bestemmingscomputer. Wat maakt
rync
zo slim is dat het kan uitzoeken welke stukken van
bestaand
bestanden zijn gewijzigd en verzendt alleen de
Wijzigde delen
.
Je kunt gebruiken
rsync
om bestanden naar een andere locatie op uw harde schijf te kopiëren, naar een andere harde schijf op dezelfde computer, naar een
extern verbonden USB -station
, of een andere netwerktoegankelijke locatie.
Daarbovenop,
rsync
kan optioneel symbolische links, harde links en bestand behouden
metadata
zoals bestandseigendom, machtigingen en toegangstijden. Om al deze functionaliteit te ondersteunen,
rsync
Heeft veel opties en het uitzoeken van allemaal kost tijd. We hebben deze 10 voorbeelden verzameld om u te helpen aan de slag te gaan. We hebben al geschreven over back -ups met
rsync
, dus we concentreren ons hier op ander gebruik.
Voor al zijn vele opties, de structuur van een
rsync
Commando is eenvoudig. We moeten de bron, de bestemming en de opties die we willen gebruiken bieden. Dat zal je waarschijnlijk vinden
rsync
is al geïnstalleerd op uw Linux -computer - het was op al onze testmachines - maar als het niet is, zal dit zeker in de repositories van uw distributie staan.
1. Kopieer bestanden naar een andere map
Hier is een eenvoudig voorbeeld om ons op gang te krijgen. We gaan de bestanden van de directory 'Project-Files' naar de directory 'Documenten' kopiëren. We gebruiken twee opties, de
-A
(archief) optie en de
-v
(uitgebreide) optie. De uitgebreide optie vertelt
rsync
om uit te leggen wat het doet zoals het doet. De
archief
Options behoudt het eigendom van het bestand en enkele andere items waar we binnenkort naar zullen kijken.
Gebruik makend van
LS
Op de map "Documenten" laat zien dat de bestanden zijn gekopieerd.
Terwijl
rsync
Werkt, de bestanden worden vermeld als ze worden gekopieerd. Werden verteld:
- Het aantal bytes dat wordt verzonden.
-
Het aantal ontvangen bytes. Voordat de bestandsoverdracht plaatsvindt,
rsyncmoet erachter komen welke bestanden moeten worden overgedragen. Om dat te doen, moet wat informatie over de bestanden op de bestemming worden opgehaald doorrsync. Deze informatie is opgenomen in de ontvangen bytes. - De snelheid van de overdracht.
- De totale grootte van de gekopieerde bestanden.
- De "versnelling". Dit is de verhouding tussen de totale grootte gedeeld door de som van de verzonden en ontvangen bytes. Hoe hoger dit aantal, hoe efficiënter de overdracht.
We hebben het tekstbestand in de bronmap aangepast en de
rsync
commando.
Deze keer is het enige bestand dat moet worden bijgewerkt het tekstbestand dat we hebben gewijzigd. Het versnellingsbak is nu 30.850. Dit is hoeveel efficiënter het is om het gewijzigde deel van dat enkele bestand te kopiëren, dan om alle bestanden te kopiëren.
De
-A
(Archief) Optie vertegenwoordigt eigenlijk een verzameling andere opties. Het is hetzelfde als het gebruik van al deze opties:
- R : Werk recursief via directory -bomen in de bronmap en kopieer ze naar de Destination Directory, waardoor ze worden gecreëerd als ze daar nog niet bestaan.
- lot : Kopieer Symlinks als Symlinks.
- P : Bestandsmachtigingen behouden.
- T : Behouden bestandsaanpassingstijden.
- G : Groepsmachtigingen behouden.
- O : Bewaar het bestandseigendom.
- D : Kopieer speciale bestanden en apparaatbestanden. Speciale bestanden kunnen op communicatie gerichte items zijn die worden behandeld als bestanden, zoals Sockets en first-in, first-out pijpen (Fifos). Apparaatbestanden zijn speciale bestanden die toegang bieden tot apparaten en pseudo-apparaten.
Dit is zo'n vaak gebruikte combinatie dat
rsync
biedt de
-A
(Archief) Optie als een steno manier om ze allemaal aan te roepen.
2. Kopieer een map naar een andere map
Als je naar de vorige kijkt
rsync
Command u ziet een achterblijvende voorwaartse slash "/" op het bestandspad van de bronmap. Dit is belangrijk. Het zegt
rsync
Om de
inhoud
van de directory. Als u de achterste voorwaartse schuine streep niet geeft,
rsync
zal de map kopiëren
En
De inhoud.
Deze keer wordt de directorynaam aan de bestandsnaam toegevoegd zoals deze worden vermeld. Als we in de doelmap kijken, zien we dat de bronmap is gekopieerd met de bestanden erin.
3. Kopieer een map naar een andere schijf
Bestanden kopiëren naar een andere locatie op dezelfde harde schijf biedt u geen bescherming tegen een Drive -mislukking . Als die schijf de geest opgeeft, bent u de bron- en bestemmingskopieën van die bestanden kwijtgeraakt. Het kopiëren van ze naar een andere harde schijf is een veel robuustere manier om uw gegevens te beschermen. Het enige dat we hoeven te doen, is het juiste pad naar de bestemmingsaandrijving bieden.
Kijkend naar de andere harde schijf toont ons dat de map en bestanden er naartoe zijn gekopieerd.
4. Eerst een droge run doen
Voordat we kijken naar hoe
rsync
kan nuttig bestanden voor ons verwijderen, laten we eens kijken hoe we kunnen maken
rsync
Voer een droge run uit.
In een droge run,
rsync
Doorloopt de bewegingen van het uitvoeren van de acties waar we om hebben gevraagd, maar doet ze eigenlijk niet. Het rapporteert over wat er zou zijn gebeurd als het commando was uitgevoerd. Op deze manier kunnen we ervoor zorgen dat de opdracht precies doet wat we verwachten.
Om een droge run te forceren, gebruiken we de
--oefening
keuze.
De bestanden die zouden zijn gekopieerd, worden voor ons vermeld en we krijgen de gebruikelijke statistieken, gevolgd door het bericht
(OEFENING)
Zodat we weten dat er eigenlijk niets heeft plaatsgevonden.
5. Bestanden verwijderen in de doelmap
De
--verwijderen
Optie vertelt
rsync
verwijderen
Bestanden en mappen
in de
bestemming
Directory die niet in de bronmap staan. Dit betekent dat de Destination Directory een exacte kopie van de bronmap is. We zullen voorzichtig zijn en de
--oefening
Optie eerst.
We zijn geïnformeerd dat twee bestanden worden verwijderd. Als we er zeker van zijn dat het ons niet kan schelen dat ze worden verwijderd, kunnen we de
--oefening
Optie en voer de opdracht uit voor echt.
Deze keer wordt de inhoud van de mappen gesynchroniseerd en worden de twee extra bestanden verwijderd.
6. De bronbestanden verwijderen
U kunt ervoor kiezen om de bronbestanden te verwijderen na een
Succesvolle overdracht
, maken
rsync
gebruik meer als een beweging dan op een kopie. Als de overdracht niet succesvol was, worden de bronbestanden niet verwijderd. De optie die we moeten gebruiken is
-Remove-Source-Files
.
Merk op dat de bestanden kunnen worden verwijderd, zelfs als er geen bestanden worden overgedragen. Dat is omdat als
rsync
controles, en alle bestanden staan al in de Destiny Directory en er is niets voor
rsync
Te doen,
rsync
vindt dat een succesvolle overdracht.
Ook,
rsync
verwijdert alleen de
bestanden
Uit de bronmap. Het verwijdert de bronmap niet of submopleidingen, alleen de bestanden erin. We kunnen dit zien door de
-R
(recursieve) optie met
LS
, op de bronmap.
7. Kopieer bestanden naar een externe computer
Om mappen te synchroniseren met een externe computer,
rsync
Moet op beide computers worden geïnstalleerd. Stel SSH -communicatie in tussen de twee computers voordat u probeert te gebruiken
rsync
naar de externe computer.
U moet op afstand kunnen inloggen als een vaste gebruiker op de externe computer voor
rsync
werken. Het maakt niet uit of u een ID en wachtwoord gebruikt om in te loggen, of dat u SSH -toetsen voor Secure hebt ingesteld
wachtwoordloos
Toegang, maar als u niet als gebruiker kunt inloggen, dan
rsync
zal ook niet werken.
Als u inlogt met een wachtwoord,
rsync
Zal u om het wachtwoord vragen. Als u SSH -toetsen gebruikt om te loggen, is het proces naadloos.
Het enige extra wat u moet doen, is de gebruikersaccountnaam en het IP -adres van de externe computer aan het begin van het bestemmingsbestandspad toevoegen. Gebruik een bij teken “
@
"Om de gebruikersnaam te scheiden van de computernaam of IP -adres, en een dikke darm"
:
”Om de computernaam te scheiden of
IP adres
vanuit het mappad.
We krijgen dezelfde informatie die aan ons wordt gemeld als wanneer we dat lokaal bestanden kopiëren.
8. Neem bestanden of mappen uit of sluit uit
Mogelijk heeft u bestanden en mappen in de bronmap die u niet naar de bestemmingscomputer wilt kopiëren. Jij kan
sluit ze uit
de ... gebruiken
--uitsluiten
keuze. Op een vergelijkbare manier kunt u ervoor kiezen om specifieke bestanden en mappen op te nemen met de
--erbij betrekken
keuze.
De gril is dat als je de
--erbij betrekken
Optie op zichzelf worden alle bestanden als normaal gekopieerd - inclusief uw specifiek opgenomen bestanden. Om alleen uw opgenomen bestanden te kopiëren die u moet
--uitsluiten
al de rest.
Je kunt er zoveel gebruiken
--erbij betrekken
En
--uitsluiten
Opties in uw commando zoals u wilt, maar zorg ervoor dat u uw
--erbij betrekken
opties voor uw
--uitsluiten
Opties. Zorg er ook voor dat u een achterblijvende schuine streep op uw bronbestandspad hebt.
Deze opdracht kopieert alleen C -broncodebestanden en CSV -gegevensbestanden naar de bestemmingscomputer.
De enige gekopieerde bestanden zijn degenen die we specifiek hebben opgenomen.
9. Comprimeer bestanden in overdracht
De
-z
(Compress) Optie veroorzaakt
rsync
Om de overgedragen bestanden te comprimeren. Ze worden echter niet opgeslagen als gecomprimeerde bestanden op de bestemmingscomputer, ze worden alleen gecomprimeerd tijdens de overdracht zelf. Dit kan lange overdrachten versnellen.
10. Monitoring van de voortgang
Over lange transfers gesproken, we kunnen enkele statistieken toevoegen zodat we de voortgang van de overdracht kunnen zien.
De
-P
(Gedeeltelijke, voortgang) Optie voegt eigenlijk twee opties toe,
--gedeeltelijk
En
--voortgang
. De
--gedeeltelijk
Optie vertelt
rsync
om gedeeltelijk overgedragen bestanden te behouden als een overdracht mislukt. Dit bespaart tijd wanneer de overdracht opnieuw wordt gestart.
De
--voortgang
Optie Afdrukken, voor elk bestand, de gegevens die zijn overgedragen in bytes en als percentage, de snelheid van de overdracht, de tijd, het aantal van het bestand dat wordt overgedragen en de telling van de resterende bestanden.
De output loopt vrij snel voorbij en het is moeilijk te lezen. U kunt dingen enigszins verbeteren door de
-v
(uitgebreide) optie van de opdracht. Zelfs dan is het nog steeds moeilijk om te lezen terwijl het voorbij zoekt.
Het is vaak nuttiger om de voortgang van de totale overdracht te controleren. U kunt dit doen met de –info -optie en het doorgeven van "progress2" als parameter.
Zoals CP op steroïden
De
rsync
Commando is snel, flexibel en de moeite waard die nodig is om ermee vertrouwd te raken. De basisvorm van een
rsync
commando met de
-Av
Opties, bronmap en bestemmingsmap is helemaal niet moeilijk te onthouden.
Voor veel use-cases is dat alles wat je nodig hebt. Kom daar comfortabel mee en de rest komt gemakkelijk.
- › Hoe goedkoop VPN's meer kunnen kosten dan u had onderhandeld
- › Wyze is down, het bent niet alleen jij
- › Vergeet gaming desktops: gaming -laptops zijn bijna net zo snel
- › Uw volgende smart home -apparaat heeft mogelijk 5G
- › Stop met het gebruik van het toetsenbord en de muis die bij uw pc is geleverd
- › Bose QuietComfort Earbuds 2 Review: een stap voorwaarts voor audio van ruisonderdrukking