18 votes

Supprimer toutes les sauvegardes d'un fichier/dossier spécifique avec tmutil

J'essaie de supprimer toutes les sauvegardes d'éléments spécifiques par le biais de la ligne de commande. Je peux le faire en utilisant l'interface graphique en suivant les étapes suivantes :

  1. Entrez dans la machine à remonter le temps
  2. Naviguez vers le fichier à supprimer
  3. Cliquez à droite (ou cliquez sur l'icône de l'engrenage dans le finder) et choisissez "Supprimer toutes les sauvegardes de ..."

Comment puis-je reproduire ceci sur la ligne de commande en utilisant tmutil ? En particulier, lorsque j'utilise Backup Loupe pour détecter de gros fichiers, il serait plus facile d'utiliser le Terminal (puisque je n'ai pas à entrer dans TimeMachine à chaque fois que je veux supprimer un fichier particulier et que je peux y naviguer en utilisant le Finder, puis le déposer dans le Terminal pour une commande de suppression).

J'espérais pouvoir utiliser quelque chose comme ça :

sudo tmutil delete /path/to/file

mais il me donne l'erreur :

"Cible de suppression non valide (erreur 22)"``.

Cela fonctionne bien :

sudo tmutil delete /Volume/Backups.backupdb/<machinename>

et ceci aussi :

sudo tmutil delete /Volume/Backups.backupdb/<machinename>/<specificbackup>

Selon man tmutil le site delete commande devrait également être en mesure de supprimer des éléments spécifiques. Cependant, je n'ai pas eu de chance jusqu'à présent. Bien qu'il existe de nombreuses réponses sur ce site (et ailleurs) pour supprimer des éléments spécifiques, je n'ai pas réussi à trouver de solution. sauvegardes avec tmutil et pour supprimer une sauvegarde spécifique articles via l'interface graphique (en utilisant la méthode décrite ci-dessus), je n'ai pas pu trouver de moyen autre que l'interface graphique pour supprimer des sauvegardes spécifiques. articles .

1 votes

@stephenwade Je vois que vous avez ajouté une prime à cette question, merci :) Est-ce que je suis censé accepter une réponse ou est-ce que vous êtes censé donner le bounty à quelqu'un ? Je ne sais pas comment fonctionnent les primes sur les questions des autres.

2 votes

Vous pouvez accepter (ou non) la réponse de votre choix, sans incidence sur la prime.

20voto

slm Points 4018

J'ai trouvé ce SU Q&A intitulé : Comment puis-je supprimer des fichiers Time Machine en utilisant la ligne de commande ? qui présente une méthode pour supprimer des fichiers spécifiques à partir de l'interface CLI. Cette réponse a mis en évidence une méthode qui ressemble à ce que vous voulez :

Mon disque de sauvegarde est plein. J'ai un fichier très volumineux (plusieurs gigaoctets) qui a été qui a été sauvegardé pendant des mois. Il en existe une copie physique, mais de nombreux instantanés avec des liens directs vers cette copie. Pour me débarrasser réellement de ce fichier, je dois supprimer le lien dur de chaque sauvegarde.

Dans cette réponse, il a été montré que l'on pouvait utiliser cette méthode pour supprimer un fichier :

$ cd /Volumes/WD\ 500G\ USB/Backups.backupdb/csm-laptop
$ ls -li */Macintosh\ HD/Users/csm/vm.img
...
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-005636/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-015812/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-030036/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-041307/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 Latest/Macintosh HD/Users/csm/vm.img

La méthode pour supprimer le fichier utilise un outil CLI d'aide inclus avec Time Machine appelé bypass :

$ sudo bypass rm -f */Macintosh\ HD/Users/csm/vm.img

emplacement du pontage

Depuis bypass est considéré comme une aide script à Time Machine, son emplacement n'est pas typiquement sur votre $PATH . Vous devrez donc spécifier le chemin complet de l'exécutable. De plus, Apple l'a déplacé pour les différentes versions de MacOS.

$ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass \
    rm -rfv /Volumes/[disk]/Backups.backupdb/[path]

Dans la version 10.8 Mountain Lion, le contournement a été déplacé dans les "aides" :

$ /System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass

Dans 10.10 Yosemite, le pontage a été déplacé ici :

$ /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass

Références

0 votes

Cela ressemble en effet à ce que je recherchais. Pour clarifier : par "supprimer le lien dur de chaque sauvegarde", vous voulez dire "de chaque instantané", n'est-ce pas ? Et en utilisant le joker dans la commande sudo bypass rm -f */Macintosh\ HD\Users\csm\vm.img veille à ce que tout cela soit accompli en une seule fois ?

1 votes

@Jan The rm court après cd /Volumes/DISK/Backups.backupdb/MACHINE afin que le caractère générique s'étende à tous les dossiers datés contenant l'image. J'ai corrigé une erreur de \\ - / Mais il y a une faute de frappe dans la réponse.

2 votes

Yaaaaaasssss ! Cela fait des années que je cherche cela, je vais tester sur quelques sauvegardes moins critiques car ce qui m'intéresse le plus c'est de maintenir l'intégrité de la destination de la sauvegarde pour les sauvegardes en cours. apple.stackexchange.com/questions/180214/

6voto

nohillside Points 82672

Selon man tmutil le tmutil delete peut être utilisée pour supprimer un ou plusieurs instantanés , répertoires de machines ou magasins de sauvegarde . Ces termes sont définis au début de la même page de manuel :

  • instantané : Un répertoire à l'intérieur d'un répertoire de machine qui représente une seule sauvegarde initiale ou incrémentielle d'un ordinateur (par ex. /Volumes/Chronoton/Backups.backupdb/thermopylae/2011-07-03-123456 )
  • répertoire des machines : Un répertoire à l'intérieur d'un magasin de sauvegarde qui contient toutes les sauvegardes pour un ordinateur particulier (par ex. /Volumes/Chronoton/Backups.backupdb/thermopylae )
  • magasin de sauvegarde : Le répertoire de premier niveau "Backups.backupdb" à la racine d'un disque de sauvegarde (par ex. /Volumes/Chronoton/Backups.backupdb )

Il semble donc qu'il ne soit malheureusement pas possible d'utiliser tmutil pour supprimer des éléments spécifiques dans un instantané.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X