La copia de seguridad de los registros del sistema con Time Machine

1

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?

    
pregunta johnwik 13.02.2016 - 23:38

2 respuestas

1

De forma predeterminada, el contenido del directorio /private/var/log se excluye de las copias de seguridad de Time Machine. Sin embargo, esto se puede cambiar para incluir el contenido, ya que este es un archivo del sistema. Probablemente sea más prudente hacer una copia de seguridad de los archivos excluidos de los que le gustaría tener una copia de seguridad copiando los archivos en 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 centrales siempre es 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 desea incluir el directorio /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 seguro, recomiendo usar este script probado. Primero realiza una copia de seguridad del paquete y de la lista y solo elimina /private/var/log si se encuentra en su ubicación predeterminada dentro del archivo .plist. Nota: este script debe ejecutarse utilizando sudo o como root .

En una terminal:

touch modtm
open modtm

En el documento de 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 la Terminal, haga el script ejecutable:

chmod u+x modtm

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

sudo ./modtm

Ingrese su contraseña, que no se mostrará a medida que la escriba, y luego presione Intro.

Si los valores predeterminados estaban en juego, /private/var/log debería haberse eliminado de forma segura, en virtud de la primera copia de seguridad, desde el archivo StdExclusions.plist .

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 resaltado sintáctico:

Nota:estasecuenciadecomandosnosepuedeejecutarenOSX10.11amenosque SIP esté deshabilitado temporalmente.

    
respondido por el user3439894 14.02.2016 - 06:25
0

No, desafortunadamente, mientras que la Máquina del tiempo estándar le permite excluir directorios, no hay una manera de incluir directorios.

Incluso la utilidad de línea de comandos no sirve de ayuda tmutil : de nuevo, todo lo que puede hacer es excluir directorios.

Si realmente necesitas una copia de seguridad del contenido de /private/var/log , te sugiero que uses una secuencia de comandos simple para copiar el directorio en una ubicación en la que se haga una copia de seguridad.

Para copiar los archivos periódicamente, puede usar Automator o simple script bash con un solo 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 predeterminados ... como este:

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

A partir de los comentarios de las pruebas a continuación, probé /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

Entonces, a menos que modifique 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 principales siempre es una mala idea, los copiaría en una ubicación ya incluida. (Aparte de cualquier otra cosa, las actualizaciones del sistema o la integridad de Time Machine pueden revertir sus cambios).

    
respondido por el Craig 14.02.2016 - 01:39

Lea otras preguntas en las etiquetas