¿Cómo detener la copia de seguridad de Time Machine de los archivos de registro dentro de los contenedores de aplicaciones?

5

Time Machine no realiza copias de seguridad de los archivos de registro en ~/Library/Logs

Pero realiza copias de seguridad de los archivos dentro de los contenedores de aplicaciones. Por ejemplo, los archivos de registro en la carpeta ~/Library/Containers/com.apple.mail/Data/Library/Logs/Mail .

Los registros de Mi correo y OneDrive están agregando aproximadamente 2 GB por copia de seguridad.

Podría excluir manualmente cada uno de ~/Library/Containers/*/Data/Library/Logs , pero eso es un montón de exclusiones y sería una lista que debe agregarse cada vez que instale una nueva aplicación.

Las carpetas ~/Library/Containers/* se introdujeron para admitir aplicaciones de espacio aislado, pero Time Machine no parece haberse mantenido al día con estos cambios.

¿Hay una mejor manera de decirle a Time Machine que no haga una copia de seguridad de las carpetas /Log dentro de Contenedores?

Estoy usando OS X Yosemite 10.10.1.

    
pregunta Gilby 24.01.2015 - 12:20

1 respuesta

3

Tenía una necesidad similar y utilizaba una combinación de esta respuesta y esta respuesta se me ocurrió la siguiente solución.

Crea una lista de propiedades (por ejemplo, ~/Library/LaunchAgents/excludeLogFiles.plist ) que se cargará con 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>

En lugar de usar EnableGlobbing , que no se admite desde OS X 10.10 ( ref ), la ruta se expande por el programa que llama a /bin/zsh <args> .

Un par de cosas que encontré mientras experimentaba:

  1. El ** glob funciona con zsh pero no con bash
  2. El uso de ~ debería funcionar en la ruta para ProgramArguments , pero no sé si se puede usar el mismo truco para WatchPath . Es posible que sea necesario codificar la ruta del usuario.
respondido por el Peter 10.02.2017 - 21:14

Lea otras preguntas en las etiquetas