Il sistema registra il backup con Time Machine

1

Sembra che Time Machine non esegua il backup di system.log in / private / var / log.

Mac OS X 10.9.5 / Sei core Intel Xeon

Posso forzare il backup di quel file?

    
posta johnwik 13.02.2016 - 23:38
fonte

2 risposte

1

Per impostazione predefinita, il contenuto della directory /private/var/log viene escluso dai backup di Time Machine. Questo può essere modificato per includere il contenuto, tuttavia, poiché si tratta di un file di sistema, è probabilmente più prudente eseguire il backup dei file esclusi di cui si desidera eseguire il backup copiando i file in una posizione inclusa nei backup di Time Machine. Detto questo, non sono d'accordo con l'affermazione di cppl "Dato che cambiare i file core è sempre una cattiva idea" perché se fatto correttamente e con la conoscenza e la comprensione di ciò che si sta facendo non è un problema!

Se vuoi davvero includere la directory /private/var/log nei tuoi backup di Time Machine, ecco cosa puoi fare. Per rendere questo più facile e più sicuro raccomanderei l'utilizzo di questo script testato. Prima esegue il backup del bundle e plist e rimuove solo /private/var/log se si trova nella posizione predefinita all'interno del file .plist. Nota: questo script deve essere eseguito utilizzando sudo o root .

In un terminale:

touch modtm
open modtm

Nel documento modtm aperto:

Copia e incolla il codice mostrato di seguito nel documento e salvalo, quindi chiudilo.

Di nuovo nel Terminale, rendi eseguibile lo script:

chmod u+x modtm

Ora con lo script pronto per l'esecuzione, nel Terminale:

sudo ./modtm

Inserisci la password, che non verrà visualizzata mentre la digiti, quindi premi Invio.

Se i valori predefiniti erano in gioco, /private/var/log avrebbe dovuto essere rimosso in modo sicuro, in virtù del primo backup, dal file StdExclusions.plist .

Codice:

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

Immagine che mostra evidenziazione sintattica:

Nota:questoscriptnonpuòessereeseguitoinOSX10.11amenoche SIP sia temporaneamente disabilitato.

    
risposta data 14.02.2016 - 06:25
fonte
0

No, sfortunatamente mentre la Time Machine standard ti consente di escludere directory, non c'è un modo per includere directory

.

Anche l'utilità della riga di comando non è di alcun aiuto tmutil - tutto ciò che puoi fare è escludere le directory.

Se hai veramente bisogno del backup di /private/var/log allora ti suggerirei di usare un semplice script per copiare la directory in una posizione a cui è stato eseguito il backup.

Per copiare periodicamente i file puoi usare Automator o semplice script bash con un singolo rsync chiama come:

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

Si prega di notare alcune sottodirectory potrebbero presentare problemi dovuti a permessi predefiniti ... come questo:

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

Dai commenti testati di seguito, ho testato il /private/var/log' directory with tmutil 'e otteniamo:

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

Quindi, a meno che tu non abbia intenzione di modificare i file suggeriti da @ user3439894 tramite gli strumenti e l'interfaccia utente standard, non c'è un modo per farlo. Dato che cambiare i file core è sempre una cattiva idea - li copio in una posizione già inclusa. (A parte qualsiasi altra cosa, gli aggiornamenti di sistema o l'integrità di Time Machine potrebbero annullare le modifiche).

    
risposta data 14.02.2016 - 01:39
fonte

Leggi altre domande sui tag