¿Cómo detectar en un script que se está ejecutando una copia de seguridad de TimeMachine? [duplicar]

1

Para ejecutar algunas sincronizaciones con servidores remotos para que sus datos se incluyan en las copias de seguridad de TimeMachine, solía usar una secuencia de comandos como la siguiente para evitar la sincronización mientras se ejecuta TimeMachine y no obtener copias de seguridad a medias sincronizadas.

La parte de detección del script que espera a que TimeMachine deje de funcionar en la versión 10.8, así que estoy buscando un reemplazo que funcione.

#!/bin/sh -x


while ps -e | grep backupd | grep -v grep; do
    echo "Time Machine is running, waiting ..."
    sleep 60
done

Lo anterior espera hasta que finalice una ejecución de TimeMachine que ya está en marcha. Esta es la parte que ya no funciona en 10.8 ya que backupd se muestra siempre en la salida ps -e . Así que esperará por siempre.

El resto del script aún funciona bien y solo se pone aquí como referencia si alguien necesita apagar TimeMachine durante un script y luego volver a encenderlo de manera segura.

save='defaults read /Library/Preferences/com.apple.TimeMachine AutoBackup | sed -e 's/0/false/' | sed -e 's/1/true/''

Esta es una solución para el hecho de que los valores predeterminados leen 0 y 1 para bool s, pero los valores predeterminados solo aceptan true y false

echo "Saved Time Machine state: AutoBackup = $save"

trap "echo 'Restoring Time Machine state'; defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool $save" EXIT HUP INT QUIT ABRT TERM

Aquí restauramos el estado anterior de la máquina del tiempo cuando la secuencia de comandos se detiene por cualquier motivo: no queremos apagar accidentalmente la máquina del tiempo y nadie se da cuenta.

defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -int 0

Apague TimeMachine, ¿no está seguro de por qué -int 0 funciona aquí, tal vez todo el negocio sed ya no es realmente necesario? Creo que cambia el valor predeterminado a int, que está bien para desactivar (?)

# ... script that does some remote syncing with other machines while time machine is not running
    
pregunta Peer Stritzinger 28.11.2012 - 15:51

1 respuesta

1

Hay un pregunta duplicada que cubre esto , pero la respuesta es tmutil status le dirá cada vez que se realice una copia de seguridad, así como detalles sobre la copia de seguridad.

Puede usar tmutil y luego desactivar las copias de seguridad si lo desea, o incluso leer la lista de copias de seguridad para poder predecir cuántos minutos hasta la próxima copia de seguridad programada. Tuvimos algo similar y luego decidimos iniciar una copia de seguridad cuando finaliza la copia, de modo que si una copia de seguridad estaba en curso o no, tenemos una gran posibilidad de una copia de seguridad consistente al final de la operación de copia.

    
respondido por el bmike 28.11.2012 - 17:11

Lea otras preguntas en las etiquetas