Yanıtlar:
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:
Not: Bu komut dosyası, SIP geçici olarak devre dışı bırakılmadığı sürece OS X 10.11'de çalıştırılamaz .
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).
/private(veya bu materyal için /system, /Libraryvb.), İlk başta "dahil edilmemiştir" veya "hariç tutulmamıştır"
/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.
/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 .
tmutildizini dışlamak için kullanabileceğini düşünmeme rağmen - kontrol etmeme izin ver)