Я использую сервер Time Machine для своих резервных копий. Тем временем я разрабатываю множество веб-приложений, в которых проект обычно состоит из папки с файлами приложений, которые я хочу создать, и node_modules
папка (внешние библиотеки) Я не хочу делать резервную копию. Другими словами, структура папок, например. является:
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
и т.п.
Количество приложений велико и растет (в настоящее время более 20), размер node_modules
папка обычно в тысячи раз больше, чем остальная часть проекта: размер огромен и количество файлов тоже.
Как исключить все node_modules
папки в пределах всей системы (например, .gitignore
но для машины времени)? Есть ли способ сделать это маской? Я просто не хочу постоянно добавлять папку в исключенные папки вручную.
Я также отлично справляюсь с cron-скриптом, который ищет новые папки каждые N минут и заставляет их игнорировать.
Есть ли решения для этого?
Вы можете найти и исключить все node_modules
папок с текущего пути, например. в вашем домашнем каталоге (~
), как это:
$ find `pwd` -maxdepth 3 -type d -name 'node_modules' | xargs -n 1 tmutil addexclusion
Престижность @peterdemartini:
https://gist.github.com/peterdemartini/4c918635208943e7a042ff5ffa789fc1
Обратите внимание, что исключенные папки не будут отображаться в настройках системы Machine Machine или при выполнении этой команды:
$ defaults read /Library/Preferences/com.apple.TimeMachine.plist SkipPaths
Когда вы используете эту команду (tmutil addexclusion
), элемент, который вы исключаете, остается в списке исключений Time Machine, даже если вы его перемещаете, что не так, когда вы исключаете элементы из панели предпочтений Time Machine. Если вы используете указанную выше команду с флагом -p, то она не будет липкой и будет такой же, как исключение, которое вы добавляете из панели предпочтений Time Machine.
https://www.macworld.com/article/2033804/control-time-machine-from-the-command-line.html
Reddit сообщение
Я нашел Reddit сообщение, Это то, что вы ищете?
В нормальных условиях Time Machine запускается при резервном копировании
диск подключен или через час после последней резервной копии,
в зависимости от того, что наступит последним. Вы можете добиться того же самого с запуском
собственный демон. Вы должны создать файл на
/Library/LaunchDaemons/local.tmupdate.plist
и установите его содержимое для
что-то вроде этого.
Затем вы создали скрипт /usr/local/bin/tmupdate.sh
очистить
список старых исключений, воссоздайте его с новыми, затем инициируйте
сама резервная копия:
#!/bin/sh
defaults delete /Library/Preferences/com.apple.TimeMachine.plist SkipPaths
mdfind 'kMDItemUserTags == "No Backup"' -0 | xargs -0 tmutil addexclusion
tmutil startbackup --auto
Возрождение старого поста, но, ища то же самое, я в конечном итоге пытался это инструмент Азимов, и это отлично поработало для меня.
Азимов сканирует каталоги, которые ищут node_modules
(nodeJs) или vendor
(php composer) и автоматически исключить из следующей резервной копии TimeCapsule.
Он также добавит задание cron для обновления этих исключений.
Надеюсь, это поможет кому-то.