<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Apple Geek &#187; time machine</title>
	<atom:link href="http://theapplegeek.ru/archives/tag/time-machine/feed" rel="self" type="application/rss+xml" />
	<link>http://theapplegeek.ru</link>
	<description>Чему ты научился сегодня?</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:02:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Сбой FileVault 2 и восстановление системы из бекапа Time Capsule</title>
		<link>http://theapplegeek.ru/archives/5637</link>
		<comments>http://theapplegeek.ru/archives/5637#comments</comments>
		<pubDate>Thu, 25 Aug 2011 14:25:24 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[time machine]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=5637</guid>
		<description><![CDATA[<p>После перезагрузки Macbook Pro перестал загружаться. Грустная картинка с перечёркнутым кругом на стадии загрузки ядра.</p>]]></description>
			<content:encoded><![CDATA[<p>После перезагрузки Macbook Pro перестал загружаться. Грустная картинка с перечёркнутым кругом на стадии загрузки ядра.</p>
<p><span id="more-5637"></span>
<p>Танцы с бубном, загрузка с Recovery HD (для FileVault2 нужно держать нажатым Cmd+R всё время до появления интерфейса восстановления).</p>
<p>Загрузка в Verbose Mode показала безрадостную картину с chksum error:</p>
<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/08/01_fv.png" alt="01-fv" height="385" width="600"></p>
<p>Physical volume status Failed:</p>
<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/08/02_fv.png" alt="02-fv" height="297" width="600"></p>
<p>Ситуация усугубилась переходом на FileVault2 с CoreStorage. Всё было бы ничего, но инструментов для восстановления LVM нет. Функция Restore Disk в Disk Utility закончилась с ошибками, восстановление невозможно:</p>
<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/08/03_fv.png" alt="03-fv" height="423" width="600"></p>
<p>Почему произошёл сбой, я не могу сказать. Последний рестарт системы был плановым, завершился нормально. Последнюю неделю я много экспериментировал с созданием/удалением томов CoreStorage на других дисках, но системный диск я не трогал, да и примонтированный том изменить было бы нельзя. Можно грешить на OS X beta 10.7.2, но и здесь доказательств нет. Зашифрованный том CoreStorage на втором диске работают без замечаний, сбой произошёл только на системном.</p>
<p>При поиске в Google я нашёл и других таких же &#8220;счастливчиков&#8221;. Не буду обобщать, технологии CoreStorage и FileVault2 многообещающи, но перед их включением рекомендую как следует подумать и делать бекапы Time Machine (как минимум) и регулярные клоны в SuperDuper! (как максимум).</p>
<p>Бекап на Time Capsule у меня был в офисе. Во время вчерашнего праздника я работал мало, и я потерял всего лишь несущественный один документ.</p>
<p>Хочу порекомендовать заранее продумать Disaster Recovery Plan. Нужно знать, что потеряешь при подобной ситуации и эти потери минимизировать. Например, даже этот единственный потерянный документ остался бы, если бы я держал его в Dropbox.</p>
<p>Так как все бекапы у меня были, я рассматриваю данный инцидент как возможность проверить на практике восстановление системы.</p>
<p>Приход в офис, первостепенные рабочие вопросы решены, появилась возможность уделить время восстановлению.</p>
<p>Ноутбук подключен кабелем в LAN-порт Time Capsule (не надейтесь на WiFi, восстановление займёт намного больше времени). Приступим.</p>
<p>Включил ноутбук, нажал при старте Cmd+R для загрузки с Recovery HD. Через несколько секунд отпустил. Появилось окно ввода пароля. Не то. Мало жал на Cmd+R. Выключение, включение. На этот раз Cmd+R держал от момента появления серого экрана, продолжал при появлении яблочка, отпустил при появлении интерфейса Recovery HD.</p>
<p>Восстановление из Time Machine. Я сделал разделение учётных записей по логину и паролю, бекапы при этом пишутся в пользовательский каталог. В списке же доступных дисков был только общий сетевой диск, где бекап отсутствовал.</p>
<p>Конфигурация Time Capsule, перевод File Sharing от индивидуальных учётных записей к общему диску. Перезагрузка Time Capsule. Попытка выбора для восстановления сетевого диска TC, тишина.</p>
<p>Запуск терминала. На общем диске есть каталоги пользователей, мой бекап находится в моём каталоге. Логично. Но программа восстановления такое не понимает. Ладно. В терминале перенёс каталог sparse bundle image с бекапом в корень общего диска. Повторил выбор диска для восстановления. Наконец-то, увиделись бекапы.</p>
<p>Лёгкая прострация, последний бекап был в июле:</p>
<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/08/04_fv.png" alt="04-fv" height="454" width="600"></p>
<p>Потом вспомнил, что я переименовывал раздел с Macintosh HD на Lion. Выбрал нужный раздел в выпадающем списке, последние бекапы есть. Начал восстановление &#8211; но куда восстанавливать? Раздел на системном диске отсутствует.</p>
<p>Запустил Disk Utility. Выбрал мой диск. Удалить и создать новый раздел система даёт, но при попытке применения изменений говорит о невозможности отмонтировать диск.</p>
<p>Короткое размышление. Логично &#8211; система загружена с Recovery HD на этом же диске, а переразбивка подразумевает удаление всех разделов.</p>
<p>Вспоминаю о &#8220;<noindex><a rel="nofollow" href="http://support.apple.com/kb/DL1433" >Lion Recovery Disk Assistant</a></noindex>&#8220;, нахожу в завалах хлама флешку (2 GB хватило), устанавливаю на неё Recovery HD (на другом Lion! Если бы его не было, то пришлось бы поиграть в &#8220;Ханойскую башню&#8221;).</p>
<p>Включаю ноутбук, держу Option, выбираю Recovery HD с флешки. Disk Utility, переразбиваю диск, применяю. Работает. Выбираю восстановление с Time Capsule, выбираю нужный раздел, выбираю последний бекап. Понеслось. Time remaining 2h. Реально восстанавливалось порядка часа. 10 минут назад было &#8220;Time remaining 1h 10m&#8221;, и тут перезагрука. Загрузился, система работает. 10.7.2 beta, кстати &#8211; при установке обновлений заодно обновляется и Recovery HD.</p>
<p>Пока не знаю, буду ли я включать FileVault 2. Подожду, подумаю, может что придумаю.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/5637/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Исследование содержимого Time Machine. TimeTracker</title>
		<link>http://theapplegeek.ru/archives/5202</link>
		<comments>http://theapplegeek.ru/archives/5202#comments</comments>
		<pubDate>Fri, 04 Feb 2011 10:40:55 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=5202</guid>
		<description><![CDATA[Вчера я рассказал об исследование содержимого Time Machine с помощью BackupLoupe, которая достаточно неинтуитивна в настройке. Есть другая программа, не менее сырая, но более работоспособная &#8211; это TimeTracker. Разработала её компания, выпустившая удобную утилиту работы с пакетами Pacifist. Вот как описывают TimeTracker сами разработчики: TimeTracker is a quick-and-dirty application that displays the contents of your [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера я рассказал об исследование содержимого Time Machine с помощью <a href="http://theapplegeek.ru/archives/5193" >BackupLoupe</a>, которая достаточно неинтуитивна в настройке.</p>
<p>Есть другая программа, не менее сырая, но более работоспособная &#8211; это <noindex><a rel="nofollow" href="http://www.charlessoft.com/" >TimeTracker</a></noindex>. Разработала её компания, выпустившая удобную утилиту работы с пакетами Pacifist.</p>
<p><span id="more-5202"></span></p>
<p>Вот как описывают TimeTracker сами разработчики:</p>
<blockquote>
<p>TimeTracker is a quick-and-dirty application that displays the contents of your Time Machine backups, and shows what&#8217;s changed since the previous backup. TimeTracker is in an extremely early state, and is as such very unpolished (for example, it doesn&#8217;t yet have an icon).</p>
</blockquote>
<p>Да, даже иконка не нарисована. Однако программа смогла при старте подключиться сама к образу TimeMachine:</p>
<p style="clear: both"><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/01_tt-thumb3.png" height="192" width="300" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>Показала все бэкапы с указанием их размера:</p>
<p style="clear: both"><img src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/02_tt-thumb1.png" height="315" width="499" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>И отмонтировала образ TimeMachine при выходе.</p>
<p>За всё это можно простить отсутствие иконки и перспектив развития.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/5202/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Исследование содержимого Time Machine. BackupLoupe</title>
		<link>http://theapplegeek.ru/archives/5193</link>
		<comments>http://theapplegeek.ru/archives/5193#comments</comments>
		<pubDate>Thu, 03 Feb 2011 18:14:11 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=5193</guid>
		<description><![CDATA[Порой глядишь на индикатор работающей Time Machine и в упор не понимаешь, что за дикие гигабайты данных пишутся в бэкап. И непонятно, что происходит - то ли так и должно быть, то ли слетела база и архив Time Machine пересоздаётся с нуля (в данном случае это объяснение точно не подходит), то ли в исключения не добавлен какой-то каталог]]></description>
			<content:encoded><![CDATA[<p>Порой глядишь на индикатор работающей Time Machine и в упор не понимаешь, что за дикие гигабайты данных пишутся в бэкап:</p>
<p style="clear: both"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/01-bl2-thumb.png" height="127" width="271" style=" text-align: center; display: block; margin: 0 auto 10px;"   alt="Исследование содержимого Time Machine с помощью BackupLoupe" title="Исследование содержимого Time Machine с помощью BackupLoupe" /></p>
<p>И непонятно, что происходит &#8211; то ли так и должно быть, то ли слетела база и архив Time Machine пересоздаётся с нуля (в данном случае это объяснение точно не подходит), то ли <a href="http://theapplegeek.ru/archives/3044" >в исключения не добавлен</a> какой-то каталог.</p>
<p><span id="more-5193"></span></p>
<p>Периодически я пользуюсь <a href="http://theapplegeek.ru/archives/3553" >скриптом на Python</a>, который показывает список файлов, помещённых в бэкап, но он не всегда хорошо работает. Хинт &#8211; сначала вручную подмонтируйте образ Time Machine, и уже на него направливайте скрипт. Не пытайтесь его запускать на образе, который смонтировала сама Time Machine, в большинстве случаев скрипт заканчивается неудачно.</p>
<p>Мне давно попадалась на глаза программа <noindex><a rel="nofollow" href="http://www.soma-zone.com/BackupLoupe/" >BackupLoupe</a></noindex> от разработчиков утилиты <noindex><a rel="nofollow" href="http://www.soma-zone.com/RedHand/" >RedHand</a></noindex>, делающей снимок человека, который неудачно попытался разблокировать ваш компьютер. Но в прошлый раз мне не удалось заставить BackupLoupe нормально работать.</p>
<p>Сейчас же программа после нескольких странных движений заработала. И теперь я могу посмотреть через графический интерфейс, что же именно писалось во время последнего запуска Time Machine:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2011/02/02_bl-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/02_bl-thumb.png" height="284" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;"  alt="Исследование содержимого Time Machine с помощью BackupLoupe" title="Исследование содержимого Time Machine с помощью BackupLoupe" /></a></noindex></p>
<p>Например, в случае, послужившем поводом для написания статьи, я забыл внести в исключения Time Machine каталог iTunes U, куда списал серию видео в формате HD.</p>
<p>Напомню снова &#8211; перед сканированием подключите вручную образ Time Machine (у меня он называется ole-mac.sparsebundle и лежит на Time Capsule). Но не забудьте по окончанию работы вручную его отмонтировать, так Time Machine останавливается на стадии &#8220;Making backup disk available&#8221; а потом вываливается с ошибкой о невозможности подключить образ.</p>
<p>А телодвижения были простые &#8211; сначала нужно вручную подключить образ Time Machine, потом в настройках BackupLoupe отключить &#8220;Use default Time Machine locations&#8221; и в &#8220;Additional paths&#8221; добавить полный путь к смонтированному образу вида &#8220;/Volumes/Time Machine Backups/Backups.backupdb/ole-mac&#8221; (подправьте точку монтирования и имя образа на те, которые действительны для вашей конфигурации):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2011/02/03_bl-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/03_bl-thumb.png" height="154" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;"  alt="Исследование содержимого Time Machine с помощью BackupLoupe" title="Исследование содержимого Time Machine с помощью BackupLoupe" /></a></noindex></p>
<p>Потом выберите в первом списке вместо пиктограммы диска имя с символом каталога, а затем имя машины:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2011/02/04_bl-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2011/02/04_bl-thumb.png" height="176" width="226" style=" text-align: center; display: block; margin: 0 auto 10px;"  alt="Исследование содержимого Time Machine с помощью BackupLoupe" title="Исследование содержимого Time Machine с помощью BackupLoupe" /></a></noindex></p>
<p>Можно сканировать и смотреть, что же именно было записано в бэкап.</p>
<p>Программа BackupLoupe хоть и может слегка вывихнуть мозг своим странным поведением и сбоями, но вполне подходит для анализа Time Machine. Рекомендую.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/5193/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Использование SparseBundle Image для хранения базы данных Yojimbo, или как уменьшить объём бекапа</title>
		<link>http://theapplegeek.ru/archives/3602</link>
		<comments>http://theapplegeek.ru/archives/3602#comments</comments>
		<pubDate>Tue, 23 Mar 2010 09:20:56 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[filesystems]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3602</guid>
		<description><![CDATA[Системы хранения заметок &#8211; достаточно интересная категория программ. Я до сих пор не нашёл идеальной программы, но постепенно движусь в этом направлении. Evernote не нравится сохранением web-страниц, Together &#8211; странной дисковой активностью, Yojimbo &#8211; отсутствием программы под iPhone. Недавно в комментариях к статье &#8220;Синхронизация данных Yojimbo через Dropbox&#8221; мы с 8bituser обсуждали достоинства и недостатки [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/01_yojimbosparse-thumb1.png" height="160" align="right" width="160" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>Системы хранения заметок &#8211; достаточно интересная категория программ. Я до сих пор не нашёл идеальной программы, но постепенно движусь в этом направлении. Evernote не нравится сохранением web-страниц, Together &#8211; странной дисковой активностью, Yojimbo &#8211; отсутствием программы под iPhone.</p>
<p>Недавно в комментариях к статье &#8220;<a href="http://theapplegeek.ru/archives/3499" >Синхронизация данных Yojimbo через Dropbox</a>&#8221; мы с <noindex><a rel="nofollow" href="http://twitter.com/8bituser" >8bituser</a></noindex> обсуждали достоинства и недостатки двух систем хранения заметок (<noindex><a rel="nofollow" href="http://www.reinventedsoftware.com/together/" >Together</a></noindex> и <noindex><a rel="nofollow" href="http://www.barebones.com/products/Yojimbo/" >Yojimbo</a></noindex>). Я приведу его аргументы в пользу Together, они очень полезны:</p>
<p><span id="more-3602"></span></p>
<blockquote>
<p>А я с Yojimbo кое-как переполз на Together. У меня файл базы был 140мб, каждый бэкап тайммашины&#8230;</p>
<p>И потом хотелось как-то на айфоне иметь доступ ко всему этому. В Together всё хранится не в базе, а открыто. Сделал его базу прямо в стандартной папке Documents (по дефолту в папке Together, которая в Documents, так не очень удобно и не красиво показалось), скрыл то, что мне не надо (там порядка 8 папок и файл Together.lock, теперь имею там каталоги Notes, Documents, Web Pages, Images и их симлинкаю на дропбокс, и таким образом всё есть на айфоне, причем быстро, не 140мб каждый раз пересылать туда-сюда, а только новые или измененные файлы.</p>
<p>Ну и достаточно удобно к этим папкам доступ из Stacks в режиме List могу открыть любой файл даже без открытого самого Together.</p>
<p>Плюс когда в Together кидаешь кусочек чего-то со страницы, он запоминает линк страницы и можно даже этот кусочек подредактировать удалив что-то или добавив.</p>
<p>Смартфолдеры тоже есть, с тэгами тоже не особо складывается, разве что для тех же смартфолдеров они нужны помимо раскрашивания.</p>
<p>Из минусов только то, что кусочки с веб-страниц кидать нужно в Shelf, а не прямо на иконку в доке, но уже привык, а всё остальное очень похоже, чуть больше удобности и гибкости. Причем у этого Shelf очень удобно быстро заметку написать или скопипастить в него.</p>
<p>Одни плюсы вобщем, переходи, чем дальше с Yojimbo тем болезненней переход :))</p>
</blockquote>
<p>Да, Yojimbo невозможно использовать на iPhone, и это его большой минус. Я до сих пор ещё не определился, оставаться ли на Yojimbo или переходить на Together. Мне больше нравится первый. Но пока я стараюсь вести заметки в обеих системах. Сравнительный анализ &#8211; это тема отдельной статьи.</p>
<p>Сейчас же я хочу показать, как можно обойти главную проблему Yojimbo, а именно то, что данные хранятся в базе данных SQLite3 в едином файле и малейшее изменение приводит к необходимости записи в Time Machine всего файла. Для небольших баз это несущественно, но если ваши данные занимают сотни мегабайт, то это становится уже ощутимой проблемой.</p>
<p>Идея проста &#8211; нужно разместить данные в SparseBundle Image. Этот образ представляет собой набор 8-ми мегабайтных файлов (band&#8217;ов), и при изменении его содержимого меняются далеко не все band&#8217;ы, что даёт возможность уменьшить объём данных, записываемых в бекап Time Machine.</p>
<h2>Подготовка SparseBundle Image</h2>
<p>Создать образ можно или через программу Disk Utility, или в консоли через <noindex><a rel="nofollow" href="http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html" >hdiutil</a></noindex>. Через графический интерфейс для меня сложнее, поэтому именно этот метод я и рассмотрю :-)</p>
<p>Запускаем Disk Utility (/Applications/Utilities/Disk Utility), создаём образ:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/02_yojimbosparse-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/02_yojimbosparse-thumb.png" height="237" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Я решил разместить образ в каталоге Documents, но вы его можете расположить там, где вам удобно. Параметры такие:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/03_yojimbosparse-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/03_yojimbosparse-thumb.png" height="459" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Мне достаточно пока 100 MB, формат файловой системы стандартный &#8220;Mac OS X Extended (Journaled)&#8221;, схему разделов я привычно поменял с &#8220;<a href="http://theapplegeek.ru/archives/1370" >Apple Partition Map</a>&#8221; на &#8220;<a href="http://theapplegeek.ru/archives/1428" >GUID Partition Map</a>&#8220;. Самое главное &#8211; поставить формат образа &#8220;sparse bundle disk image&#8221;.</p>
<p>Если вы хотите секретности, то можно создать образ с шифрацией AES (128 бит вполне достаточно, но у вас могут быть другие соображения):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/04_yojimbosparse2-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/04_yojimbosparse2-thumb.png" height="178" width="428" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Ту же самую операция можно выполнить и через консоль:</p>
<pre>
$ hdiutil create -size 100m -type SPARSEBUNDLE -imagekey \
  sparse-band-size=4096 -fs JHFS+X -volname Yojimbo -layout GPTSPUD \
  ~/Documents/Yojimbo
</pre>
<p>Так даже лучше поступить, так как можно изменить размер band&#8217;а со стандартных 8 MB до 2 MB (4096 512-байтовых блока) или даже до минимального значения 1 MB (2048 512-байтовых блока).</p>
<h3>Увеличение размера образа</h3>
<p>Размер образа я поставил 100 MB. При необходимости можно его увеличить. Через Disk Utility мне это сделать не удалось (система рапортовала, что размер изменён, затем о том, что образ не изменён):</p>
<pre>
<small>2010-03-12 17:33:14 +0200: Growing partition 0 of “Yojimbo.sparsebundle” from 100 MB to 500 MB.
2010-03-12 17:33:14 +0200: Resizing “Yojimbo.sparsebundle” was successful.
2010-03-12 17:33:26 +0200: Image “Yojimbo.sparsebundle” will not be changed.</small>
</pre>
<p>Поэтому я вернулся в любимую консоль и там это сделал быстро и логично.</p>
<p>Если образ уже примонтирован, то нужно его отмонтировать:</p>
<pre>
$ hdiutil eject /Volumes/Yojimbo
</pre>
<p>Увеличение максимального размера образа до 500 MB (обратите внимание, что размер образа увеличивается по необходимости, а не выделеятся весь заявленный размер):</p>
<pre>
$ hdiutil resize -size 500m ~/Documents/Yojimbo.sparsebundle
</pre>
<p>Если в образе было много изменений, то можно его сжать (но для данного случая это почти бессмысленно, предварительно нужно сделать <a href="http://theapplegeek.ru/archives/3520" >vacuum</a> на базу данных SQLite, и только потом сжимать образ):</p>
<pre>
$ hdiutil compact ~/Documents/Yojimbo.sparsebundle
</pre>
<p>Монтирование образа:</p>
<pre>
$ hdiutil mount ~/Documents/Yojimbo.sparsebundle
</pre>
<p>Образ также можно примонтировать, открыв его в Finder.</p>
<p>Я заодно меняю иконку для этого образа, перетаскивая png-файл, найденный в Google на иконку в Get Info:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/05_yojimbosparse-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/05_yojimbosparse-thumb.png" height="436" width="386" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Затем меняю иконку и для смонтированного образа:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/06_yojimbosparse-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/06_yojimbosparse-thumb.png" height="416" width="386" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Теперь всё красиво.</p>
<h2>Автоподключение образа при старте системы</h2>
<p>Воспользуемся небольшим трюком &#8211; для автоподключения образа нужно его поместить в Login Items пользователя. Заходим в &#8220;System Preferences/Accounts/Login Items&#8221;. Рядом открываем окно Finder с папкой Documents. Перетаскиваем образ Yojimbo.sparsebundle в список Login Items:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/07_yojimbosparse-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/07_yojimbosparse-thumb.png" height="260" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Теперь после старта системы образ будет смонтирован в точку /Volumes/Yojimbo. Если вы выбрали шифрацию, то лучше поставить автозапоминание пароля в KeyChain, иначе придётся каждый раз этот пароль вводить (но это опять-таки &#8220;up to you&#8221; &#8211; достаточно сомнительное решение вводить шифрацию, и по сути обходить эту шифрацию, ставя автоввод пароля).</p>
<h2>Перенос данных Yojimbo в SparseBundle</h2>
<p>Перед этой операцией данные уже должны быть, для чего нужно хотя бы раз запустить Yojimbo. Дальнейшие операции лучше проводить в терминале, &#8220;Alias&#8221; в Finder &#8211; это далеко не unix symbolic link. Да, из Yojimbo нужно выйти.</p>
<pre>
$ cd ~/Library/Application\ Support
</pre>
<p>Делаем резервную копию данных:</p>
<pre>
$ mv Yojimbo Yojimbo.backup
</pre>
<p>Создаём символический линк, говорящий, что все данные будут располагаться в смонтированном образе:</p>
<pre>
$ ln -s /Volumes/Yojimbo .
$ ls -al Yojimbo
<small>lrwxr-xr-x  1 ctrld  staff  16 Mar 12 18:18 Yojimbo -> /Volumes/Yojimbo</small>
</pre>
<p>Копируем все файлы, включая скрытые, начинающиеся с &#8220;.&#8221;. Сейчас перечень такой, но в других версиях он может поменяться, поэтому команду копирования возможно придётся адаптировать</p>
<pre>
$ ls -a Yojimbo.backup/
<small>.ContentIndex.version	ContentIndex.skindex	Database.sqlite		State.plist
SyncState.plist</small>
$ cp Yojimbo.backup/{.[A-Z]*,[A-Z]*} /Volumes/Yojimbo/
$ ls -a Yojimbo/
<small>.ContentIndex.version	.fseventsd		Database.sqlite		SyncState.plist
.Trashes		ContentIndex.skindex	State.plist</small>
</pre>
<p>Символический линк сделан. Запускаем Yojimbo, убеждаемся, что все данные на месте.</p>
<p>Но не беспокойтесь, если что-то пошло не так &#8211; старые данные есть в каталоге ~/Library/Application\ Support/Yojimbo.backup. Откат:</p>
<pre>
$ cd ~/Library/Application\ Support
$ rm Yojimbo
$ cp -r Yojimbo.backup Yojimbo
</pre>
<h2>Эффект от перехода на SparseBundle Image</h2>
<p>Как определить, что band поменялся? Достаточно посмотреть на время его модификации. Я сейчас покажу данные, которые я собрал для старого образа, в котором размер band был 8 MB.</p>
<p>После изменения одного комментария в 11:55 поменялись два файла &#8211; 0 и 1:</p>
<pre>
$ ls -al ~/Documents/Yojimbo.sparsebundle/bands
<b>-rw-r--r--   1 ctrld  staff  8388608 Mar 11 11:55 0</b>
<b>-rw-r--r--   1 ctrld  staff  8388608 Mar 11 11:55 1</b>
-rw-r--r--   1 ctrld  staff  8388608 Mar 11 11:26 2
-rw-r--r--   1 ctrld  staff  5386240 Mar 11 11:43 3
-rw-r--r--   1 ctrld  staff  2437120 Mar 10 20:51 5
-rw-r--r--   1 ctrld  staff   913408 Mar  9 16:21 6
-rw-r--r--   1 ctrld  staff  8388608 Mar  9 16:21 b
-rw-r--r--   1 ctrld  staff  1757184 Mar  9 16:21 c
</pre>
<p>Это значит, что в Time Machine будет помещены два файла суммарным размером 16 MB, но не весь файл базы данных 25.7 MB, как было бы без SparseBundle:</p>
<pre>
$ ls -al /Volumes/Yojimbo/Database.sqlite
-rw-r--r--@  1 ctrld  staff  26961920 Mar 11 11:50 Database.sqlite
</pre>
<p>Если уменьшить размер band до 2 MB, то количество файлов может уменьшиться. Конечно же, чем больше база данных, тем больше эффект.</p>
<h2>Копируются ли данные в Time Machine из открытого образа SparseBundle Image?</h2>
<p>Проделаю эксперимент. Запускаю Yojimbo и меняю один комментарий.</p>
<pre>
$ ls -al /Volumes/Yojimbo/Database.sqlite
-rw-r--r--@  1 ctrld  staff  26961920 Mar 11 12:00 Database.sqlite

$ ls -al ~/Documents/Yojimbo.sparsebundle/bands
<b>-rw-r--r--   1 ctrld  staff  8388608 Mar 11 12:01 0</b>
<b>-rw-r--r--   1 ctrld  staff  8388608 Mar 11 12:01 1</b>
-rw-r--r--   1 ctrld  staff  8388608 Mar 11 11:26 2
<b>-rw-r--r--   1 ctrld  staff  5386240 Mar 11 12:00 3</b>
-rw-r--r--   1 ctrld  staff  2437120 Mar 10 20:51 5
-rw-r--r--   1 ctrld  staff   913408 Mar  9 16:21 6
-rw-r--r--   1 ctrld  staff  8388608 Mar  9 16:21 b
-rw-r--r--   1 ctrld  staff  1757184 Mar  9 16:21 c
</pre>
<p>Поменялись три файла &#8211; 0, 1 и 3.</p>
<p>С помощью dtrace смотрю за файлами, которые обрабатывает демон backupd Time Machine:</p>
<pre>
open:entry backupd /Users/ctrld/Documents/Yojimbo.sparsebundle/bands/3
open:entry backupd /Users/ctrld/Documents/Yojimbo.sparsebundle/bands/0
open:entry backupd /Users/ctrld/Documents/Yojimbo.sparsebundle/bands/1
</pre>
<p>Да, при открытом образе данные помещаются в бекап (в отличие от домашнего каталога в FileVault без выхода из системы).</p>
<h2>Восстановление данных из бекапа</h2>
<p>А вот здесь моего терпения не хватило, продолжу в другой раз :-) Могу сказать, что первая попытка восстановления из бекапа прошла безупречно, но когда я начал повторять процесс, у меня возникли сложности с dtrace, и я отложил исследование.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3602/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Применение расширенных атрибутов для исключения из Time Machine</title>
		<link>http://theapplegeek.ru/archives/3584</link>
		<comments>http://theapplegeek.ru/archives/3584#comments</comments>
		<pubDate>Mon, 22 Mar 2010 11:24:48 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3584</guid>
		<description><![CDATA[В прошлой статье я рассказал об аттрибуте, который говорит Time Machine не делать резервную копию файла. Сегодня продемонстрирую, как его можно использовать. Берём два файла. Для первого (bigfile1.bin) выставим аттрибут com.apple.metadata:com_apple_backup_excludeItem=&#8217;com.apple.backupd&#8217;, для другого (bigfile2.bin) &#8211; нет: $ touch bigfile1.bin $ touch bigfile2.bin $ xattr -w com.apple.metadata:com_apple_backup_excludeItem \ com.apple.backupd bigfile1.bin $ xattr -l bigfile1.bin com.apple.metadata:com_apple_backup_excludeItem: com.apple.backupd [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://theapplegeek.ru/archives/3583" >В прошлой статье</a> я рассказал об аттрибуте, который говорит Time Machine не делать резервную копию файла. Сегодня продемонстрирую, как его можно использовать.</p>
<p>Берём два файла. Для первого (bigfile1.bin) выставим аттрибут com.apple.metadata:com_apple_backup_excludeItem=&#8217;com.apple.backupd&#8217;, для другого (bigfile2.bin) &#8211; нет:</p>
<pre>$ touch bigfile1.bin
$ touch bigfile2.bin
$ xattr -w com.apple.metadata:com_apple_backup_excludeItem \
   com.apple.backupd bigfile1.bin
$ xattr -l bigfile1.bin
com.apple.metadata:com_apple_backup_excludeItem: com.apple.backupd
$ xattr -l bigfile2.bin
$
</pre>
<p><span id="more-3584"></span></p>
<p>Также сделаем два каталога, в которые поместим несколько файлов без расширенных атрибутов, и на первый выставим исключение. Тест покажет, поместит ли Time Machine файлы из запрещённого каталога в архив или нет.</p>
<pre>$ mkdir bigdir1
$ touch bigdir1/bigfile3.bin
$ touch bigdir1/bigfile4.bin
$ xattr -w com.apple.metadata:com_apple_backup_excludeItem com.apple.backupd bigdir1
$ xattr -l bigdir1
com.apple.metadata:com_apple_backup_excludeItem: com.apple.backupd
$ xattr -l bigdir1/bigfile4.bin
$
$ mkdir bigdir2
$ touch bigdir2/bigfile5.bin
$ touch bigdir2/bigfile6.bin
$ xattr -l bigdir2
$</pre>
<p>Запускаем Time Machine, проводим бекап. Смотрим результат.</p>
<p>Монтируем образ Time Machine с сетевой Time Capsule:</p>
<pre>$ hdiutil mount /Volumes/Meow/ole-mac.sparsebundle</pre>
<p>Ищем, какие файлы занесены в архив Time Machine:</p>
<pre>
$ mdfind \
    -onlyin '/Volumes/Time Machine Backups/Backups.backupdb/ole-mac' \
    '_kTimeMachineOldestSnapshot >  $time.now(-7200)' | grep -e bigfile -e bigdir
<small>/Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-13-191711/Macintosh HD/Users/ctrld/bigdir2
/Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-13-191711/Macintosh HD/Users/ctrld/bigdir2/bigfile5.bin
/Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-13-191711/Macintosh HD/Users/ctrld/bigdir2/bigfile6.bin
/Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-13-191711/Macintosh HD/Users/ctrld/bigfile2.bin</small></pre>
<p>Освобождаем образ Time Machine</p>
<pre>$ hdiutil eject /Volumes/Time\ Machine\ Backups/</pre>
<p>Из полученных результатов видно, что при установке атрибута com_apple_backup_excludeItem данные действительно не помещаются в архив Time Machine. Если атрибут выставлен для каталога, то не помещается ни сам каталог, ни его содержимое.</p>
<p>Само собой исключение каталогов в опциях Time Machine никто не отменяет, но бывают ситуации, когда проще сделать исключение каталогов через командную строку. И опять-таки &#8211; знание никогда не будет лишним.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3584/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Расширенные аттрибуты или почему некоторые файлы не пишутся в Time Machine</title>
		<link>http://theapplegeek.ru/archives/3583</link>
		<comments>http://theapplegeek.ru/archives/3583#comments</comments>
		<pubDate>Fri, 19 Mar 2010 08:09:34 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3583</guid>
		<description><![CDATA[Я разбирался с базой данных Yojimbo, и в процессе обнаружил, что в бекап Time Machine помещаются не все файлы. Такая мистика мне не по нраву &#8211; если что-то в системе происходит, то это должно иметь какие-то явные и объяснимые причины. Вот содержимое каталога Yojimbo (при запущенной программе, о чём говорят lock-файлы): $ cd "Library/Application Support/Yojimbo" [...]]]></description>
			<content:encoded><![CDATA[<p>Я разбирался с базой данных Yojimbo, и в процессе обнаружил, что в бекап Time Machine помещаются не все файлы. Такая мистика мне не по нраву &#8211; если что-то в системе происходит, то это должно иметь какие-то явные и объяснимые причины.</p>
<p>Вот содержимое каталога Yojimbo (при запущенной программе, о чём говорят lock-файлы):</p>
<pre>
$ cd "Library/Application Support/Yojimbo"
$ ls -al
<small>-rw-------@   1 ctrld  staff       759 Mar 13 16:33 .ContentIndex.lock
-rw-r--r--@   1 ctrld  staff       369 Mar 13 15:38 .ContentIndex.version
-rw-------@   1 ctrld  staff       759 Mar 13 16:33 .Yojimbo.lock
-rw-r--r--@   1 ctrld  staff    532480 Mar 13 15:38 ContentIndex.skindex
-rw-r--r--@   1 ctrld  staff  28815360 Mar 13 16:33 Database.sqlite
-rw-r--r--    1 ctrld  staff      2731 Mar 13 15:38 State.plist</small>
</pre>
<p><span id="more-3583"></span></p>
<p>Но в Time Machine помещены лишь эти файлы:</p>
<pre>
$ hdiutil mount /Volumes/Meow/ole-mac.sparsebundle
$ ls -al "/Volumes/Time Machine Backups/Backups.backupdb/ole-mac/Latest/Macintosh HD/Users/ctrld/Library/Application Support/Yojimbo/"
<small>-rw-r--r--@  1 ctrld  staff  28815360 Mar 13 15:42 Database.sqlite
-rw-r--r--@  1 ctrld  staff      2731 Mar 13 15:38 State.plist</small>
$ hdiutil eject /Volumes/Time\ Machine\ Backups/
</pre>
<p>Вы обратили на знак &#8220;@&#8221; после прав доступа? Он обозначает, что файлу или каталогу назначены &#8220;расширенные аттрибуты&#8221;. Просмотреть их можно командой &#8220;xattr -l filename&#8221;. Пройдёмся по файлам:</p>
<pre>
$ xattr -l .ContentIndex.lock
com.apple.metadata:com_apple_backup_excludeItem:
<small>00000000  62 70 6C 69 73 74 30 30 5F 10 11 63 6F 6D 2E 61  |bplist00_..com.a|
00000010  70 70 6C 65 2E 62 61 63 6B 75 70 64 08 00 00 00  |pple.backupd....|
00000020  00 00 00 01 01 00 00 00 00 00 00 00 01 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00 00 00 00 00 1C           |.............|
0000003d</small>
</pre>
<p>Тот же самый аттрибут com_apple_backup_excludeItem = &#8216;com.apple.backupd&#8217; выставлен для .ContentIndex.version, .Yojimbo.lock и ContentIndex.skindex.</p>
<p>Теперь понятно, почему файлы исключены из бекапа Time Machine.</p>
<h2>Работа с хранилищем метаданных</h2>
<p>Метаданные из файлов сервисом mds (Metadata Server) переносятся в центральное хранилище. На <noindex><a rel="nofollow" href="http://www.macosxhints.com/article.php?story=20080328025026826" >Mac OS X Hints</a></noindex> нашёл полезную команду, которая запрашивает файлы, для которых выставлен аттрибут исключения из Time Machine:</p>
<pre>
$ sudo mdfind "com_apple_backup_excludeItem == 'com.apple.backupd'"
<small>/Users/ctrld/Library/Application Support/Yojimbo/.ContentIndex.version
/Users/ctrld/Library/Application Support/Yojimbo/ContentIndex.skindex
/Users/ctrld/Library/Application Support/Yojimbo/.ContentIndex.lock
/Users/ctrld/Library/Application Support/Yojimbo/.Yojimbo.lock
...</small>
</pre>
<p>К данным также можно обратиться командой mdls:</p>
<pre>
$ mdls "/Users/ctrld/Library/Application Support/Yojimbo/.ContentIndex.version"
<small>com_apple_backup_excludeItem = "com.apple.backupd"
kMDItemContentType           = ""
kMDItemFSContentChangeDate   = 2010-03-13 18:34:34 +0200
kMDItemFSCreationDate        = 2010-03-13 18:34:34 +0200
kMDItemFSCreatorCode         = ""
kMDItemFSFinderFlags         = 0
kMDItemFSHasCustomIcon       = 0
kMDItemFSInvisible           = 1
kMDItemFSIsExtensionHidden   = 0
kMDItemFSIsStationery        = 0
kMDItemFSLabel               = 0
kMDItemFSName                = ".ContentIndex.version"
kMDItemFSNodeCount           = 0
kMDItemFSOwnerGroupID        = 20
kMDItemFSOwnerUserID         = 501
kMDItemFSSize                = 369
kMDItemFSTypeCode            = ""</small>
</pre>
<p>В случае необходимости можно удалить все данные из центрального хранилища, и оно будет автоматически перестроено (этот процесс длительный):</p>
<pre>
$ sudo mdutil -E /
</pre>
<p>Учтите также, что после удаления базы Time Machine будет делать полный бекап всей системы.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение списка файлов, помещённых в бекап Time Machine за последние два часа</title>
		<link>http://theapplegeek.ru/archives/3553</link>
		<comments>http://theapplegeek.ru/archives/3553#comments</comments>
		<pubDate>Tue, 09 Mar 2010 11:53:35 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3553</guid>
		<description><![CDATA[Бывало ли у вас такое, что Time Machine просто доводит до белого каления, когда нужно срочно закончить работу, а она начинает копировать какие-то дикие гигабайты непонятно чего? Недавно я столкнулся с этим. Понятно, что проблема была отнюдь не в Time Machine, а в рабочих файлах размером в десяток гигабайт и свежесписанных эпизодах зимней Олимпиады в [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/01_timemachine-thumb1.png" height="160" align="right" width="160" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>Бывало ли у вас такое, что Time Machine просто доводит до белого каления, когда нужно срочно закончить работу, а она начинает копировать какие-то дикие гигабайты непонятно чего? Недавно я столкнулся с этим. Понятно, что проблема была отнюдь не в Time Machine, а в рабочих файлах размером в десяток гигабайт и свежесписанных эпизодах зимней Олимпиады в iTunes. Но от этого было не легче, я смог разобраться с этим после окончания работы, а до этого постоянно жал на &#8220;Stop Backup&#8221; (сейчас я подумал, что вполне мог бы просто отключить запуск Time Machine при работе от аккумулятора и выдернуть питание &#8211; этот метод гораздо элегантнее).</p>
<p>Когда я освободился, то с помощью <a href="http://theapplegeek.ru/archives/3437" >DaisyDisk</a> нашёл пожирателей дискового пространства. Теперь моя конфигурация исключений для Time Machine такая:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/03/02_timemachine-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/03/02_timemachine-thumb.png" height="349" width="448" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Но в процессе размышлений я подумал, что неплохо было бы знать, что именно поместилось в бекап Time Machine &#8211; так можно хотя бы постфактум найти каталоги, содержимое которых не нужно было копировать, и добавить их в исключения.</p>
<p><span id="more-3553"></span></p>
<p>Сказано &#8211; сделано. Я нашёл две очень полезных статьи &#8211; &#8220;<noindex><a rel="nofollow" href="http://earthlingsoft.net/ssp/blog/2008/03/x5_time_machine" >X.5 Time Machine</a></noindex>&#8221; и &#8220;<noindex><a rel="nofollow" href="http://www.entropy.ch/blog/Mac+OS+X/2008/03/23/List-Files-and-Sizes-in-Last-Time-Machine-Backup.html" >List Files and Sizes in Last Time Machine Backup</a></noindex>&#8220;. Во второй статье приведёны скрипты на Perl и Python, которые показывают файлы, помещённые в бекап Time Machine за последние два часа с указанием их размеров.</p>
<p>Выделенный жирным текстом путь к бекапу нужно подставить свой:</p>
<pre>
#!/usr/bin/env python

import commands
import os.path
import sys
from Foundation import NSDate

backupdir = <b>"/Volumes/Time Machine Backups/Backups.backupdb/ole-mac"</b>
time = NSDate.timeIntervalSinceReferenceDate() - 7200

if not os.path.exists(backupdir):
    raise Exception, "backupdir %s doesn't exist (need to mount backup volume?)" % backupdir

cmd = "mdfind -onlyin '%s' '_kTimeMachineOldestSnapshot > %s'" % (backupdir, time);
items = [(x, os.path.getsize(x)) for x in commands.getoutput(cmd).split("\n") if not os.path.isdir(x)]

def cmp(a, b):
    if b[1] < a[1]:
        return -1
    if b[1] == a[1]:
        return 0
    return 1

items.sort(cmp)

for item in items:
    print "%10d %s " % (item[1], item[0])
</pre>
<p>Скрипт выдаёт результаты в виде:</p>
<pre>
<small>   3854336 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh HD/Users/ctrld/Library/Preferences/com.apple.LaunchServices.QuarantineEvents
    930897 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh HD/Users/ctrld/Library/Application Support/Speed Download/Speed Download Queue.plist
    385024 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh HD/Users/ctrld/Library/Application Support/AddressBook/AddressBook-v22.abcddb
    281895 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh HD/Users/ctrld/Library/Cookies/Cookies.plist
    274722 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-122311/Macintosh HD/Users/ctrld/Library/Cookies/Cookies.plist
    198082 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh HD/Users/ctrld/Library/Safari/History.plist
    197821 /Volumes/Time Machine Backups/Backups.backupdb/ole-mac/2010-03-09-122311/Macintosh HD/Users/ctrld/Library/Safari/History.plist</small>
</pre>
<p>Результаты познавательны - например, я понял, что пора бы перестроить базу Launch Services, слишком много записей в базе данных SQLite com.apple.LaunchServices.QuarantineEvents.</p>
<p>К сожалению, <noindex><a rel="nofollow" href="http://www.fernlightning.com/doku.php?id=software:misc:tms" >утилита tms</a></noindex>, которая делает то же самое и при этом гораздо более функциональна, сейчас не развивается и не запускается под Mac OS X 10.6.</p>
<p>Основой для поиска файлов является команда mdfind, ищущая в каталоге Time Machine файлы, которые были скопированы за последние 2 часа (7200 секунд):</p>
<pre>
$ mdfind -onlyin '/Volumes/Time Machine Backups/Backups.backupdb/ole-mac' '_kTimeMachineOldestSnapshot >  $time.now(-7200)'
</pre>
<p>К каждому файлу, помещаемому в Time Machine, добавляются метаданные, показывающие время помещения в snapshot:</p>
<pre>
$ xattr -l /Volumes/Time\ Machine\ Backups/Backups.backupdb/ole-mac/2010-03-09-123057/Macintosh\ HD/Users/ctrld/bin/cfcurl.pl
com.apple.metadata:_kTimeMachineNewestSnapshot:
<small>00000000  62 70 6C 69 73 74 30 30 33 42 2D 63 C3 7F 00 00  |bplist003B-c....|
00000010  00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00  |................|
00000020  00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  00 11                                            |..|
00000032</small>

com.apple.metadata:_kTimeMachineOldestSnapshot:
<small>00000000  62 70 6C 69 73 74 30 30 33 41 B1 3C 7C 48 00 00  |bplist003A.<|H..|
00000010  00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00  |................|
00000020  00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  00 11                                            |..|
00000032</small>
</pre>
<p>Тема разбора Time Machine интересна и я займусь этим в обозримом будущем.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3553/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Файлы и каталоги, исключаемые Time Machine при резервном копировании</title>
		<link>http://theapplegeek.ru/archives/3044</link>
		<comments>http://theapplegeek.ru/archives/3044#comments</comments>
		<pubDate>Fri, 22 Jan 2010 14:23:51 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3044</guid>
		<description><![CDATA[Хотите ли вы знать, какие файлы и каталоги Time Machine не копирует при резервном копировании? Если да, то читайте дальше :-) Пользовательские исключения определяются в System Preferences/Time Machine: А вот более интересный список системных исключений определён в файле: /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist Как я это нашёл? Нет, я не искал это в Интернет, а воспользовался dtrace. Итак, есть [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2010/01/01_tmexc-thumb11.png" height="159" align="right" width="160" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>Хотите ли вы знать, какие файлы и каталоги Time Machine не копирует при резервном копировании? Если да, то читайте дальше :-)</p>
<p><span id="more-3044"></span></p>
<p>Пользовательские исключения определяются в System Preferences/Time Machine:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/01/02_tmexc-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/01/02_tmexc-thumb1.png" height="350" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2010/01/03_tmexc-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2010/01/03_tmexc-thumb.png" height="285" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>А вот более интересный список системных исключений определён в файле:</p>
<pre>
/System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist
</pre>
<p>Как я это нашёл? Нет, я не искал это в Интернет, а воспользовался <a href="http://theapplegeek.ru/archives/358" >dtrace</a>.</p>
<p>Итак, есть несколько групп исключений.</p>
<h3>Пути, которые не включаются в системный бекап</h3>
<ul>
<li>/.Spotlight-V100</li>
<li>/.Trashes</li>
<li>/.fseventsd</li>
<li>/.hotfiles.btree</li>
<li>/Backups.backupdb</li>
<li>/Desktop DB</li>
<li>/Desktop DF</li>
<li>/Network/Servers</li>
<li>/Previous Systems</li>
<li>/Users/Shared/SC Info</li>
<li>/Users/Guest</li>
<li>/dev</li>
<li>/home</li>
<li>/net</li>
<li>/private/var/db/Spotlight (база данных Spotlight находилась здесь в Tiger)</li>
<li>/private/var/db/Spotlight-V100 (аналогично)</li>
</ul>
<h3>Пути, которые не нужно копировать, но их нужно создать при восстановлении структуры каталогов</h3>
<ul>
<li>/Volumes</li>
<li>/Network</li>
<li>/automount</li>
<li>/.vol</li>
<li>/tmp</li>
<li>/cores</li>
<li>/private/tmp</li>
<li>/private/Network</li>
<li>/private/tftpboot</li>
<li>/private/var/automount</li>
<li>/private/var/folders</li>
<li>/private/var/run</li>
<li>/private/var/tmp</li>
<li>/private/var/vm</li>
<li>/private/var/db/dhcpclient</li>
<li>/private/var/db/fseventsd</li>
<li>/Library/Caches</li>
<li>/Library/Logs</li>
<li>/System/Library/Caches</li>
<li>/System/Library/Extensions/Caches</li>
</ul>
<h3>Пути, для которых нужно создать при восстановлении дерево каталогов, но при этом содержимое копировать не нужно</h3>
<ul>
<li>/private/var/log</li>
<li>/private/var/spool/cups</li>
<li>/private/var/spool/fax</li>
<li>/private/var/spool/uucp</li>
</ul>
<h3>Стандартные пути в пользовательских каталогах, которые нужно пропустить для каждого пользователя</h3>
<ul>
<li>Library/Application Support/SyncServices/data.version</li>
<li>Library/Caches</li>
<li>Library/Logs</li>
<li>Library/Mail/Envelope Index</li>
<li>Library/Mail/AvailableFeeds</li>
<li>Library/Mirrors</li>
<li>Library/PubSub/Database</li>
<li>Library/PubSub/Downloads</li>
<li>Library/PubSub/Feeds</li>
<li>Library/Safari/Icons.db</li>
<li>Library/Safari/WebpageIcons.db</li>
<li>Library/Safari/HistoryIndex.sk</li>
</ul>
<p>Главное &#8211; желание, а раскопать можно всё.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3044/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Как скрыть образы Time Machine</title>
		<link>http://theapplegeek.ru/archives/950</link>
		<comments>http://theapplegeek.ru/archives/950#comments</comments>
		<pubDate>Sun, 11 Oct 2009 14:30:49 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[time machine]]></category>

		<guid isPermaLink="false">http://ctrld.me/archives/950</guid>
		<description><![CDATA[Я уже рассказывал, как скрывать ненужные каталоги. Только что, читая Mac OS X Hints, натолкнулся на частный случай. Если вы не хотите видеть каталоги с бекапами Time Machine на внешнем диске или TimeCapsule, то зайдите в Terminal.app и с помощью команды chflags скройте образы sparsebundle. Например, диск моей TimeCapsule называется Meow: $ mount ... afp_0W9UZU1zWuel00mUJs0Pyetl-1.2e00000a [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both">Я уже рассказывал, <a href="http://theapplegeek.ru/archives/635" >как скрывать ненужные каталоги</a>. Только что, читая <noindex><a rel="nofollow" href="http://www.macosxhints.com/article.php?story=20090920065741992" >Mac OS X Hints</a></noindex>, натолкнулся на частный случай. Если вы не хотите видеть каталоги с бекапами Time Machine на внешнем диске или TimeCapsule, то зайдите в Terminal.app и с помощью команды chflags скройте образы sparsebundle.</p>
<p>Например, диск моей TimeCapsule называется Meow:</p>
<pre>
$ mount
<small>...
afp_0W9UZU1zWuel00mUJs0Pyetl-1.2e00000a on <b>/Volumes/Meow</b> (afpfs, nodev, nosuid, mounted by ctrld)
...</small>
$ cd /Volumes/Meow
$ ls -al
<small>...
drwxrwxrwx@ 7 ctrld  staff    264 Oct 11 16:51 ole-mac.sparsebundle</small>
$ chflags hidden ole-mac.sparsebundle/
</pre>
<p>После этой операции образы Time Machine уже не будут мозолить вам глаза.</p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/950/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

