Tengo habilitada la copia de seguridad automática y las instantáneas locales de TimeMachine ocupan una gran cantidad de espacio en disco. Este espacio aparece como purgable en la información del disco, pero no se puede usar hasta que el sistema decida liberarlo. ¿Cómo puedo obligar a TimeMachine a eliminar esas instantáneas?
En Terminal, ejecuta este pequeño script:
for d in $(tmutil listlocalsnapshotdates | grep "-"); do sudo tmutil deletelocalsnapshots $d; done
El script enumera todos los hosts instantáneos y los elimina todos en un bucle.
Si no se está quedando sin espacio en disco (5 GB libres), simplemente deje que se asigne este espacio, ya que no hay inconveniente en esperar para purgar los archivos hasta que necesite espacio.
Dicho esto, si decide eliminar las copias de seguridad de forma preventiva, prefiero decirle al sistema que libere espacio. Si sabe que tiene una cantidad de 50 GB para liberar, cambie los 5 a continuación a 50 y luego el sistema iterará en todas las instantáneas locales y las eliminará en el orden definido por el sistema.
tmutil thinlocalsnapshots / $(echo "5 * 1000000000" | bc) 2
La única iteración que haría es ver cuántos volúmenes APFS tiene y luego quizás reducir cualquiera que esté montado.
Aquí hay un buen hilo que explica la urgencia: 2 funciona bien para mis necesidades, pero la página del manual explica que hay 4 niveles de urgencia, por lo que si tiene necesidades específicas, observe el IO y el rendimiento durante la reducción y experimente con instantáneas más pequeñas para reducir.
Descubrí por accidente que al abrir las ventanas de "Administración de almacenamiento" (Cmd-U) en "Información del sistema" se liberaban las instantáneas de la máquina de la hora local, lo que hacía que el espacio estuviera disponible.
No sé si esta es una forma oficialmente compatible.
Paso 1:
En Terminal, ingrese el siguiente comando para enumerar todas las instantáneas de respaldo:
tmutil listlocalsnapshots /
Obtendrá una lista de todas las instantáneas en el directorio raíz ( /
).
Paso 2:
Elimine cada instantánea ingresando el siguiente comando + fecha de la instantánea correspondiente:
sudo tmutil deletelocalsnapshots <snapshot_date>
Ejemplo:
sudo tmutil deletelocalsnapshots 2020-09-26-143409
Consejo extra:
Recuerde que siempre puede obtener ayuda con un comando en la terminal ingresando el comando raíz -h
o -help
.
Ingrese tmutil -help
para ver todos los comandos de la utilidad Time Machine y las instrucciones de uso.
La forma aún más elegante de eliminar todas las instantáneas:
for x in $(tmutil listlocalsnapshots /);do
sudo tmutil deletelocalsnapshots $(cut -d '.' -f 4 <<<"$x")
done
sin ladera
tmutil thinlocalsnapshots
etc.bmike
Martín
thinlocalsnapshots
funcionaría igual de bien.bmike