¿Cómo puedo eliminar manualmente las copias de seguridad antiguas para liberar espacio para Time Machine?

224

Utilizo una Time Capsule para hacer una copia de seguridad y ahora quiero que la unidad haga una copia de seguridad de los datos de una Mac adicional. Pero la unidad está llena de copias de seguridad antiguas de Mac 1. Simplemente no hay suficiente espacio disponible para la copia de seguridad de Mac 2.

Recibo este mensaje de error cuando ejecuto la copia de seguridad de Time Machine:

Time Machine no pudo completar la copia de seguridad. Esta copia de seguridad es demasiado grande para el disco de copia de seguridad. La copia de seguridad requiere 28.68 GB pero solo 626.2 MB están disponibles.

Time Machine necesita espacio de trabajo en el disco de respaldo, además del espacio requerido para almacenar los respaldos. Abra las preferencias de Time Machine para seleccionar un disco de copia de seguridad más grande o reduzca la copia de seguridad excluyendo archivos.

Sé que Time Machine es capaz de eliminar copias de seguridad antiguas cuando necesita más espacio. Pero en este caso no elimina ninguna copia de seguridad de Mac 1 para dejar espacio para Mac 2.

La pregunta es, ¿cómo lo hago manualmente?

Jesper Rønn-Jensen
fuente
3
Dado lo barato que son las unidades externas, estaría tentado a comprar una y usarla para su máquina adicional. Prefiero los elementos: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/…
james.garriss
2
@ james.garriss buen punto :) Sin embargo, todavía tengo que cambiar las unidades en mi cápsula del tiempo :)
Jesper Rønn-Jensen
1
¿Alguien sabe si hay una manera (sin escribir un script) de pedirle a TM que solo conserve 1 copia de seguridad al mes para copias de seguridad anteriores a 1 año?
gamov
2
¿No puedes hacer 2 particiones diferentes en tu disco TM y elegir una partición diferente para cada mac?
Pierre Watelet

Respuestas:

235

Tenga cuidado con sudo y asegúrese de elegir los archivos correctos de Mac ya que no hay deshacer ni confirmar el siguiente comando:

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

El comando sudo necesita su contraseña (y no se hará eco en la pantalla, así que simplemente escríbala y haga una pausa para asegurarse de que está fechando los archivos correctos antes de presionar enter). Si desea estar más seguro, puede elegir una instantánea para eliminar primero para asegurarse de que el comando funciona según lo previsto. Esto es bueno, ya que podría llevar horas limpiar algunos conjuntos de copia de seguridad más grandes y desea dejar a Mac seguro de que está eliminando el almacén de información correcto.

Puede usar la tmutilherramienta para eliminar copias de seguridad una por una.

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

Desde que tmutilse introdujo con Lion, esto no funcionará en versiones anteriores del sistema operativo.

Si desea obtener el directorio actual de copias de seguridad (puede haber múltiples destinos definidos y solo uno será "actual")

sudo tmutil machinedirectory
bmike
fuente
44
Trabajado como un encanto. Tenía copias de seguridad antiguas que eran enormes y estaban desconectadas de la máquina del tiempo original debido a los cambios en el disco duro. No pude eliminarlos con sudo rm (que es una locura), pero esto funcionó. ¡Gracias!
David Pisoni
2
@drfrogsplat sí, pero cuando se trabaja con copias de seguridad antiguas es común que la Mac original esté muerta. En mi caso, estoy tratando de liberar espacio en mi unidad de copia de seguridad para poder usarlo para hacer una copia de seguridad de una nueva Mac.
Abhi Beckert
55
@square_eyes No es así como funciona la eliminación de archivos vinculados. Digamos que hay 100 intervalos con el mismo archivo. El archivo existe en el disco una vez, pero el recuento de enlaces es 100. Cuando elimina uno, esa entrada del directorio desaparece donde lo eliminó y el recuento de enlaces ahora es 99. Solo cuando el recuento de enlaces va a 0, el archivo se elimina. Todas las demás eliminaciones solo eliminan una entrada de directorio.
bmike
55
No es necesario eliminar las copias de seguridad una por una. Puede escribir sudo tmutil delete y luego arrastrar todas las copias de seguridad que desea eliminar a la ventana Terminal. @drfrogsplat la página man menciona que este comando puede eliminar copias de seguridad creadas por una máquina diferente.
punto
2
@pointum es correcto. Además, si desea permanecer en la terminal, puede usar comodines de esta manera: 'sudo tmutil delete 2015- *' Puede ser un proceso lento, especialmente con discos giratorios, por lo que eliminar varios archivos es fundamental para la cordura y la eficiencia.
Matt Dressel
81

La forma más fácil es:

  1. Ingrese la máquina del tiempo (en la Mac cuya copia de seguridad desea eliminar)
  2. Ve al punto en el tiempo que deseas eliminar
  3. Seleccione el icono que parece un engranaje en el buscador y elija 'Eliminar copia de seguridad' (en Mavericks: haga clic derecho en la ventana del buscador y elija 'Eliminar copia de seguridad')

Esto garantiza que el catálogo de copias de seguridad siga siendo preciso y que la integridad de sus datos permanezca intacta.

Dudeas
fuente
3
@drfrogsplat es muy correcto que usar la GUI que Apple proporciona es la mejor manera (funciona en todas las versiones) para eliminar una copia de seguridad y es menos propenso a errores, ya que hay múltiples comentarios visuales (si observa con cuidado) y una verificación antes de ingresar su contraseña para asegurarse de saber que la eliminación es permanente.
bmike
1
No veo un elemento de copia de seguridad de eliminación en los rebeldes en el menú del engranaje
brainray
@brainray Publiqué la respuesta para los rebeldes
Inder Kumar Rathore
1
Excepto cuando hace una eliminación parcial (por cualquier razón) olvida que la copia de seguridad parcial está allí, por lo que no puede eliminarla solo contmutil delete
Jeroen Wiert Pluimers
1
Esto no funciona si tiene el problema "Esperando ...". apple.stackexchange.com/questions/207787/… La espera no siempre funciona.
Almo
39

Para Mavericks / Yosemite

  1. Entrar en la máquina del tiempo
  2. Seleccione la copia de respaldo
  3. Haga clic derecho en la copia de seguridad (en la ventana del buscador)
  4. Seleccione 'Eliminar copia de seguridad'

Le pedirá la contraseña y ya está

ingrese la descripción de la imagen aquí

Inder Kumar Rathore
fuente
Haga clic derecho en la copia de seguridad: ¿dónde?
brainray
Se le mostrará una ventana del buscador haciendo clic derecho en el centro de la ventana y se le mostrará una lista de opciones
Inder Kumar Rathore
13
Vale la pena señalar que Time Machine no realizará las eliminaciones y no pedirá su contraseña hasta que salga de Time Machine. Y el procedimiento para salir de Time Machine después de seleccionar archivos y carpetas para su eliminación tampoco es obvio: debe hacer clic cancelen la esquina inferior izquierda. (Aparentemente, lo que está "cancelando" es la restauración de archivos; las eliminaciones aparentemente no se consideran canceladas cuando hace esto.)
mhucka
3
Esto también funcionó para mí desde otra máquina. Mi viejo MBP se frió, mi nuevo tiene diferentes nombres de disco duro y particiones, etc. Finalmente se llenó mi disco TM, y no quiero eliminar todas las copias de seguridad de mi máquina anterior. Entonces mantenga presionada la opción, haga clic en la máquina del tiempo en la barra de menú y "Examinar otros discos de respaldo". Pude llegar a la primera copia de seguridad anterior conectando una unidad con el mismo nombre. A partir de ahí, podría pasar a la antigua estructura de la unidad y usar este consejo para eliminar algunas copias de seguridad realmente antiguas.
Mark
O simplemente haga clic en la carpeta del dispositivo raíz en la barra lateral (para que aparezca la antigua partición y la estructura de la unidad). En mi caso "Dispositivos -> Macbook Pro"
Marque el
18

Este script buscará automáticamente la copia de seguridad TM más antigua para su computadora, le indicará cuál es la copia de seguridad más antigua y más reciente y le proporcionará un mensaje para eliminar la copia de seguridad más antigua. Debe ingresar Ye ingresar su contraseña de administrador para eliminarla.

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
usuario36971
fuente
En resumen, este script buscará automáticamente la copia de seguridad de TM más antigua para su computadora, le indicará cuál es la copia de seguridad más antigua y más reciente y le proporcionará un mensaje para eliminar la copia de seguridad más antigua. Debe ingresar Ye ingresar su contraseña de administrador para eliminarla.
Hengjie
3
Tenga en cuenta que esto no reducirá automáticamente el tamaño de sus archivos de copia de seguridad dispersos. Tendrás que entrar y corrersudo hdiutil compact /path/to/disk-image
Hengjie
14

Me he estado haciendo esta misma pregunta, y las respuestas aquí ciertamente ayudaron. Sin embargo, falta un aspecto que puede ser un nuevo "detalle" de implementación que no existía cuando se respondió esta pregunta.

tmutil deletede hecho, elimina las copias de seguridad, pero en realidad no reclama el espacio que ocuparon, al menos de ninguna manera garantizada. Pasé unos 2 días completos eliminando copias de seguridad de hace> 2 años, que según el mensaje final de finalización ascendieron a aprox. 400Gb de datos. Vi que la indicación de espacio de copia de seguridad libre aumentaba correspondientemente una vez , pero después de la siguiente copia de seguridad volví a bajar solo al 7% de espacio disponible (858 Gb utilizados en lugar de alrededor de 450 Gb). Eso realmente me había bloqueado.

La respuesta a ese misterio se da aquí: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ En resumen, debe compactar el paquete disperso que realmente contiene la copia de seguridad si está alojado en un disco en red o en un disco que no está formateado en HFS +. No tengo copias de seguridad de TM que no estén alojadas en un paquete escaso, por lo que no puedo verificar si el uso tmutil deleteno es gratuito en esos. Bien podría hacerlo y el hecho de que no lo haga en una Time Capsule puede ser simplemente una peculiaridad del escaso protocolo de paquetes. El comando para ejecutar después sudo tmutil deletees sudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle. En mi caso que informó

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

La buena noticia es que este comando tomó solo una fracción del tiempo que tmutil tomó, y pasó mucho menos tiempo buscando en el disco y usando menos RAM (de hecho, se completó en el tiempo que me llevó escribir esta respuesta).

RJVB
fuente
Estoy eliminando copias de seguridad ahora sin un paquete disperso, y el espacio parece estar libre sin hacer un paso adicional.
Almo
12

Si Time Machine realmente solo respalda las diferencias, eliminar en orden inverso no es lo que desea. Además, dado que cada eliminación puede llevar algo de tiempo, sería bueno tener un script que elimine el siguiente cuando se complete el actual.

Siguiendo el script de muestra de user36971 anterior, he escrito uno que eliminará todas las copias de seguridad del especificado y anterior:

#!/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

No tenga en cuenta que no incluyó la verificación del nombre de la computadora en mi escritura, por lo que si va a compartir una unidad de copia de seguridad con varios equipos, puede ser necesario añadir una comprobación adicional.

Toland H
fuente
1
TM solo realiza copias de seguridad del delta con cada ejecución, pero mantiene una copia completa por ejecución en el disco de copia de seguridad. Para los archivos que no cambian entre ejecuciones (esto significa la mayoría de ellos), solo se agrega una nueva entrada de directorio. Esto podría significar que si solo tiene pequeños deltas entre ejecuciones, es posible que deba eliminar muchas copias de seguridad antes de notar un aumento significativo en el espacio libre.
nohillside
2
El orden en que elimine las copias de seguridad no hace ninguna diferencia. De hecho, si usa un comodín con tmutil deletepara eliminar todas las copias de seguridad para un año determinado, las eliminará de la más antigua a la más reciente. Y por cierto, usar un comodín es mucho más fácil que usar un script para la mayoría de los casos :)
mluisbrown
Recomendaría agregar printf '% s' "$ BACKUPS" antes de la línea de eliminación de copias de seguridad para dar una mejor respuesta
petr
2
Puedo eliminar varias copias de seguridad sin usar while, como: sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
yuxuan
-3

solo abre una terminal,

#sudo tmutil disablelocal

Esto debería liberar espacio sin eliminar copias de seguridad de TM

Brian K
fuente
3
Esto deshabilitará las instantáneas locales de Time Machine desde una unidad interna, no es lo que pregunta el OP.
Scot
2
Sí, esto solo libera espacio en el volumen de arranque de Mac, no en el destino. Útil, pero necesita estar en una pregunta diferente de la OMI.
bmike
-3

Aquí está lo que hice paso a paso para eliminar mi copia de seguridad anterior

  1. Disco de máquina de tiempo abierto
  2. Localice y abra la carpeta Backups.backupdb
  3. Ve a ver por fecha y elige el más antiguo en la parte superior
  4. Seleccione la copia de seguridad que desea eliminar.
  5. Abra Teminal y escriba sudo rm -rvf
  6. Arrastre y suelte las carpetas antiguas que desea eliminar en la Ventana de Terminal
  7. Ingrese su contraseña de usuario en la solicitud

Ve a tomar un café o mira una película, cuando el proceso haya terminado, es posible que tengas que repetirlo nuevamente para algunas carpetas que no deseas eliminar.

Cuando todas sus carpetas antiguas se hayan ido, Time Machine necesita actualizar su base de datos. Aquí hay una manera de obligar a Time Machine a actualizar.

  1. Ingrese a Time Machine y vaya a la copia de seguridad más antigua que todavía aparece
  2. Selecciónelo y haga clic en el pequeño engranaje y luego elija Eliminar copia de seguridad
  3. Ingrese su contraseña y espere unos minutos
  4. Salga de la interfaz de Time Machine y vuelva de nuevo. Ahora debería tener su Time Machine listando la copia de seguridad correcta.
Maher
fuente
14
No hagas esto. Time Machine utiliza un complejo sistema de enlace. Puede romper sus copias de seguridad. Ver pondini.org/TM/Home.html
Harv
2
Después de leer http://pondini.org/TM/Works.html , no veo una razón por la que eliminar las copias de seguridad antiguas con sudo rm -rvfTime Machine se rompa. El rmcomando es la alternativa de la línea de comandos a la sugerencia de eliminar del Finder en la parte inferior http://pondini.org/TM/12.html
Pro Backup