Robotkopie
robocopy , of "Robust File Copy", is eendirectoryreplicatiecommando , beschikbaar vanaf de Command Line . Het maakte deel uit van de Windows Resource Kit en werd geïntroduceerd als een standaardfunctie van Windows Vista en Windows Server 2008 .
Functies
Robocopy onderscheidt zich door beter te presteren dan de opdrachten in Windows (COPY en xcopy ) en ook:
- Het kan netwerkstoringen tolereren en doorgaan met kopiëren waar het was gebleven (onvolledige bestanden worden gestempeld met de datum 01/01/1980 en bevatten een herstellogboek zodat Robocopy weet waar het verder moet).
- U kunt met succes kenmerken, informatie over de eigenaar, alternatieve gegevensstromen (ADS), controlegegevens en standaarddatums kopiëren, zonder dat u omslachtige opdrachtparameters nodig hebt.
- U kunt de NTFS ACL kopiëren (door de parameter /COPYALL /SEC toe te voegen) en het "back-uprecht" (/B) van Windows NT toe te passen , zodat een beheerder een volledige map kan kopiëren, inclusief die bestanden waarvan het lezen wordt geweigerd aan de beheerder.
- Standaard persistentie, met een programmeerbaar aantal automatische nieuwe pogingen als een bestand niet toegankelijk is.
- Het heeft een "spiegel"-modus, die de boomstructuur gesynchroniseerd houdt door bestanden van de bestemming te verwijderen, optioneel, als ze niet langer in de bron staan.
- Het kan grote hoeveelheden bestanden kopiëren die het XCOPY-hulpprogramma niet zou kunnen.
- Het heeft een voortgangsindicator op de opdrachtregel die continu wordt bijgewerkt.
- U kunt bestanden en mappen met lange namen van meer dan 256 tekens - tot een theoretisch maximum van 32.000 - zonder fouten kopiëren. [ 1 ]
- Ondersteunt kopiëren met meerdere threads (alleen Windows 7). [ 2 ]
Robocopy kan met name geen geopende bestanden kopiëren die door andere gebruikers of toepassingen worden gebruikt. De zogenaamde "back-upmodus" is een beheerdersrecht waarmee Robocopy de machtigingsinstellingen (met name die in de
NTFS ACL ) voor de back-upmissie kan overschrijven. Het Windows Volume Shadow Copy-subsysteem is het enige dat geopende bestanden kan kopiëren terwijl ze in gebruik zijn. Robocopy implementeert geen toegang tot deze service, waardoor het minder bruikbaar is als back-uphulpprogramma voor volumes die in gebruik zijn. U kunt echter de hulpprogramma's VSHADOWof DISKSHADOW(meegeleverd met Windows Server 2008 ) gebruiken om een momentopname te maken van een volume waarvan een back-up kan worden gemaakt met Robocopy.
Bovendien is het ontwerp van de originele versie van Robocopy niet in staat om beveiligingskenmerken te repliceren van bestanden waarvan de machtigingen zijn gewijzigd na de eerste replicatie. [ 3 ] Dit gedrag is gecorrigeerd in de Windows 2008- en Vista-versies van Robocopy. Dit betekent dat Robocopy zich niet hetzelfde gedraagt tussen verschillende platforms. [ 4 ]
interface
Hoewel Robocopy zelf een opdrachtregelprogramma is, heeft Microsoft Technet ook een interface geleverd waarvoor het .net Framework 2.0 vereist is. Het is ontwikkeld door Derk Benisch, systeemingenieur bij de MSN-groep van Microsoft. [ 5 ] Deze interface bevat versie XP026 van Robocopy (voor Vista).
Gebruiksvoorbeelden
Kopieer de inhoud van een map recursief, van c:\foo naar c:\bar
robocopy C:\foo C:\bar /E
Kopieer de inhoud van een map recursief (/E), en kopieer alle informatie van de bestanden (/COPYALL, wat gelijk is aan /COPY:DATSOU, D=Data, A=Attributen, T=Date, S=Security=ACL van NTFS, O=Owner Information, U=Audit Information), geen nieuwe pogingen op vergrendelde bestanden (/R:0). Merk op dat de directorydatums niet opnieuw worden ingesteld als een versie ouder dan XP026 wordt gebruikt:
robocopy C:\foo C:\bar /COPYALL /E /R:0
Dupliceer foo naar bar, verwijder alle bestanden in bar die niet in foo (/MIR) staan, kopieer bestanden in herstartbare modus (/Z) voor het geval de netwerkverbinding wegvalt
robocopy C:\foo \\backupserver\bar /MIR /Z
Kopieer mappen, geen bestanden
De syntaxis van Robocopy verschilt duidelijk van de syntaxis die wordt gebruikt door normale kopieeropdrachten, in die zin dat het alleen mapnamen accepteert, geen bestanden, zowel op de bron als op het doel. Bestandsnamen en jokertekens (zoals " *.* ") worden niet geaccepteerd als bron of bestemming. Bestanden kunnen worden geselecteerd of uitgesloten met behulp van filterargumenten, die alleen kunnen verwijzen naar bestandsnamen die betrekking hebben op reeds geselecteerde mappen, aangezien volledige paden niet worden geaccepteerd.
Om bijvoorbeeld het bestand foo.txt van de c:\bar directory naar c:\baz te kopiëren , zou de volgende uitdrukking worden gebruikt
robocopy c:\bar c:\baz foo.txt
Gedeeltelijke lijst met opdrachtregelparameters
De onderstaande lijst geeft de meest voorkomende opdrachtregelopties voor Robocopy weer [ 6 ]
Algemene opties
- /MIR
- Activeert de spiegelmodus en verwijdert elk bestand in de bestemming dat niet langer in de bron staat (gelijk aan /E en /PURGE).
- /Z
- Kopieer bestanden in opstartmodus. "Herstartbaar" betekent dat Robocopy een herstelrecord naar het onvolledige bestand zal schrijven voor het geval de bewerking wordt onderbroken of afgebroken, zodat een toekomstige Robocopy-run kan verdergaan waar deze was gebleven, in plaats van opnieuw vanaf het begin te beginnen. Dit is handig voor betrouwbare kopieën van grote bestanden of hoeveelheden via onstabiele netwerken zoals [Virtual Private Network|VPN] of internet. Een onvolledig dossier heeft dezelfde grootte als het volledige dossier en is gedateerd in een periode van 24 uur vanaf 01/01/1980 om 0:00 uur.
- /KOPIEER ALLES
- Controleer of er een back-up is gemaakt van de NTFS-beveiliging. Gelijk aan /COPY:DATSOU, waarbij D=Data, A=Attributes, T=Date, S=Security=NTFS ACL, O=Owner Information, U=Audit Information.
- /B
- Open het bestand in de back-upmodus. Het staat het openen van bestanden toe zonder beveiligingsbeperkingen, maar vereist aanvullende rechten op herkomst en bestemming.
- /ZB
- Gebruik herstartbare modus; als de toegang wordt geweigerd, gebruik dan de back-upmodus.
Gespecialiseerde opties
- /S
- Kopieert submappen als ze niet leeg zijn (zoals XCOPY).
- /EN
- Kopieert submappen, zelfs als ze leeg zijn (zoals XCOPY).
- /M
- Kopieert bestanden met het Archive-attribuut (zoals XCOPY met de /M-optie).
- /MOV
- Verplaats de bestanden en verwijder ze uit de bron.
- /ACTIE
- Verwijder bestanden EN mappen (verwijder ze uit de bron na de kopie).
- /MA:n
- Controleer en start de kopie na n wijzigingen (en APK-minuten).
- /APK:n
- Stel het minimale bewakingsinterval (n minuten) in voordat u een nieuwe kopie start.
- /XA:attributen
- Sluit bestanden uit met een van de opgegeven kenmerken. Voorbeeld: /XA:H kopieert geen bestanden met het verborgen kenmerk.
- /XF-naam
- Exclusief bestanden aangegeven in naam . Wildcards worden geaccepteerd. Voorbeeld: /XF *.bak kopieert geen bestanden met de extensie *.bak.
- /XD naam
- Sluit directory 's uit die ergens in het pad met naam zijn aangegeven . Werkt met jokertekens (bijv. /XD BKUP* kopieert geen mappen die beginnen met "BKUP", ongeacht waar ze zich in de boom bevinden).
- /XC
- Sluit bestanden met wijzigingen uit .
- /XN
- Exclusief nieuwe bestanden . _
- /XO
- Exclusief oudere bestanden
- /XX
- Exclusief extra bestanden en mappen , die zich wel in de bestemming kunnen bevinden, maar niet in de bron.
- /XL
- Sluit solitaire bestanden en mappen uit ; Het kan bij de oorsprong zijn, maar niet bij de bestemming.
- /ALS
- Voeg de volgende bestanden toe.
- /ES
- Bevat dezelfde bestanden .
- /ITEM
- Bevat aangepaste bestanden (bijvoorbeeld als sommige bestandskenmerken hebben en andere alleen-lezen).
- /XJ
- Sluit symbolische links uit _ Bij het kopiëren van gebruikersaccounts naar een andere locatie in Windows Vista is het belangrijk symbolische koppelingen uit te sluiten. De link in '\Users\...\AppData\local' genaamd 'Application Data' verwijst naar de bovenliggende link, waardoor een lus ontstaat die Robocopy kan laten crashen. Bovendien, als een link verwijst naar een bronschijf die naar een andere doelschijf is gekopieerd met behulp van /MIR (of /E en /PURGE) en de link wordt gekopieerd, zal deze verwijzen naar de bronschijf, wat kan resulteren in de inhoud van de bron schijf.
- /R:n
- Vertelt Robocopy de 'n'-pogingen voordat hij afsluit met een fout (standaard 1 miljoen).
- /IPG:n
- Vertelt Robocopy de pauze in 'n' milliseconden tussen pakketten in netwerkoverdracht. Handig om bandbreedte te behouden op langzame verbindingen.
- /L
- Simu L om de kopie te maken zonder het te doen, om het resultaat van een configuratie vanaf de opdrachtregel te testen.
- /W:n
- Wachttijd tussen nieuwe pogingen (standaard 30 seconden).
- /ZUIVEREN
- Verwijder de bestanden die niet in oorsprong zijn.
- /DST
- Compensatie voor tijdsverschillen.
- /DCOPY:T
- Kopieer data van directories. ### Beschikbaar in XP026 (WinXP) & XP027 en later (Vista)
- /MAXAGE:n
- MAX bestandslevensduur - sluit bestanden uit die ouder zijn dan n dagen/datum.
- /MINAGE:n
- Minimale levensduur van bestanden - sluit bestanden uit met minder dan n dagen/datum.
- (Als n < 1900 dan n = aantal dagen, anders n = datum JJJJMMDD ).
- /MT:n
- Multithreaded kopie (alleen Windows 7). De waarde van n varieert van 1 tot 128 (8 standaard)
- /FFT
- Neem FAT-bestandstijden (2-seconden datum/tijd granulariteit).
Logging opties
- /NFL
- Neem geen bestandsnamen op.
- /NDL
- Registreer geen directorynamen.
- /NS
- Log geen bestandsgroottes in.
- /NC
- Registreer geen bestandsklassen.
- /X
- Maak een lijst van alle extra bestanden.
- /V
- Extraheer gedetailleerde informatie, met uitzondering van de bestanden.
- /TS
- Voeg de datums van de bronbestanden toe.
- /PF
- Volledige paden opnemen.
- /NP
- % gekopieerd niet weergeven.
- /ETA
- Toon geschatte aankomsttijd.
- /LOG:bestand.txt
- Vervang file.txt door de status van de taak.
- /LOG+:bestand.txt
- Voeg de status van de taak toe aan file.txt.
- /TEE
- Uitvoer naar consolevenster en logbestand.
- /NJH
- Geen taakkop.
- /NJS
- Geen taakoverzicht.
(Zie de volledige lijst in [1] hier)
Bekende
Tot XP026
- Versie XP026 retourneert geen ERRORLEVEL-codes als er extra mappen/bestanden zijn.
- De nieuwe optie in Vista (XP027) /EFSRAW: Kopieer versleutelde bestanden in EFS RAW-modus; niet beschikbaar voor XP (XP026).
- Robocopy kopieert geen datums uit bronmappen. In plaats daarvan zal het de huidige datum gebruiken bij het maken van nieuwe. Als u wilt dat beide kopieën hetzelfde zijn, moet u een andere back-upoplossing gebruiken. Geadresseerd in versie XP026 en de Vista-versie (/DCOPY:T parameter)
- Het kopieert niet betrouwbaar korte bestandsnamen.
- Het kopiëren van bestanden in de herstartbare modus is veel langzamer (ongeveer 6 keer langer op het netwerk) dan in de normale modus of back-upmodus vanwege de noodzakelijke administratieve overhead.
- Hoewel versie XP026 al gecomprimeerde bestanden kan kopiëren, treedt er veel fragmentatie op .
- De back-upmodus kan de expliciete weigering van NTFS ACL-machtigingen niet overschrijven als het kopiëren geen eigendom is van een object. (Foutmelding: ERROR 5 (0x00000005) NTFS-back-up naar doelmap kopiëren. Toegang wordt geweigerd.) Deze fout kan worden verholpen door de gegevens eenvoudigweg te kopiëren met deze optie-instelling /COPY:DT in plaats van de optie /COPYALL
- Robocopy bewaart geen harde links .
- Robocopy kan niet over FTP-links kopiëren.
ErrorLevel retourcodes
De retourcode van Robocopy is een bitmap, zoals te zien is in: [ 7 ]
- 0×16 Ernstige fout. Robocopy heeft geen bestanden gekopieerd. Het is te wijten aan een gebruiksfout of onvoldoende toegangsrechten bij de bron of bestemming.
- 0×08 Sommige bestanden of mappen zijn niet gekopieerd (Er waren leesfouten en de limiet voor opnieuw proberen is overschreden). Controleer later op deze fouten.
- 0×04 Er zijn enkele niet-overeenkomende bestanden en bestandsnamen gedetecteerd. Onderzoek het uitvoerlogboek. Administratie zal waarschijnlijk nodig zijn.
- 0×02 Er zijn extra bestanden/mappen gedetecteerd. Onderzoek het uitvoerlogboek. Beheer zal nodig zijn.
- 0×01 Een of meer bestanden zijn met succes gekopieerd (dat wil zeggen dat er nieuwe bestanden zijn binnengekomen).
- 0×00 Geen fout, niets gekopieerd. Herkomst en bestemming zijn volledig gesynchroniseerd.
U kunt deze codes als volgt gebruiken voor gebruik in batchbestanden:
if errorlevel 16 echo ***FATAL ERROR*** & goto : eof
if errorlevel 8 echo **KOPIE MISLUKT** & goto : eof
if errorlevel 4 echo *MISCREPANCY* & goto : eof
if errorlevel 2 echo EXTRA BESTANDEN & goto : eof
if errorlevel 1 echo Kopieer succesvol & goto : eof
if errorlevel 0 echo –geen wijziging– & goto : eof
Als alternatief kunnen ze ook worden gebruikt om meer gedetailleerde informatie te geven:
if errorlevel 16 echo ***FATAL ERROR*** & goto : eof
if errorlevel 15 echo FAIL MISM XTRA COPY & goto : eof
if errorlevel 14 echo FAIL MISM XTRA & goto : eof
if errorlevel 13 echo FAIL MISM COPY & goto : eof
if errorlevel 12 echo FAIL MISM & goto : eof
if errorlevel 11 echo FAIL XTRA COPY & goto : eof
if errorlevel 10 echo FAIL XTRA & goto : eof
if errorlevel 9 echo FAIL COPY & goto : eof
if errorlevel 8 echo FAIL & goto : eof
if errorlevel 7 echo MISM XTRA COPY & goto : eof
if errorlevel 6 echo MISM XTRA & goto : eof
if errorlevel 5 echo MISM COPY & goto : eof
if errorlevel 4 echo MISM & goto : eof
if errorlevel 3 echo XTRA COPY & goto : eof
if errorlevel 2 echo XTRA & goto : eof
if errorlevel 1 echo COPY & goto : eof
if errorlevel 0 echo –geen verandering– & goto : eof
Versies
Opmerking: verschillende versies van Robocopy geven het versienummer niet weer wanneer 'Robocopy /?' op de opdrachtregel.
| Product versie | bestandsversie | Jaar | Bron | Ander |
|---|---|---|---|---|
| 1.70 | - | 1997 | Windows NT-bronnenkit | |
| 1.71 | 4.0.1.71 | 1997 | Windows NT-bronnenkit | |
| 1,95 | 4.0.1.95 | 1999 | Windows 2000-bronnenkit | |
| 1.96 | 4.0.1.96 | 1999 | Windows 2000-bronnenkit | © 1995-1997 |
| XP010 | 5.1.1.1010 | 2003 | Windows 2003 -bronnenkit | |
| XP026 | 5.1.2600.26 | 2005 | Gedownload met Robocopy GUI v.3.1.2 | |
| XP027 | 5.1.10.1027 | 2008 | Gebundeld met Windows Vista , Server 2008, Windows 7 | © 1995-2004 |
| 6.1 | 6.1.7601 | 2009 | KB2639043 | © 2009 |
| 6.2 | 6.2.9200 | 2012 | Gebundeld met Windows 8 | © 2012 |
| 6.3 | 6.3.9600 | 2013 | Gebundeld met Windows 8.1 | © 2013 |
| 10.0 | 10.0.10240 | 2015 | Gebundeld met Windows 10 | © 2015 |
Zie ook
- TWEE
- XCOPY
- MS-DOS-prompt
- rsync
- sync speelgoed
Referenties (in het Engels)
- ↑ http://windowsitpro.com/Windows/Articles/ArticleID/44324/pg/2/2.html Gearchiveerd op 5 november 2005, op de Wayback Machine Robocopy XP010 FAQ Gebruik krachtige nieuwe schakelopties.
- ↑ "Voer multithreaded bestandskopieën uit met Robocopy in Windows 7" .
- ↑ Microsoft's Robocopy-compromis .
- ↑ Lelijke bug in Robocopy - beveiliging op bestandsniveau negerend .
- ^ Joshua Hoffman (november 2006). "Utility Spotlight Robocopy GUI" (html) . TechNet Magazine (Microsoft Corporation en CMP Media, LLC) . Ontvangen op 17 juli 2008 .
- ↑ Robocopy.exe, Microsoft Windows Server 2003 Resource Kit, hulpuitvoer wanneer uitgevoerd met /? opdrachtregel schakelaar. Volledige hulp bij /??? opdrachtregel schakelaar.
- ↑ "Robocopy Errorlevel Return Codes" . Gearchiveerd van het origineel op 22 december 2008 . Ontvangen 4 juli 2009 .