Каталогизация дискохранилища
Mar. 27th, 2010 06:25 pmИдея каталогера, который бы сохранял на диске содержимое моей библиотеки (медиатеки? информатеки? дискохранилища?) dvd не отпускала меня с тех самых пор, как я перебрался на убунту. Конечно, Cathy прекрасно работала под wine-ом, и вполне справлялась с теми задачами, которые на нее были возложены еще в старой системе. Некоторое время у меня крутилась в голове идея обобщенного скрипта на Питоне, однако в конце-концов на Хабре появился пост, который расставил все по своим местам. Главной оказалась идея о том, что файловую структуру диска без особых хлопот можно получить через
читать дальше в wordpress'e
11го марта я написал на базе того, что было описано на Хабре свой вариант скрипта. Главное отличие в том, что мне хотелось большего автоматизма. Свои диски при записи я как правило называю вполне внятными именами (чего по моим наблюдениям многие не делают), которые пишу маркером на дисках же. Т.е. диск с именем video20100327 будет подписан соответствующе и вполне однозначно привязан к системе обозначений (другое дело что кроме video20100327 на него можно дописать всякой пояснительной информации).
Вот что получилось в моем варианте:
В принципе вот и все. Таким макаром подбираются файлы название которых соответствует названию диска, а содержимое - файловому дереву диска. Так же появилась (в отличие от Cathy) возможность разложить "файлы-диски" по "папкам-бандлам", где каждой папке соответствует реальный пластиковый футляр с дисками - сразу становится понятно где и что искать.
Каталогизация идет примитивно - на панель GNOME уже описанным методом вытащена кнопка. Диск вставляется. Я жду пока система смонтирует его, кликаю по кнопке, пауза... диск сам извлекается обратно. После чего файл перекладывается в нужную папку.
К сожалению не все человеки разделяют мою манию ставить на дисках информативные имена (особенно этим грешит сэр Хайвей - как только не называются его диски). Но файл диска всегда можно переименовать вручную.
Искать можно, например, способом описанном в статье на хабре. Лично я просто пользуюсь grep'ом. Эта система очень хорошо описана в статье про греп и словари - кстати, очень рекомендую.
В приложении к дискам это может выглядеть например так. Мне хочется вспомнить где у меня лежат Карпатские фотографии 2008-го года.
(-R означает "искать рекурсивно во всех подкаталогах")
Получаем:
То есть фотографии (и отчеты, которые попутно нашлись) лежат в бандлах с наклейками "gifs20050403trave" и "sper20060105_20081209" соответственно и называются "FOTO20080620.kat", "TRAVE20080711.kat" и "SPER20081208.kat". Спером у меня называются бэкапы по давней традиции. Снимаем с полки нужные бандлы и достаем соответствующие диски.

Приятная особенность, которая выяснилась по ходу дела. Неделю назад я поставил себе MetaTracker - настольную поисковую систему, вроде
find.читать дальше в wordpress'e
11го марта я написал на базе того, что было описано на Хабре свой вариант скрипта. Главное отличие в том, что мне хотелось большего автоматизма. Свои диски при записи я как правило называю вполне внятными именами (чего по моим наблюдениям многие не делают), которые пишу маркером на дисках же. Т.е. диск с именем video20100327 будет подписан соответствующе и вполне однозначно привязан к системе обозначений (другое дело что кроме video20100327 на него можно дописать всякой пояснительной информации).
Вот что получилось в моем варианте:
#! /bin/bash
# получаем название диска и путь куда сохранить каталог
# в моем случае - это будет ~/hive/cat
A=$(isoinfo -i /dev/cdrom -d | grep "Volume id" | sed "s/^.*: //g") && \
h=$'/home/vik/hive/cat/' && \
# информируем пользователя о том что и куда пишем
echo $A
echo $h$A
# создаем файл-каталог текущего dvd
# туда складываем заголовок: название диска, дату создания
# и линейку-разделитель
touch $h$A.kat && \
echo 'disk: '$A > $h$A.kat
date +%Y-%m-%d' '%H:%M >> $h$A.kat
echo '=============================================================' >> $h$A.kat
# получаем содержимое диска, сортируем его по порядку,
# обрабатываем его sed'ом - убираем лишнюю информацию
# и лишний кусок пути после чего сливаем содержание в файл-каталог
find /media/cdrom0 | sort | \
sed -e '1d' -e 's=/media/cdrom0/==g' \
>> $h$A.kat && \
# извлекаем диск - очень удобно когда каталогизируется множество дисков
# если мешает - можно закомментировать.
eject
В принципе вот и все. Таким макаром подбираются файлы название которых соответствует названию диска, а содержимое - файловому дереву диска. Так же появилась (в отличие от Cathy) возможность разложить "файлы-диски" по "папкам-бандлам", где каждой папке соответствует реальный пластиковый футляр с дисками - сразу становится понятно где и что искать.
Каталогизация идет примитивно - на панель GNOME уже описанным методом вытащена кнопка. Диск вставляется. Я жду пока система смонтирует его, кликаю по кнопке, пауза... диск сам извлекается обратно. После чего файл перекладывается в нужную папку.
К сожалению не все человеки разделяют мою манию ставить на дисках информативные имена (особенно этим грешит сэр Хайвей - как только не называются его диски). Но файл диска всегда можно переименовать вручную.
Искать можно, например, способом описанном в статье на хабре. Лично я просто пользуюсь grep'ом. Эта система очень хорошо описана в статье про греп и словари - кстати, очень рекомендую.
В приложении к дискам это может выглядеть например так. Мне хочется вспомнить где у меня лежат Карпатские фотографии 2008-го года.
vik@firefly:~/hive/cat$ grep -R 2008.*Карпаты *
(-R означает "искать рекурсивно во всех подкаталогах")
Получаем:
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/DSC08224.JPG
...
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/MOV08356.MPG
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/MOV08356.THM
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/Фото Антона
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/Фото Антона/DSC03273.JPG
...
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/Фото Антона/MOV03416.MPG
gifs20050403trave/FOTO20080620.kat:20080425 - 0503 - Поход в Карпаты/Фото Антона/MOV03416.THM
gifs20050403trave/TRAVE20080711.kat:accounts/20080426 Карпаты Абордажная Команда Boarding Party
gifs20050403trave/TRAVE20080711.kat:accounts/20080426 Карпаты Абордажная Команда Boarding Party/01.JPG
gifs20050403trave/TRAVE20080711.kat:accounts/20080426 Карпаты Абордажная Команда Boarding Party/02.JPG
gifs20050403trave/TRAVE20080711.kat:accounts/20080426 Карпаты Абордажная Команда Boarding Party/03.JPG
...
sper20060105_20081209/SPER20081208.kat:ferbot2/accounts/20080426 Карпаты Абордажная Команда Boarding Party
...
То есть фотографии (и отчеты, которые попутно нашлись) лежат в бандлах с наклейками "gifs20050403trave" и "sper20060105_20081209" соответственно и называются "FOTO20080620.kat", "TRAVE20080711.kat" и "SPER20081208.kat". Спером у меня называются бэкапы по давней традиции. Снимаем с полки нужные бандлы и достаем соответствующие диски.

Приятная особенность, которая выяснилась по ходу дела. Неделю назад я поставил себе MetaTracker - настольную поисковую систему, вроде
GoogleDesktop сотоварищи. Когда понадобилось найти книгу - выяснилось, что он просканировал и мою библиотеку на дисках и искал название в том числе и по ней. В итоге я не покидая из трекера получил все координаты нужного мне источника - поскольку название файла и папка где он лежит прямо указывали на нужный dvd. Plain text традиционно рулит и педалит.
no subject
Date: 2010-03-27 05:17 pm (UTC)no subject
Date: 2010-03-27 05:34 pm (UTC)no subject
Date: 2010-03-27 05:40 pm (UTC)no subject
Date: 2010-03-27 05:44 pm (UTC)no subject
Date: 2010-03-27 05:47 pm (UTC)*представил себе Тэнгу, жонглирующего тортами с дисками, дабы сбить с толку соседей
no subject
Date: 2010-03-27 05:52 pm (UTC)Тэнгу сейчас может разве что вяло их тасовать (задумчиво выполняет вольт, пролистывает колоду, снимает, рассеянно вытаскивает туза пик из середины колоды... спохватывается и прячет карты). Но вообще да - жонглировать это идея. Однако, боюсь, что время на поиск требуемого диска сильно удлинится (я бы даже сказал может бесконечно удлиниться - тут на ум приходят шеклиевские "Хождения Джоэниса" с их перестраиваемым противошпионским пентагоном, где блукают не столько шпионы, сколько сами служащие).
no subject
Date: 2010-03-27 05:45 pm (UTC)В любом случае, им надо еще знать, что означает эта куча меток, лежащих скорее всего в одном месте:)
no subject
Date: 2010-03-27 05:48 pm (UTC)Я думаю, если они приобрели рфид-сканер, то до всего остального они быстро додумаются. Или решат, что у меня склад попяченной продукции :)))
no subject
Date: 2010-03-27 05:52 pm (UTC)no subject
Date: 2010-03-27 05:53 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-03-27 05:59 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:*ушел смотреть мудрёное слово в словаре*
From:*не верьте словарям и педивикиям - в них сшлопные очепя
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:*крайне подозрительно*
From:Re: *крайне подозрительно*
From:Re: *крайне подозрительно*
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-27 05:22 pm (UTC)Но зачем?
no subject
Date: 2010-03-27 05:36 pm (UTC)А как можно было бы сделать иначе? Я просто не уверен что смогу обойти автомонтирование в Убунте.
no subject
Date: 2010-03-27 05:39 pm (UTC)no subject
Date: 2010-03-27 05:47 pm (UTC)Ага. Клево. Сообразил. Главное опять-таки уметь эту штуку "отключить обратно" :) а то будет случай лисы и винограда - все закаталогизировано... а посмотреть - йок :)
no subject
Date: 2010-03-27 05:52 pm (UTC)С пульсаудио нехоро получалось само собой, но год назад. Что ты с ним сделал? %)
no subject
Date: 2010-03-27 05:58 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-30 01:19 pm (UTC)no subject
Date: 2010-03-30 02:35 pm (UTC)Увы :( KDE не моя среда :( А общие советы типа покопаться где-нибудь в настройках или конфигах уже наверное опробованы. Кстати, чем KDE показывает эти сообщения? :)
no subject
Date: 2010-03-31 09:33 am (UTC)Показывает - просто окошко выводит вверху справа, наверху окна сообщение, что появилось (например: "диск Backups"), ниже предлагает его открыть (когда DVD вставляю, то там ещё и поиграть предлагает). Приходится на него мышой и нажимать "Esc", тогда пропадает.
no subject
Date: 2010-03-30 06:29 pm (UTC)Какое окно с сообщением имеется в виду? У меня вот единственные нотификейшены о девайсах показывает виджет device notifier (внезапно, правда?), а его можно убрать с десктопа. А вот d-bus трогать не надо, это системная служба сообщений, на ней работает чуть менее чем все.
P.S. И что же, в этих ваших огромнейших репозиториях убунты нет кде3? Это удивительно.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-27 06:36 pm (UTC)no subject
Date: 2010-03-27 07:23 pm (UTC)no subject
Date: 2010-03-28 02:10 pm (UTC)no subject
Date: 2010-03-28 02:19 pm (UTC)