Estoy tratando de eliminar todas las copias de seguridad de elementos específicos a través de la línea de comandos. Puedo lograr esto usando la GUI a través de los siguientes pasos:
¿ Cómo puedo replicar esto en la línea de comando usando tmutil
? Especialmente, al usar Backup Loupe para detectar archivos grandes, sería más fácil usar la Terminal (ya que no tengo que ingresar a TimeMachine cada vez que quiero eliminar un archivo en particular y puedo navegar hasta él usando el Finder, y luego colóquelo en la Terminal para obtener un comando para eliminarlo).
Esperaba poder usar algo como esto:
sudo tmutil delete /path/to/file
sin embargo me da el error:
"Objetivo de eliminación no válido (error 22)"`
Esto funciona bien:
sudo tmutil delete /Volume/Backups.backupdb/<machinename>
y esto también:
sudo tmutil delete /Volume/Backups.backupdb/<machinename>/<specificbackup>
De acuerdo con man tmutil
el delete
comando, también debería poder eliminar elementos específicos. Sin embargo, no he tenido suerte hasta ahora. Si bien hay numerosas respuestas en este sitio (y en otros lugares) para eliminar copias de seguridad específicas y tmutil
para eliminar elementos de copia de seguridad específicos a través de la GUI (usando el método descrito anteriormente), no pude encontrar ninguna forma que no sea GUI para eliminar elementos de copia de seguridad específicos .
Encontré estas preguntas y respuestas de SU tituladas: ¿Cómo puedo eliminar archivos de Time Machine usando la línea de comandos que demuestra un método para eliminar archivos específicos de la CLI? Esta respuesta destacó un método que suena como lo que quieres:
Mi disco de respaldo está lleno. Tengo un archivo muy grande (muchos gigabytes) del que se ha realizado una copia de seguridad durante meses. Hay una copia física, pero muchas instantáneas con enlaces físicos a esa copia. Para deshacerme realmente de ese archivo, necesito eliminar el enlace duro de cada copia de seguridad.
En esa respuesta, se mostró que uno podría usar este método para eliminar un archivo:
$ 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
El método para eliminar el archivo utiliza una herramienta CLI auxiliar incluida con Time Machine llamada bypass
:
$ sudo bypass rm -f */Macintosh\ HD/Users/csm/vm.img
Dado que bypass
se considera una secuencia de comandos de ayuda para Time Machine, su ubicación no suele estar en su archivo $PATH
. Por lo tanto, deberá especificar la ruta completa al ejecutable. Además, Apple lo ha reubicado para diferentes versiones de macOS.
$ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass \ rm -rfv /Volumes/[disk]/Backups.backupdb/[path]
En 10.8 Mountain Lion, el bypass se movió a 'Ayudantes':
$ /System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass
En 10.10 Yosemite, el bypass se movió aquí:
$ /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass
sudo bypass rm -f */Macintosh\ HD\Users\csm\vm.img
asegura que todo esto se logre de una sola vez?rm
ejecuta después cd /Volumes/DISK/Backups.backupdb/MACHINE
, por lo que el comodín se expandirá a todas las carpetas fechadas que contienen la imagen. Sin embargo , he corregido un error \\
tipográfico /
en la respuesta.bypass
es exactamente el bisturí que necesito para mi herramienta. Me gustaría envolverlo en swift o python para que sea más fácil de usar, pero veremos si vuelvo al shellbypass
que se encuentra en el mismo lugar que estaba en 10.10. Lo usé y funcionó exactamente como se esperaba.Según man tmutil
, el tmutil delete
comando se puede usar para eliminar una o más instantáneas , directorios de máquinas o almacenes de copias de seguridad . Los términos se definen al principio de la misma página del manual:
/Volumes/Chronoton/Backups.backupdb/thermopylae/2011-07-03-123456
)/Volumes/Chronoton/Backups.backupdb/thermopylae
)/Volumes/Chronoton/Backups.backupdb
)Por lo tanto, parece que lamentablemente no es posible usarlo tmutil
para eliminar elementos específicos dentro de una instantánea.
ene
sin ladera