Säkerhetskopiera / kopiera filer som är i bruk eller låst i Windows (kommandorad)
Om du någonsin har försökt kopiera en fil som är låst av en annan applikation har du antagligen visat ett felmeddelande som liknar "Processen kan inte komma åt filen eftersom en annan process har låst en del av filen". Så hur kopierar du det ändå?
Sedan XP har Windows stödt en teknik som heter Volume Shadow Copy, som används för att driva tidigare versioner i Vista samt Systemåterställning och säkerhetskopiering. Vad det gör är att ta en tillfällig ögonblicksbild av filen eller enheten och sedan låta en applikation läsas från ögonblicksbilden även när andra program åtkomst till eller ändra filen.
Vad vi kan göra är att använda ett kommandoradsverktyg som heter HoboCopy som använder denna tjänst för att kopiera filen.
Förstå förutsättningarna
HoboCopy och de flesta andra säkerhetskopieringsverktyg använder sig av två tjänster i Windows och du måste verifiera att dessa tjänster inte är inaktiverade:
- Volymskuggkopia
- Microsoft Software Shadow Copy Provider
De kan lämnas som Manuell start, så de behöver inte springa hela tiden. Hobocopy startar de två tjänsterna automatiskt när det behövs, och volymskuggkopieringstjänsten stängs av när den är klar.
Använda HoboCopy för att säkerhetskopiera / kopiera en enda fil
Syntaxen är lite konstig, eftersom HoboCopy verkligen är avsedd att användas för att säkerhetskopiera en hel uppsättning mappar. Vi kan använda den för att säkerhetskopiera en enda fil genom att passera i filnamnargumentet i slutet.
Obs! I Windows Vista måste du starta en kommandotolk för administratörsläge genom att högerklicka på kommandotolken i startmenyn och välja Kör som administratör.
Syntax:
hobocopy c: \ directoryname \ d: \ backupdirectory \
Till exempel vill jag säkerhetskopiera min c: \ users \ geek \ mail \ outlook.pst fil till d: \ backups \ outlook.pst. Här är den syntax som jag skulle använda:
C: \> hobocopy c: \ users \ geek \ mail \ d: \ backups \ Outlook.pst
HoboCopy (c) 2006 Wangdera Corporation. [email protected]
Starta en fullständig kopia från c: \ users \ geek \ mail till d: \ backups \
Kopierad katalog
Säkerhetskopieringen slutfördes.
Backup startade 2008-03-09 01:57:28, slutförd 2008-03-09 01:58:39.
1 filer (606.45 MB, 1 kataloger) kopieras, 7 filer hoppas över
Använda HoboCopy för att säkerhetskopiera en hel katalog
En mycket mer användbar uppgift skulle vara att säkerhetskopiera hela min användarmapp, förmodligen till en extern hårddisk för förvaring. För detta vill vi lägga till ett par kommandoradsargument.
/full | Kopiera alla filer |
/ skipdenied | Ignorera eventuella åtkomstförnekade meddelanden på grund av tillståndsfel. |
/ r | Kopiera rekursivt |
/ y | Fråga inte, kopiera bara allt |
Syntax:
hobocopy / full / skipdenied / y / r c: \ katalognamn \ d: \ backupdirectory \
Låt oss gå med samma exempel, jag vill säkerhetskopiera hela min användarkatalog till d: \ backups \, så jag skulle använda det här kommandot:
hobocopy / full / skipdenied / y / r c: \ users \ geek \ d: \ backups \
Detta kommando kommer troligen att ta väldigt lång tid att slutföra, så du kanske vill ta en tupplur eller något. I slutet borde du ha en nästan perfekt kopia av katalogen ... Om det finns några tillståndsfel kommer du att varna för filer som inte kopierade. Realistiskt borde inga filer i din användarkatalog ha detta problem.
Använda HoboCopy för att gradvis säkerhetskopiera en enhet
Hobocopy stöder också säkerhetskopiering av filer inkrementellt, så det kommer endast att kopiera filerna som har ändrats sedan den senaste säkerhetskopian. Det fungerar på samma sätt som verktyg som rsync, förutom att hobocopy lagrar det sista säkerhetskopieringsdatumet i en fil som du måste ange på kommandoraden.
/ Statefile = filnamn | Den här flaggan anger filen som innehåller den senaste säkerhetskopieringsinformationen. |
/inkrementell | Kopiera bara filer som har ändrats sedan den senaste fullständiga kopian. |
Syntax:
hobocopy / incremental / statefile = filnamn / y / r c: \ directoryname \ d: \ backupdirectory \
Exempel:
hobocopy / incremental /statefile=d:\lastbackup.dat / y / r c: \ users \ geek \ d: \ backups \
Första gången du kör det här kommandot måste du använda / full istället för / inkrementell, annars får du ett fel eftersom statfilen inte har skapats än. Därefter kan du köra inkrementell säkerhetskopiering med / inkrementell omkopplare.
Detta skulle vara ett utmärkt sätt att automatiskt säkerhetskopiera en uppsättning mappar som en del av en schemalagd uppgift.
Hämta HoboCopy från sourceforge.net