Sistem, Time Machine ile yedekleme günlüğünü kaydediyor


1

Time Machine'in / private / var / log içindeki system.log dosyasını desteklemediği görülüyor.

Mac OS X 10.9.5 / Altı çekirdekli Intel Xeon

Bu dosyayı yedeklenmeye zorlayabilir miyim?

Yanıtlar:


1

Varsayılan olarak /private/var/logdizinin içeriği Time Machine yedeklemelerinin dışında tutulur. Bu içeriği içerecek şekilde değiştirilebilir ancak bu bir sistem dosyası olduğu için, dosyaları Time Machine yedeklemelerinde bulunan bir konuma kopyalayarak yedeklemek istediğiniz dışlanan dosyaları yedeklemek daha akıllıca olacaktır. Yani, ben cppl tarafından yapılan açıklamaya katılmıyorum ancak söz konusu "çekirdek dosyalarını değiştirerek her zaman kötü bir fikir olduğunu göz önüne alındığında" düzgün yapıldığında çünkü kimse ne yaptığını bilgi ve anlayışı ile sadece bir sorun değildir!

Eğer /private/var/logTime Machine yedeklemenize gerçekten bir dizin eklemek istiyorsanız, işte yapabilecekleriniz işte burada. Bunu daha kolay ve daha güvenli hale getirmek için bu test edilmiş betiği kullanmanızı öneririm. Öncelikle paketi yedekler ve dürter ve yalnızca /private/var/log.plist dosyası içindeki varsayılan konumundaysa kaldırır . Not: Bu script sudoveya as kullanılarak çalıştırılmalıdır root.

Bir Terminalde:

touch modtm
open modtm

Açılan modtm belgesinde:

Aşağıda gösterilen kodu kopyalayıp yapıştırın ve kaydedin, ardından kapatın.

Terminal'e geri döndüğünde, komut dosyasını çalıştırılabilir duruma getirin:

chmod u+x modtm

Şimdi komut dosyası çalışmaya hazır, Terminal'de:

sudo ./modtm

Yazarken görünmeyecek olan şifrenizi girin ve ardından Enter tuşuna basın.

Varsayılanlar oyunda olsaydı /private/var/log, ilk yedekleme sayesinde StdExclusions.plist dosyasından güvenli bir şekilde kaldırılmış olmalıdır .

Kod:

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

Sözdizimsel vurgulamayı gösteren resim:

görüntü tanımını buraya girin

Not: Bu komut dosyası, SIP geçici olarak devre dışı bırakılmadığı sürece OS X 10.11'de çalıştırılamaz .


0

Hayır, ne yazık ki standart Zaman Makinesi , dizinleri hariç tutmanıza izin verirken, dizinleri dahil etmenin bir yolu yoktur .

Komut satırı yardımcı programı bile yardımcı olmaz tmutil- yine tek yapabileceğiniz şey dizinleri dışlamaktır.

Gerçekten /private/var/logyedeklenmiş içeriğe ihtiyacınız varsa , dizini yedeklenen bir konuma kopyalamak için basit bir komut dosyası kullanmanızı öneririm.

Dosyaları düzenli aralıklarla kopyalamak için, Automator veya basit bash komut dosyasını aşağıdaki rsyncgibi tek bir çağrı ile kullanabilirsiniz:

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

Lütfen bazı alt dizinlerin varsayılan izinler nedeniyle sorun yaşayabileceğini unutmayın … bunun gibi:

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

Aşağıdaki testlerden yorumlarla /private/var/log' directory withtmutil'i test ettim ve elde ettik:

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

Dolayısıyla, @ user3439894 tarafından önerilen dosyaları araçlar ve standart kullanıcı arayüzü ile değiştiremezseniz, bunu yapmanın bir yolu yoktur. Çekirdek dosyaları değiştirmek her zaman kötü bir fikir olduğu göz önüne alındığında, onları önceden eklenmiş bir konuma kopyalarım. (Sistem güncellemelerinin dışında veya Time Machine bütünlüğü değişikliklerinizi geri alabilir).


"... dizinleri dahil etmenin bir yolu yok" dedin. ve bu özel kullanım durumunda, yanlış olabileceğini söyleyeceğim, çünkü verilen bir dizin varsayılan olarak dışlanırsa, dışlamayı kaldırarak dahil edilebilir! Denemedim, ancak kesinlikle dahil olamayacağını söylemeden önce düşünürdüm. Her neyse, bir sistem dosyasıyla karıştığından beri, içeriği yedeklenen bir yere kopyalamakla ilgili öneriniz daha güvenli olacaktır.
user3439894

Maalesef, hariç tutabilecekleri bir mekanizma yoktur /private(veya bu materyal için /system, /Libraryvb.), İlk başta "dahil edilmemiştir" veya "hariç tutulmamıştır"
Craig

Yanılıyorsun, /private/var/logaçıkça dışlandı. Benim sistemde ilk olan eleman ait FileContentsExcluded dizisi Kök Sözlük içinde StdExclusions.plist ait backupd.bundle olduğunu /private/var/logve bu nedenle bir Zaman Makinesi yedekleme dahil edilecek olacağını çıkarmadan neden olduğunu tahmin ediyorum. Sanırım sadece test edip görmek zorunda kalacağım.
user3439894

Tamam, kaldırıldı /private/var/loggelen StdExclusions.plistve daha sonra bir Zaman Makinesi yedekleme yaptık. Kesinlikle /private/var/logdaha önce yedeklenmemiş olan içeriğini de içeriyordu . Bu nedenle artık kaldırmanın dahil edilmesine neden olacağını tahmin etmiyorum, bu kullanımda, önceden varsayılan /private/var/logTime Machine tarafından desteklenmeyen konumdaki dosyaları yedeklemesine neden olduğunu kesinlikle kesin olarak söyleyebilirim .
user3439894

Üzgünüm, Time Machine arayüzünü kullanmaktan bahsediyordum. Sistem dosyalarını hacklemekten bahsetmiyordum… ( tmutildizini dışlamak için kullanabileceğini düşünmeme rağmen - kontrol etmeme izin ver)
Craig
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.