Schließen Sie Ordner mit Regex (?) Von der Sicherung der Zeitmaschine aus

2422
smnbbrv

Ich verwende einen Time Machine-Server für meine Sicherungen. Inzwischen entwickle ich viele Webanwendungen, bei denen das Projekt normalerweise aus einem Ordner mit den Anwendungsdateien, die ich sichern möchte, und aus node_modulesOrdnern (externen Bibliotheken) besteht, die ich nicht sichern möchte. In anderen Worten lautet die Ordnerstruktur zB:

projects -- app1 ---- src ---- node_modules -- I want to ignore only this folder ---- package.json -- app2 ---- whatever-else ---- node_modules -- I want to ignore only this folder ---- package.json ---- elephant.jpg 

usw.

Die Anzahl der Anwendungen ist groß und wächst (derzeit mehr als 20). Die Größe des node_modulesOrdners ist in der Regel um das Tausendfache größer als der Rest des Projekts: Die Größe ist riesig und die Anzahl der Dateien ebenfalls.

Wie werden alle node_modulesOrdner innerhalb des gesamten Systems (wie .gitignoreaber für die Zeitmaschine) ausgeschlossen? Gibt es eine Möglichkeit, die Maske zu verwenden? Ich möchte den Ordner einfach nicht ständig manuell zu den ausgeschlossenen Ordnern hinzufügen.

Mir geht es auch gut mit einem Cron-Skript, das alle N Minuten nach den neuen Ordnern sucht und sie ignoriert.

Gibt es dafür Lösungen?

6
Wenn meine Antwort Ihr Problem gelöst hat, klicken Sie auf das Häkchen unter meiner Antwort, um Ihre Frage als gelöst zu markieren. Hydraxan14 vor 6 Jahren 0

3 Antworten auf die Frage

8
Gianfranco P.

Sie können alle node_modulesOrdner im aktuellen Pfad finden und ausschließen, z. B. in Ihrem Heimatverzeichnis ( ~):

$ find `pwd` -maxdepth 3 -type d -name 'node_modules' | xargs -n 1 tmutil addexclusion 

Ein großes Lob an @peterdemartini: https://gist.github.com/peterdemartini/4c918635208943e7a042ff5ffaffa789fc1

Beachten Sie, dass die ausgeschlossenen Ordner nicht in den Time Machine-Systemeinstellungen oder beim Ausführen dieses Befehls angezeigt werden:

$ defaults read /Library/Preferences/com.apple.TimeMachine.plist SkipPaths 

Wenn Sie diesen Befehl ( tmutil addexclusion) verwenden, bleibt das ausgeschlossene Element in der Time Machine-Ausschlussliste, auch wenn Sie es verschieben. Dies ist nicht der Fall, wenn Sie Elemente aus dem Time Machine-Einstellungsbereich ausschließen. Wenn Sie den obigen Befehl mit dem Flag -p verwenden, ist der Befehl nicht klebrig und entspricht dem Ausschluss, den Sie im Einstellungsbereich Time Machine hinzufügen.

https://www.macworld.com/article/2033804/control-time-machine-von-the-command-line.html

cool, ich werde es versuchen. Vielen Dank! smnbbrv vor 6 Jahren 0
Wenn Sie eine erschöpfende Liste der ignorierten Elemente anzeigen möchten, können Sie sudo mdfind "com_apple_backup_excludeItem =" com.apple.backupd "" ausführen. (Angenommen, https://apple.stackexchange.com/questions/25779/on- os-x-what-files-are-von-a-time-machine-backup-per-Regel ausgeschlossen / 25833 (25833) CWSpear vor 5 Jahren 0
4
Hydraxan14

Reddit Post

Ich habe einen Reddit Post gefunden . Ist es das, wonach du suchst?

Unter normalen Umständen wird Time Machine automatisch ausgeführt, wenn das Sicherungslaufwerk angeschlossen ist, oder eine Stunde nach der letzten Sicherung, je nachdem, was zuletzt passiert. Dasselbe können Sie mit einem eigenen Start-Daemon erreichen. Sie würden eine Datei unter erstellen /Library/LaunchDaemons/local.tmupdate.plistund deren Inhalt auf etwa so einstellen.

Sie sollten dann das Skript so einrichten /usr/local/bin/tmupdate.sh, dass die alte Ausschlussliste gelöscht, mit den neuen erstellt und die Sicherung selbst initiiert wird:

#!/bin/sh defaults delete /Library/Preferences/com.apple.TimeMachine.plist SkipPaths mdfind 'kMDItemUserTags == "No Backup"' -0 | xargs -0 tmutil addexclusion tmutil startbackup --auto 
Dazu müssen Sie Dateien oder Ordner manuell mit einem Tag mit dem Namen "No Backup" versehen. Ich denke das ist sehr manuell Gianfranco P. vor 6 Jahren 0
2
Damien

Ich habe einen alten Beitrag wiederbelebt, aber auf der Suche nach dem gleichen habe ich dieses Tool namens Asimov ausprobiert, und es hat für mich gut funktioniert.

Asimov node_modulesdurchsucht Verzeichnisse nach (nodeJs) oder vendor(php composer) und schließt diese dann automatisch von der nächsten TimeCapsule-Sicherung aus. Es wird auch ein Cron-Job hinzugefügt, um diese Ausschlüsse zu aktualisieren.

Hoffe das hilft jemandem.

Willkommen bei Super User! Kannst du deine Antwort etwas erweitern? Wenn Sie nur auf ein Produkt zeigen, wird die Lösung nicht wirklich erklärt. Es ist besser, einige Anweisungen zur Verwendung des Produkts zur Lösung des Problems beizufügen oder zumindest zu beschreiben, was das Produkt zu einer guten Lösung macht und einen Mehrwert bietet, der über einen zufälligen Google-Treffer hinausgeht. Eine gute Anleitung, um Software hier zu empfehlen: http://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers. Vielen Dank. fixer1234 vor 6 Jahren 0