Frage Ausschließen von Ordnern durch Regex (?) Von der Zeitmaschinensicherung


Ich benutze einen Time Machine Server für meine Backups. Inzwischen entwickle ich viele Web-Anwendungen, bei denen das Projekt normalerweise aus einem Ordner mit den Anwendungsdateien besteht, die ich sichern möchte node_modules Ordner (externe Bibliotheken) Ich möchte nicht sichern. Mit anderen Worten, die Ordnerstruktur z.B. ist:

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

etc.

Die Anzahl der Anwendungen ist groß und wächst (derzeit mehr als 20), die Größe von node_modules Ordner ist normalerweise tausendmal größer als der Rest des Projekts: Die Größe ist riesig und die Anzahl der Dateien zu groß.

Wie man alle ausschließt node_modules Ordner innerhalb des gesamten Systems (wie .gitignore aber für die Zeitmaschine)? Gibt es einen Weg, es mit der Maske zu machen? Ich möchte den Ordner nicht einfach manuell zu 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?


4
2017-12-28 13:39


Ursprung


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


Antworten:


Sie können alle finden und ausschließen node_modules Ordner aus dem aktuellen Pfad, z. in Ihrem Home-Verzeichnis (~), so was:

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

Kudos zu @peterdemartini: https://gist.github.com/peterdemartini/4c918635208943e7a042ff5ffa789fc1

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 verwenden (tmutil addexclusion), das Objekt, das Sie ausschließen, verbleibt in der Time Machine-Ausschlussliste, selbst wenn Sie es verschieben, was nicht der Fall ist, wenn Sie Elemente aus dem Einstellungsbereich Time Machine ausschließen. Wenn Sie den obigen Befehl mit dem Flag -p verwenden, ist er nicht sticky und entspricht einem Ausschluss, den Sie im Einstellungsbereich von Time Machine hinzufügen.

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


6
2017-11-13 09:12



cool, ich werde es versuchen. Vielen Dank! - smnbbrv
Wenn Sie eine erschöpfende Liste dessen anzeigen möchten, was ignoriert wird, können Sie ausführen sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"(Kredit an apple.stackexchange.com/questions/25779/ ...) - CWSpear


Reddit Beitrag

Ich habe einen ... gefunden Reddit Beitrag. Ist das wonach Sie suchen?

Unter normalen Umständen läuft Time Machine beim Backup selbst   Laufwerk ist angeschlossen, oder eine Stunde nach dem letzten Backup,   was auch immer kommt zuletzt. Sie können das gleiche mit einem Start erreichen   eigener Dämon. Sie würden eine Datei erstellen unter    /Library/LaunchDaemons/local.tmupdate.plist und setze seinen Inhalt auf   etwas wie das.

Sie würden dann das Skript einrichten /usr/local/bin/tmupdate.sh zu löschen   die alte Liste der Ausschlüsse, erstellen Sie sie mit den neuen Ausschlüssen neu und initiieren Sie sie dann   die Sicherung selbst:

#!/bin/sh
defaults delete /Library/Preferences/com.apple.TimeMachine.plist SkipPaths
mdfind 'kMDItemUserTags == "No Backup"' -0 | xargs -0 tmutil addexclusion
tmutil startbackup --auto

4
2017-12-28 23:24



Dazu müssen Dateien oder Ordner manuell mit einem Tag namens tag versehen werden No Backup. Ich denke, das ist sehr manuell - Gianfranco P.


Einen alten Post wiederbeleben, aber während ich nach dem gleichen Ding suchte, endete ich damit Werkzeug namens Asimovund es hat super für mich funktioniert.

Asimov wird nach Verzeichnissen suchen node_modules (nodeJs) oder vendor (php composer), und dann automatisch aus der nächsten TimeCapsule-Sicherung ausschließen. Es wird auch einen Cron-Job hinzugefügt, um diese Ausschlüsse zu aktualisieren.

Hoffe, das hilft jemandem.


1
2018-03-06 10:46



Willkommen bei Super User! Kannst du deine Antwort etwas erweitern? Nur auf ein Produkt zu zeigen erklärt nicht wirklich, wie man die Lösung erreicht. Es ist besser, einige Anweisungen zur Verwendung des Produkts zur Lösung des Problems hinzuzufügen oder zumindest zu beschreiben, was das Produkt zu einer guten Lösung macht und einen Wert bietet, der über einen zufälligen Google-Treffer hinausgeht. Gute Anleitung zur Empfehlung von Software hier: meta.superuser.com/questions/5329/ .... Vielen Dank. - fixer1234