1 votes

Sauvegarde des journaux du système avec Time Machine

Il semble que Time Machine ne sauvegarde pas system.log dans /private/var/log.

Mac OS X 10.9.5/Six core Intel Xeon

Puis-je forcer ce fichier à être sauvegardé ?

1voto

user3439894 Points 52496

Par défaut, le contenu du fichier /private/var/log est exclu des sauvegardes Time Machine. Cela peut être modifié pour inclure le contenu, mais comme il s'agit d'un fichier système, il est probablement plus prudent de sauvegarder les fichiers exclus que vous souhaitez avoir sauvegardés en copiant les fichiers à un emplacement qui est inclus dans les sauvegardes Time Machine. Ceci dit, je ne suis pas d'accord avec la déclaration de cppl. "Étant donné que changer les fichiers de base est toujours une mauvaise idée" car lorsqu'il est fait correctement et avec la connaissance et la compréhension de ce que l'on fait, ce n'est tout simplement pas un problème !

Si vous voulez vraiment inclure /private/var/log dans vos sauvegardes Time Machine, voici ce que vous pouvez faire. Pour rendre cela plus facile et plus sûr, je vous recommande d'utiliser ce script testé. Il sauvegarde d'abord le bundle et le plist et supprime uniquement les éléments suivants /private/var/log s'il se trouve à son emplacement par défaut dans le fichier .plist. Remarque : Ce script doit être exécuté à l'aide de la fonction sudo ou comme root .

Dans un terminal :

touch modtm
open modtm

Dans le document modtm ouvert :

Copiez et collez le code ci-dessous dans le document et enregistrez-le, puis fermez-le.

De retour dans le Terminal, rendez le script exécutable :

chmod u+x modtm

Maintenant avec le script prêt à être exécuté, dans le Terminal :

sudo ./modtm

Saisissez votre mot de passe, qui ne s'affichera pas au fur et à mesure que vous le tapez, puis appuyez sur Entrée.

Si les défauts étaient en jeu, alors /private/var/log devrait avoir été retiré en toute sécurité, en vertu de la première sauvegarde, de la StdExclusions.plist fichier.

Code :

#!/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

Image montrant la mise en évidence syntaxique :

enter image description here

Note : Ce script ne peut pas être exécuté sous OS X 10.11, sauf si SIP est temporairement désactivé.

0voto

Paul Smith Points 21

Non, malheureusement, alors que le Time Machine standard vous laisse exclure il n'y a pas de moyen de inclure les répertoires.

Même l'utilitaire de ligne de commande n'est d'aucune aide. tmutil - Encore une fois, tout ce que vous pouvez faire est d'exclure des répertoires.

Si vous avez vraiment besoin du contenu de /private/var/log sauvegardé alors je suggérerais d'utiliser un simple script pour copier le répertoire à un emplacement qui est sauvegardé.

Pour copier les fichiers périodiquement, vous pouvez utiliser Automator ou un simple bash script avec un simple rsync appeler comme ça :

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

Veuillez noter certains sous-répertoires peuvent présenter des problèmes en raison des permissions par défaut comme celui-ci :

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

A partir des commentaires en testant ci-dessous, j'ai testé le /private/var/log' directory with tmutil` et nous obtenons :

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

Donc, à moins que vous ne vouliez modifier les fichiers suggérés par @user3439894 via les outils et l'interface utilisateur standard, il n'y a aucun moyen de le faire. Étant donné que la modification des fichiers de base est toujours une mauvaise idée, je les copierais dans un emplacement déjà inclus. (En dehors de toute autre chose, les mises à jour du système ou l'intégrité de Time Machine peuvent inverser vos changements).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X