Si vous avez déjà essayé de copier un fichier verrouillé par une autre application, vous avez probablement vu un message d’erreur similaire à «Le processus ne peut pas accéder au fichier car un autre processus a verrouillé une partie du fichier». Alors, comment le copiez-vous de toute façon?
Depuis XP, Windows prend en charge une technologie appelée Volume Shadow Copy, qui est utilisée pour alimenter la fonctionnalité des versions précédentes de Vista ainsi que la restauration du système et les sauvegardes. Il prend un instantané temporaire du fichier ou du lecteur, puis autorise une application à lire à partir de l’instantané même lorsque d’autres applications accèdent ou modifient le fichier.
Ce que nous pouvons faire, c’est utiliser un utilitaire de ligne de commande appelé HoboCopy qui utilise ce service pour copier le fichier.
Comprendre les prérequis
HoboCopy et la plupart des autres utilitaires de sauvegarde utilisent deux services dans Windows, et vous devrez vérifier que ces services ne sont pas désactivés:
- Cliché instantané de volume
- Fournisseur de cliché instantané de logiciels Microsoft
Ils peuvent être laissés au démarrage manuel, ils n’ont donc pas besoin d’être exécutés tout le temps. Hobocopy démarrera automatiquement les deux services en cas de besoin, et le service de cliché instantané de volume sera désactivé une fois terminé.
Utilisation de HoboCopy pour sauvegarder / copier un seul fichier
La syntaxe est un peu étrange, car HoboCopy est vraiment destiné à être utilisé pour sauvegarder un ensemble complet de dossiers. Nous pouvons l’utiliser pour sauvegarder un seul fichier en passant l’argument filename à la fin.
Syntaxe:
hobocopy c: nom_répertoire d: répertoire_sauvegarde
Par exemple, je souhaite sauvegarder mon fichier c: users geek mail outlook.pst dans d: backups outlook.pst. Voici la syntaxe que j’utiliserais:
C: > hobocopy c: users geek mail d: backups Outlook.pst
HoboCopy (c) 2006 Wangdera Corporation. hobocopy@wangdera.com
Démarrage d’une copie complète de c: users geek mail vers d: backups
Répertoire copié
Sauvegarde terminée avec succès.
La sauvegarde a commencé le 09/03/2008 01:57:28, terminée le 09/03/2008 01:58:39.
1 fichiers (606,45 Mo, 1 répertoires) copiés, 7 fichiers ignorés
Utilisation de HoboCopy pour sauvegarder un répertoire entier
Une tâche beaucoup plus utile serait de sauvegarder tout mon dossier User, probablement sur un disque dur externe pour le garder en lieu sûr. Pour cela, nous voudrons ajouter quelques arguments de ligne de commande.
/plein | Copier tous les fichiers |
/ skipdenied | Ignorez tous les messages d’accès refusé en raison d’erreurs d’autorisation. |
/ r | Copier récursivement |
/ y | Ne demandez pas, copiez simplement tout |
Syntaxe:
hobocopy / full / skipdenied / y / rc: nom_répertoire d: répertoire de sauvegarde
Allons-y avec le même exemple, je veux sauvegarder tout mon répertoire utilisateur dans d: backups , donc j’utiliserais cette commande:
hobocopy / full / skipdenied / y / rc: users geek d: backups
Cette commande prendra probablement beaucoup de temps à se terminer, vous voudrez peut-être faire une sieste ou quelque chose comme ça. À la fin, vous devriez avoir une copie presque parfaite du répertoire… s’il y a des erreurs d’autorisation, vous serez alerté des fichiers qui n’ont pas été copiés. En réalité, tous les fichiers de votre répertoire utilisateur ne devraient pas avoir ce problème.
Utilisation de HoboCopy pour sauvegarder incrémentalement un lecteur
Hobocopy prend également en charge la sauvegarde incrémentielle des fichiers, de sorte qu’il ne copiera que les fichiers qui ont changé depuis la dernière sauvegarde. Cela fonctionne de la même manière que les utilitaires tels que rsync, sauf que hobocopy stocke la dernière date de sauvegarde dans un fichier que vous devez spécifier sur la ligne de commande.
/ statefile = nom de fichier | Cet indicateur spécifie le fichier contenant les dernières informations de sauvegarde. |
/incrémentale | Copiez uniquement les fichiers modifiés depuis la dernière copie complète. |
Syntaxe:
hobocopy / incremental / statefile = nom de fichier / y / rc: nom de répertoire d: répertoire de sauvegarde
Exemple:
hobocopy / incrémental /statefile=d:lastbackup.dat / y / rc: users geek d: backups
La première fois que vous exécutez cette commande, vous devrez utiliser / full au lieu de / incrémental, sinon vous obtiendrez une erreur car le fichier d’état n’a pas encore été créé. Après cela, vous pouvez exécuter la sauvegarde incrémentielle avec le commutateur / incrémental.
Ce serait un excellent moyen de sauvegarder automatiquement un ensemble de dossiers dans le cadre d’une tâche planifiée.