Jak zatrzymać tworzenie kopii zapasowej plików dziennika w Time Machine w kontenerach aplikacji?

5

Time Machine nie tworzy kopii zapasowych plików dziennika ~/Library/Logs

Ale robi kopie zapasowe dzienników w kontenerach aplikacji. Na przykład pliki dziennika w folderze ~/Library/Containers/com.apple.mail/Data/Library/Logs/Mail.

Dzienniki My Mail i OneDrive dodają obecnie około 2 GB na kopię zapasową.

Mógłbym ręcznie wykluczyć każde z nich, ~/Library/Containers/*/Data/Library/Logsale to wiele wykluczeń i byłaby to lista, która wymaga dodania za każdym razem, gdy instaluję nową aplikację.

Te ~/Library/Containers/*foldery zostały wprowadzone do obsługi aplikacji piaskownicy, ale wydaje się, Time Machine nie nadąża za tymi zmianami.

Czy istnieje lepszy sposób na powiedzenie Time Machine, aby nie tworzył kopii zapasowych /Logfolderów w kontenerach?

Używam OS X Yosemite 10.10.1.

Gilby
źródło

Odpowiedzi:

2

Miałem podobną potrzebę i używając kombinacji tej odpowiedzi i tej odpowiedzi , wpadłem na następujące rozwiązanie.

Utwórz listę właściwości (np. ~/Library/LaunchAgents/excludeLogFiles.plist), Która zostanie załadowana launchctl load ~/Library/LaunchAgents/excludeLogFiles.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>excludeLogFiles</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/zsh</string>
    <string>-c</string>
    <string>tmutil addexclusion /Users/user/Library/Containers/**/Data/Library/Logs</string>
  </array>
  <key>WatchPaths</key>
  <array>
    <string>/Users/user/Library/Containers</string>
  </array>
</dict>
</plist>

Zamiast używania EnableGlobbing, które nie jest obsługiwane od OS X 10.10 ( ref ), ścieżka zostaje rozszerzona przez wywołanie programu /bin/zsh <args>.

Kilka rzeczy, które znalazłem podczas eksperymentowania:

  1. **Glob pracuje zshale niebash
  2. Korzystanie ~powinno działać na ścieżce, ProgramArgumentsale nie wiem, czy można zastosować tę samą sztuczkę WatchPath. Konieczne może być zakodowanie na stałe ścieżki użytkownika.
Piotr
źródło
No ~ nie jest wywoływane przez zsh - jest rozszerzane przez program wywołujący / bin / zsh <args>
Mark
Dziękuję za wyjaśnienie. Zaktualizowałem odpowiedź, aby, mam nadzieję, być teraz poprawna.
Peter,
Wiesz co? W Sierra prawie wszystkie moje kontenery / ** / Data / Library / Logs są puste. Problem zniknął! Część zmian Sierra w logowaniu. Ale twoja odpowiedź wygląda na poprawną - nie pomyślałem o tej metodzie - oczywiste, kiedy ją pokazano! Oznaczę to jako poprawną odpowiedź na pytanie, kiedy zapytałem.
Gilby,
Dzięki. Użyłem tego, aby wykluczyć katalogi docelowe generowane przez sbt ze wzorem: tmutil addexclusion / Users / user / dev / * / target / Users / user / dev / * / * / target / Users / user / dev / * / * / * / target / Users / user / dev / * / * / * / * / target
Traveler
Zauważ, że użycie „ * / target” było znacznie wolniejsze niż jawne użycie * / * /
Traveler