Comment supprimer manuellement d'anciennes sauvegardes pour libérer de l'espace pour Time Machine?

224

J'utilise une Time Capsule pour la sauvegarde et je souhaite maintenant que le lecteur sauvegarde les données d'un Mac supplémentaire. Mais le lecteur est rempli d'anciennes sauvegardes de Mac 1. Il n'y a tout simplement pas assez d'espace disponible pour la sauvegarde pour Mac 2.

Je reçois ce message d'erreur lors de l'exécution de la sauvegarde Time Machine:

Time Machine n'a pas pu terminer la sauvegarde. Cette sauvegarde est trop volumineuse pour le disque de sauvegarde. La sauvegarde nécessite 28,68 Go, mais seulement 626,2 Mo sont disponibles.

Time Machine a besoin d'espace de travail sur le disque de sauvegarde, en plus de l'espace requis pour stocker les sauvegardes. Ouvrez les préférences de Time Machine pour sélectionner un disque de sauvegarde plus grand ou réduisez la sauvegarde en excluant les fichiers.

Je sais que Time Machine lui-même est capable de supprimer les anciennes sauvegardes lorsqu'il lui faut plus d'espace. Mais dans ce cas, aucune sauvegarde Mac 1 ne sera supprimée pour faire de la place pour Mac 2.

La question est, comment puis-je le faire manuellement?

Jesper Rønn-Jensen
la source
3
Étant donné que les disques externes sont bon marché, je serais tenté d’en acheter un et de l’utiliser pour votre machine supplémentaire. Je préfère les éléments: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/…
james.garriss Le
2
@ james.garriss good point :) Cependant, je dois encore échanger des disques dans ma capsule
témoin
1
Tout le monde sait s’il existe un moyen (sans écrire de script) de demander à TM de ne conserver qu’une sauvegarde par mois pour les sauvegardes de plus d’un an?
Gamov
2
Ne pouvez-vous pas créer 2 partitions différentes sur votre disque TM et choisir une partition différente pour chaque Mac?
Pierre Watelet

Réponses:

235

Soyez prudent avec sudo et assurez-vous de choisir les fichiers Mac corrects car il n'y a pas d'annulation ou de confirmation de la commande suivante:

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/old_mac_name

La commande sudo a besoin de votre mot de passe (il ne résultera pas en un écho à l'écran. Tapez-le et mettez-le en pause pour vous assurer de dater les bons fichiers avant d'appuyer sur Entrée). Si vous voulez être plus en sécurité, vous pouvez sélectionner un instantané à supprimer en premier pour vous assurer que la commande fonctionne comme prévu. C’est une bonne chose, car il peut prendre des heures pour nettoyer des jeux de sauvegarde plus volumineux et vous voulez laisser le Mac confiant que la suppression de la bonne banque d’informations est supprimée.

Vous pouvez utiliser l' tmutiloutil pour supprimer les sauvegardes une à une.

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/mac_name/YYYY-MM-DD-hhmmss

Depuis tmutilque Lion a été introduit, cela ne fonctionnera pas sur les versions antérieures du système d'exploitation.

Si vous souhaitez obtenir le répertoire actuel des sauvegardes (plusieurs destinations peuvent être définies et une seule sera "actuelle")

sudo tmutil machinedirectory
bmike
la source
4
Travaillé comme un charme. J'avais d'anciennes sauvegardes énormes et déconnectées de la machine à l'heure d'origine en raison de modifications du disque dur. Je ne pouvais pas les supprimer avec sudo rm (ce qui est farfelu), mais cela a fait l'affaire. Merci!
David Pisoni
2
@drfrogsplat oui, mais lorsque vous travaillez avec d'anciennes sauvegardes, il est courant que le Mac d'origine soit mort. Dans mon cas, j'essaie de libérer de l'espace sur mon disque de sauvegarde afin de pouvoir l'utiliser pour sauvegarder un nouveau Mac.
Abhi Beckert
5
@square_eyes Ce n'est pas ainsi que fonctionne la suppression de fichiers liés durement. Disons qu'il y a 100 intervalles avec le même fichier. Le fichier existe déjà une fois sur le disque, mais le nombre de liens est 100. Lorsque vous en supprimez un, cette entrée de répertoire disparaît là où vous l'avez supprimée et le nombre de liens est maintenant 99. Le fichier n'est supprimé que lorsque le nombre de liens passe à 0. Tous les autres suppriment simplement une entrée de répertoire.
bmike
5
Il n'est pas nécessaire de supprimer les sauvegardes une à une. Vous pouvez taper sudo tmutil delete puis faire glisser toutes les sauvegardes que vous souhaitez supprimer dans la fenêtre du terminal. @drfrogsplat la page de manuel mentionne que cette commande peut supprimer les sauvegardes créées par une machine différente.
Pointum
2
@pointum est correct. De plus, si vous souhaitez rester dans le terminal, vous pouvez utiliser des caractères génériques tels que: 'sudo tmutil delete 2015- *' Il peut s'agir d'un processus lent, en particulier avec les disques tournants. La suppression de plusieurs fichiers est donc essentielle pour la santé et l'efficacité.
Matt Dressel
81

Le moyen le plus simple est de:

  1. Entrez le temps machine (sur le Mac dont vous souhaitez supprimer la sauvegarde)
  2. Aller au moment que vous voulez supprimer
  3. Sélectionnez l'icône qui ressemble à un rouage dans le viseur et choisissez "Supprimer la sauvegarde" (dans Mavericks: cliquez avec le bouton droit de la souris dans la fenêtre du viseur et choisissez "Supprimer la sauvegarde").

Cela garantit que le catalogue de sauvegarde reste précis et que l'intégrité de vos données reste intacte.

Dudeas
la source
3
@drfrogsplat a parfaitement raison de dire que l’utilisation de l’interface graphique fournie par Apple est la meilleure façon (fonctionne sur toutes les versions) de supprimer une sauvegarde. votre mot de passe pour vous assurer que la suppression est permanente.
bmike
1
Je ne vois pas d'élément de sauvegarde
suppr sur les non
@brainray J'ai posté réponse pour les non- conformistes
Inder Kumar Rathore
1
Sauf qu'il effectue une suppression partielle (pour une raison quelconque), il en oublie la sauvegarde partielle. Vous ne pouvez donc pas uniquement la supprimer avectmutil delete
Jeroen Wiert Pluimers Le
1
Cela ne fonctionne pas si vous avez le problème "En attente ...". apple.stackexchange.com/questions/207787/… L' attente ne fonctionne pas toujours.
Almo
39

Pour Mavericks / Yosemite

  1. Entrez le temps machine
  2. Sélectionnez la sauvegarde
  3. Faites un clic droit sur la sauvegarde (dans la fenêtre du Finder)
  4. Sélectionnez 'Supprimer la sauvegarde'

Il va demander le mot de passe et vous avez terminé

entrez la description de l'image ici

Inder Kumar Rathore
la source
Faites un clic droit sur la sauvegarde: où?
brainray
Vous verrez apparaître une fenêtre de recherche avec le bouton droit de la souris au milieu de la fenêtre et une liste d’options
Inder Kumar Rathore le
13
Il est à noter que Time Machine n'effectuera pas les suppressions et ne vous demandera pas votre mot de passe jusqu'à ce que vous quittiez Time Machine. Et la procédure à suivre pour quitter Time Machine après la sélection des fichiers et des dossiers à supprimer est également peu claire: vous devez cliquer canceldans le coin inférieur gauche. (Apparemment, ce que vous "annulez" est la restauration de fichiers; les suppressions ne sont apparemment pas considérées comme annulées si vous procédez ainsi.)
mhucka Le
3
Cela a également fonctionné pour moi à partir d'une autre machine. Mon ancien MBP a été frit, mon nouveau compte plusieurs noms de disque dur, différentes partitions, etc. Enfin, il a rempli mon disque de MT, et je ne veux pas supprimer toutes les sauvegardes de mon ancien ordinateur. Donc vous maintenez Option, cliquez sur time machine dans la barre de menu et "Parcourir les autres disques de sauvegarde". J'ai pu accéder à la première sauvegarde en branchant un lecteur du même nom. À partir de là, je pouvais passer à l'ancienne structure de disque et utiliser cette astuce pour supprimer des sauvegardes très anciennes.
Marc
Ou cliquez simplement sur le dossier du périphérique racine dans la barre latérale (pour que l'ancienne partition et la structure du lecteur apparaissent). Dans mon cas "Périphériques -> Macbook Pro"
Mark
18

Ce script trouvera automatiquement la sauvegarde TM la plus ancienne pour votre ordinateur, vous indiquera la sauvegarde la plus ancienne et la plus récente et vous invitera à supprimer la sauvegarde la plus ancienne. Vous devez entrer Yet entrer votre mot de passe administrateur pour le supprimer.

script bash:

COMPUTER_NAME=$(scutil --get ComputerName)
NBACKUPS=$(tmutil listbackups | grep "$COMPUTER_NAME" | wc -l)
OLDEST_BACKUP=$(tmutil listbackups | grep "$COMPUTER_NAME" | head -n1)
LATEST_BACKUP=$(tmutil latestbackup)
echo Latest backup: $LATEST_BACKUP

if [[ -n "$LATEST_BACKUP" && "$LATEST_BACKUP" != "$OLDEST_BACKUP" ]]; then
     echo -n "$NBACKUPS backups. Delete oldest: ${OLDEST_BACKUP##*/} [y/N]? "
     read answer
     case $answer in
         y*)
             echo Running: sudo tmutil delete "$OLDEST_BACKUP"
             sudo time tmutil delete "$OLDEST_BACKUP"
             ;;
         *)
             echo No change
             ;;
     esac
 else
     echo "No backup available for deletion"
 fi
utilisateur36971
la source
En résumé, ce script recherche automatiquement la sauvegarde la plus ancienne pour votre ordinateur, vous indique la sauvegarde la plus ancienne et la plus récente et vous invite à supprimer la sauvegarde la plus ancienne. Vous devez entrer Yet entrer votre mot de passe administrateur pour le supprimer.
Hengjie
3
Notez que cela ne réduira pas automatiquement la taille de vos fichiers de sauvegarde sparsebundle. Vous devrez y aller et courirsudo hdiutil compact /path/to/disk-image
Hengjie
14

Je me suis posé cette question et les réponses fournies ici ont certainement aidé. Cependant, il manque un aspect qui pourrait être un "détail" d'implémentation nouveau qui n'existait pas au moment de répondre à cette question.

tmutil deletesupprime effectivement les sauvegardes, mais ne récupère pas réellement l'espace qu'elles ont pris, du moins sans aucune garantie. J'ai passé environ 2 jours entiers à supprimer les sauvegardes d'il y a plus de 2 ans, ce qui, selon le message d'achèvement final, s'élevait à environ. 400 Go de données. J'ai vu l'indication d'espace de sauvegarde libre augmenter une fois de manière correspondante , mais après la sauvegarde suivante, je ne disposais plus que de 7% d'espace disponible (858 Go utilisés au lieu de 450 Go environ). Cela m'a vraiment empêché.

La réponse à ce mystère est donnée ici: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ En bref, vous devez compacter le paquet clairsemé qui contient réellement la sauvegarde. s'il est hébergé sur un disque en réseau ou sur un disque non formaté en HFS +. Je n'ai pas de sauvegardes de MT qui ne sont pas hébergées dans un bundle clairsemé, donc je ne peux pas vérifier si l'utilisation tmutil deleteest sans récupération sur celles-ci. Cela pourrait bien être le cas et le fait que ce ne soit pas le cas sur une Time Capsule peut simplement être une particularité du protocole de paquet fragmenté. La commande à exécuter après sudo tmutil deleteest sudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle. Dans mon cas qui a rapporté

Starting to compact…
Reclaiming free space…
...................................................................................................................................
Finishing compaction…
Reclaimed 403.2 GB out of 583.5 GB possible.

La bonne nouvelle est que cette commande n'a pris qu'une fraction du temps nécessaire à tmutil, passant beaucoup moins de temps à rechercher sur le disque et à utiliser moins de RAM (en fait, elle s'est achevée dans le temps qu'il m'a fallu pour écrire cette réponse).

RJVB
la source
Je supprime des sauvegardes maintenant sans sparsebundle, et l'espace semble être libéré sans faire une étape supplémentaire.
Almo
12

Si Time Machine ne sauvegarde que les différences, supprimer ce que vous voulez n'est pas ce que vous voulez. De plus, étant donné que chaque suppression peut prendre un certain temps, il serait bien d’avoir un script qui supprimera la suivante une fois celle en cours terminée.

Après l'exemple de script de user36971 ci-dessus, j'en ai écrit un qui supprimera toutes les sauvegardes de celle spécifiée et antérieure:

#!/bin/bash

if [ -z "$1" ]
then
    echo "must specify backup id: YYYY-MM-DD-HHMMSS"
    exit 1
fi

FOUND_BACKUP=0;
BACKUPS=""
while read line; do
    if [[ "${line}" == *$1* ]]
    then
        FOUND_BACKUP=1;
    fi

    if [ "${FOUND_BACKUP}" == "1" ]
    then
        BACKUPS+="${line}"$'\n'
    fi
done < <(/usr/bin/tmutil listbackups | tail -r)

if [ "${FOUND_BACKUP}" == "0" ]
then
    exit 1
fi

printf '%s' "$BACKUPS"

echo -n "Delete above backups? [y/N]? "
read answer
case $answer in
    y*)
        while read line; do
            if [ -n "${line}" ]
            then
                echo Running: /usr/bin/sudo /usr/bin/tmutil delete "${line}"
                /usr/bin/sudo time /usr/bin/tmutil delete "${line}"
            fi
        done < <(echo "${BACKUPS}")
        ;;
    *)
        echo No change
        ;;
esac

Ne constate que je ne contient pas le nom de l' ordinateur contrôle dans mon script, donc si vous partagez un lecteur de sauvegarde avec plusieurs ordinateurs, vous devrez peut - être ajouter un contrôle supplémentaire.

Toland H
la source
1
TM sauvegarde uniquement le delta à chaque exécution, mais conserve une copie complète par exécution sur le disque de sauvegarde. Pour les fichiers non modifiés entre les exécutions (c'est-à-dire la plupart d'entre eux), seule une nouvelle entrée de répertoire est ajoutée. Cela peut signifier que si vous n'avez que de petits deltas entre les exécutions, vous devrez peut-être supprimer de nombreuses sauvegardes avant de constater une augmentation significative de l'espace libre.
nohillside
2
L'ordre dans lequel vous supprimez les sauvegardes ne fait aucune différence. En effet, si vous utilisez un caractère générique avec tmutil deletepour supprimer toutes les sauvegardes d'une année donnée, il les supprimera de la plus ancienne à la plus récente. Et d'ailleurs, utiliser un joker est beaucoup plus facile que d'utiliser un script pour la plupart des cas :)
mluisbrown
Je recommanderais d’ajouter printf '% s' "$ BACKUPS" avant la ligne de suppression des sauvegardes pour améliorer les retours
petr
2
Je peux supprimer plusieurs sauvegardes sans utiliser while, telles que: sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
yuxuan
-3

ouvrez simplement un terminal,

#sudo tmutil disablelocal

cela devrait libérer de l'espace sans supprimer les sauvegardes TM

Brian K
la source
3
Cela désactivera les instantanés Time Machine locaux à partir d'un lecteur interne - pas ce que l'OP demande.
Écossais
2
Oui, cela ne libère de l'espace que sur le volume de démarrage du Mac, pas sur la destination. Utile, mais doit être sur une question différente OMI.
bmike
-3

Voici, étape par étape, ce que j'ai fait pour supprimer mon ancienne sauvegarde.

  1. Ouvrez Time Machine Disk
  2. Recherchez et ouvrez le dossier Backups.backupdb
  3. Allez voir par date et choisissez le plus ancien en haut
  4. Sélectionnez la sauvegarde que vous souhaitez supprimer
  5. Ouvrez Teminal et tapez sudo rm -rvf
  6. Faites glisser les anciens dossiers que vous souhaitez supprimer dans la fenêtre du terminal.
  7. Entrez votre mot de passe utilisateur à l'invite

Allez prendre un café ou regardez un film. Lorsque le processus est terminé, vous devrez peut-être le répéter pour certains dossiers qui ne veulent pas être supprimés.

Lorsque tous vos anciens dossiers ont disparu, Time Machine doit mettre à jour sa base de données. Voici un moyen de forcer Time Machine à se mettre à jour.

  1. Entrez Time Machine et accédez à la sauvegarde la plus ancienne toujours répertoriée.
  2. Sélectionnez-le et cliquez sur le petit engrenage, puis choisissez Supprimer la sauvegarde.
  3. Entrez votre mot de passe et attendez quelques minutes
  4. Quittez l'interface de Time Machine et revenez à nouveau. Vous devez maintenant avoir votre machine Time listant la sauvegarde correcte.
Maher
la source
14
Ne faites pas cela. Time Machine utilise un système de liaison complexe. Vous pouvez casser vos sauvegardes. Voir pondini.org/TM/Home.html
Harv
2
Après avoir lu http://pondini.org/TM/Works.html, je ne vois pas pourquoi la suppression d'anciennes sauvegardes à l'aide de Windows sudo rm -rvfarrêterait Time Machine. Cette rmcommande est l'alternative en ligne de commande à la suggestion de supprimer du Finder au bas de la page http://pondini.org/TM/12.html
Pro Backup