Yanıtlar:
Varsayılan olarak /private/var/log
dizinin 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/log
Time 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 sudo
veya 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/log
yedeklenmiş 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 rsync
gibi 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 with
tmutil'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
, /Library
vb.), İlk başta "dahil edilmemiştir" veya "hariç tutulmamıştır"
/private/var/log
açı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/log
ve 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/log
gelen StdExclusions.plist
ve daha sonra bir Zaman Makinesi yedekleme yaptık. Kesinlikle /private/var/log
daha ö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/log
Time Machine tarafından desteklenmeyen konumdaki dosyaları yedeklemesine neden olduğunu kesinlikle kesin olarak söyleyebilirim .
tmutil
dizini dışlamak için kullanabileceğini düşünmeme rağmen - kontrol etmeme izin ver)