¿Cómo puedo saber si se está ejecutando una copia de seguridad de time machine?

4

Debido a APFS tiene una mente propia y llena el disco duro con no deseado En las instantáneas, hice un cron para ejecutar tmutil deletelocalsnapshots xxx . Más tarde descubrí que ejecutar este comando mientras se está realizando una copia de seguridad detendrá la copia de seguridad. ¿Cómo puedo saber si una copia de seguridad de Time Machine está en curso para evitar ejecutar el comando? La página del manual para tmutil no muestra ningún comando de estado.

Ahora mismo estoy haciendo lo siguiente en el script, ya que ahora las copias de seguridad se montan en /Volumes/Time Machine Backups/ :

ls -d /Volumes/Time* 2>/dev/null|grep Machin >/dev/null

if [[ $? != 0 ]]; then
     # run here tmutil snapshot deletion commands
fi

Sin embargo, esto no parece ser muy preciso. El volumen se puede montar algunos minutos más tarde después de que se haya iniciado una copia de seguridad, y también detener una copia de seguridad deja ese volumen montado por un tiempo. Finalmente, el nombre del volumen montado podría cambiar en el futuro, haciendo que la verificación sea inútil.

    
pregunta Grzegorz Adam Hankiewicz 24.02.2018 - 19:20

3 respuestas

5

La forma canónica de verificar el estado de la máquina del tiempo es usar la utilidad y verificar el estado:

 tmutil status

Ahora, debe procesar el texto, ya que informa de la salida 0 cuando se ejecuta y cuando no se está ejecutando desde que se devolvió el estado, no es que haya un estado correcto.

Yo usaría:

tmutil status | grep "Running = 0;"

Eso devuelve 0 si el sistema no se está ejecutando actualmente y 1 si está realizando una copia de seguridad. Sin embargo, una copia de seguridad en High Sierra implica un evento no instantáneo. Las instantáneas son, literalmente, a unidades externas que, literalmente, no son APFS. Solo el SSD interno recibe tratamiento APFS y las instantáneas locales no son algo que se "ejecute" sino que simplemente "exista" y el "correr" si algo es el proceso de reducción, no el proceso de copia de seguridad.

El proceso de simplificación llama a backupd-helper , que no tiene una herramienta de línea de comandos para verificar cuando se realiza, pero puede cronometrar esa ejecución emitiendo una llamada de bloqueo como:

 tmutil thinlocalsnapshots / 1000000000

Arriba tiene suficientes ceros para diluir un byte de giga: agregue dos ceros para pedir 100 GB de vuelta.

Quiero corregir (o al menos desafiar a la ligera) el concepto de demasiadas instantáneas. APFS es una copia en el sistema de archivos de escritura y los únicos ejemplos de que esto sea malo parecen configuraciones altamente inventadas o no predeterminadas. Los archivos que están alrededor ya están escritos en el disco. El sistema simplemente es "perezoso" para limpiarlos y no gasta tiempo de procesamiento hasta que sepa que a) el sistema está relativamente inactivo b) el almacenamiento está relativamente inactivo y aún no se está agotando el espacio disponible.

Claramente, Apple aún está cambiando con la cantidad de instantáneas que se mantendrán montadas, cómo establecer los umbrales de limpieza, cuántos intervalos se mantendrán en situaciones donde la unidad externa no esté conectada y existan las instantáneas locales.

Puedes profundizar más con:

tmutil listlocalsnapshots /
tmutil thinlocalsnapshots / 1
tmutil deletelocalsnapshots YYYY-MM-DD-HHMMSS

Una vez más, todavía tengo que ver un lugar donde necesitaba reducir o eliminar instantáneas del proceso automático en volúmenes locales. La eliminación puede ser útil cuando desea purgar una copia de seguridad grande desde una unidad externa. La verdadera palanca que solíamos tener era usar las exclusiones de Time Machine para omitir la copia de seguridad de archivos grandes que tenían pequeños cambios. Queda por verse cómo reacciona APFS a estos archivos. Supongo que es posible que pueda ubicar tipos de archivos en un volumen diferente de APFS y adelgace de forma agresiva y periódica o continúe observando las exclusiones de copia de seguridad para ver si eso le ahorra espacio sin ralentizando la copia en el rendimiento de escritura y los beneficios de almacenamiento.

    
respondido por el bmike 25.02.2018 - 15:16
3

Busca backupd

Si el proceso backupd se está ejecutando, entonces Time Machine está realizando una copia de seguridad activa.

Consulte la pregunta de StackOverflow, ¿Compruebe si el programa se está ejecutando con el script de shell bash? para obtener métodos sólidos para verificar el proceso en ejecución.

No documentado tmutil status

Hay un documento no documentado y, por lo tanto, está sujeto a cambios, tmutil status . Esta llamada devuelve la respuesta:

Backup session status:
{
    ClientID = "com.apple.backupd";
    Running = 0;
}

Necesitará analizar la parte JSON de la respuesta para saber si Time Machine se está ejecutando.

    
respondido por el Graham Miln 24.02.2018 - 21:05
-1

Time Machine tiene una barra de menú que puedes usar. Solo necesitas habilitar el elemento de la barra de menú.

Dentro del panel de preferencias de Time Machine, hay una selección de casilla de verificación para que aparezca el elemento de la barra de menú. La barra de menú le permite hacer una copia de seguridad manualmente, si está haciendo una copia de seguridad, y qué tan avanzado está.

EDITAR: Sin embargo, esto no le permitirá configurar un cron para saber cuándo se está tomando una instantánea local, tendría que hacerlo manualmente.

Edit 2: abajo votado o no, los que busquen la pregunta titulada encontrarán mi respuesta útil. No lo voy a borrar.

    
respondido por el Jahhein 25.02.2018 - 14:24

Lea otras preguntas en las etiquetas