1 votos

Copia de seguridad de los registros del sistema con Time Machine

Parece que Time Machine no hace una copia de seguridad de system.log en /private/var/log.

Mac OS X 10.9.5/Six core Intel Xeon

¿Puedo forzar la copia de seguridad de ese archivo?

1voto

user3439894 Puntos 5883

Por defecto, el contenido del /private/var/log está excluido de las copias de seguridad de Time Machine. Esto se puede cambiar para incluir el contenido, sin embargo, debido a que este es un archivo de sistema, es probablemente más prudente hacer una copia de seguridad de los archivos excluidos que le gustaría tener una copia de seguridad mediante la copia de los archivos a una ubicación que se incluye en las copias de seguridad de Time Machine. Dicho esto, sin embargo, no estoy de acuerdo con la declaración de cppl "Dado que cambiar los archivos del núcleo es siempre una mala idea" porque cuando se hace correctamente y con el conocimiento y la comprensión de lo que uno está haciendo, ¡no es un problema!

Si realmente quiere incluir /private/var/log en sus copias de seguridad de Time Machine, esto es lo que puede hacer. Para hacer esto más fácil y más seguro recomendaría usar este script probado. Primero hace una copia de seguridad del bundle y del plist y sólo elimina /private/var/log si en su ubicación por defecto dentro del archivo .plist. Nota: Este script debe ejecutarse con sudo o como root .

En una terminal:

touch modtm
open modtm

En el documento modtm abierto:

Copie y pegue el código que se muestra a continuación en el documento y guárdelo, luego ciérrelo.

De vuelta en el Terminal, haga ejecutable el script:

chmod u+x modtm

Ahora con el script listo para ejecutar, en la Terminal:

sudo ./modtm

Introduce tu contraseña, que no se mostrará mientras la escribes, y luego pulsa Enter.

Si los valores por defecto estuvieran en juego, entonces /private/var/log debería haber sido eliminado con seguridad, en virtud de la primera copia de seguridad, de la StdExclusions.plist archivo.

Código:

#!/bin/bash

set -ex

    # Make sure script was run using 'sudo' or by 'root'.

if [[ $(id -u) != 0 ]]; then
   echo "This script must be run as root." 1>&2
   exit 1
 else
        # Set variables.

    b="/System/Library/CoreServices/backupd.bundle"
    f="/System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist"
    e="/private/var/log"

        # Backup, by copy, both the bundle and plist.

    [[ ! -d ${b%%.*}.ORI.${b##*.} ]] && cp -aR "$b" "${b%%.*}.ORI.${b##*.}"
    [[ ! -f $f.ORI ]] && cp -a "$f" "$f.ORI"

        # Get the value of the first element of the 'FileContentsExcluded' array.

    v="$(/usr/libexec/PlistBuddy -c "Print :FileContentsExcluded:0" "$f")"

    if [[ $v == $e ]]; then
            # Target value matched, delete it from .plist file.
        /usr/libexec/PlistBuddy -c "Delete :FileContentsExcluded:0"  "$f"
        echo "$e removed from $f"
    else
        echo "$e not found where expected!"
        exit 1
    fi
    exit 0
fi

Imagen que muestra el resaltado sintáctico:

enter image description here

Nota: Este script no puede ejecutarse en OS X 10.11 a menos que SIP está temporalmente desactivado.

0voto

cppl Puntos 190

No, lamentablemente, mientras que la máquina del tiempo estándar le permite excluir directorios no hay manera de incluye directorios.

Ni siquiera la utilidad de línea de comandos es de ayuda tmutil - de nuevo todo lo que puedes hacer es excluir directorios.

Si realmente necesita el contenido de /private/var/log entonces sugeriría usar un simple script para copiar el directorio a una ubicación a la que se hace una copia de seguridad.

Para copiar los archivos periódicamente puedes utilizar Automatizador o un simple bash script con un único rsync llamar como:

rsync -ar --delete /private/var/log/ /Users/yourusername/Documents/logbackups/

Tenga en cuenta algunos subdirectorios pueden presentar problemas debido a los permisos por defecto como éste:

drwx------   3 root    wheel    102 17 Sep 15:30 com.apple.revisiond

A partir de los comentarios probando a continuación, he probado el /private/var/log' directory with tmutil` y obtenemos:

testac:~: tmutil isexcluded /private/var/log/
[Included]    /private/var/log/
testac:~: tmutil removeexclusion /private/var/log/
MDSetAttribute(): Removing extended attributes from '/private/var/log' failed errno: Permission denied

Así que, a menos que vayas a modificar los archivos sugeridos por @user3439894 a través de las herramientas y la interfaz de usuario estándar, no hay manera de hacerlo. Dado que cambiar los archivos del núcleo es siempre una mala idea - yo los copiaría a una ubicación ya incluida. (Aparte de cualquier otra cosa, las actualizaciones del sistema o la integridad de Time Machine pueden revertir tus cambios).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X