The Diary
Дневникът на Георги
<- Сряда, 29 Септември 2010 | Начална страница | Вторник, 5 Октомври 2010 ->
Понеделник, 4 Октомври 2010
Имам следния случай - програма записва видео (mpeg ts) като в началото на всяка минута започва нов файл. Ако всички файлове се слепят, ще имам един голям файл, който мога да си гледам. Разделението на по една минута ми позволява с много прости действия да вземам каквито ми трябват отрязъци от време. Проблемът е, че събирането на файловете отнема доста време и място. Чудех дали няма по-умен начин "виртуално" да събера файловете, като всъщност те си стоят разделени, а файлова система или нещо друго ги представя като един файл.
Тук влиза в употреба fuse. FUSE е модул в Linux, който позволява да се пишат файлови системи като обикновени програми. Примери за такива файлови системи има много, а писането им не е голяма философия.
Резултатът от целодневното писане в петък е файловата система с неоригиналното име filejoinfs. Използвайки я, можете да направите списък от файлове, след което всички файлове ще ги виждате като един.
Кодът на нещото е напълно свободен, ползвайте както намерите за добре.
[ Коментари: 8 ]Коментари
Не ми се занимава. Ако някой иска да го прави с удоволствие бих пращал от време на време по някоя добавка, но ако почна да го правя аз, ще се чувствам длъжен да го поддържам, което в момента не ми е в TODO списъка за съжаление.
Аз може да се пробвам, ще се обадя. А иначе интересен е и обратният вариант - програмата да съхранява един файл, а FUSE да го представя от множество по-малки, т.е. filesplitfs. За пълнота :)
За обратният случай може да се ползва: http://vi-server.org/vi/fusefile/
/ - Offtopic - /
Г-н Чорбаджийски,
искам да попитам възможно ли е със SlackCheck да ъпдейтвам
различни версии на slackware ?
Пример:
server1 - slackware 12.2
server2 - slackware 13.1
workstation - slackware current
Държа си отделни директории за отделните машини. Примерно имам една за 64 битовите и една за 32 битовите. Същата схема може да се приложи и за различни версии. Копирай цялото slackcheck, промени update_hosts и config.sh и си готов.
Здрасти,
Позволих си да взема сорса, да го набухам в https://gitorious.org/filejoinfs и да направя няколко дребни корекцийки. Надявам се с това да не ти създам грижи по поддръжката :)
Само че... хм... В твоя код файловата система се закача с опция allow_user; в Debian-ската реализация на FUSE не можах да намеря такава опция нито в текущата версия 2.8.4, нито в предишните 2.8.1 и 2.7.4. По-забавното е, че и Google не можа да намери кажи-речи нищо при търсене на FUSE allow_user - при теб работи ли действително? С коя версия на FUSE?
При мен е fuse-2.8.5-i486-1, allow_user е грешка, би трябвало да е allow_other. Имам няколко допълнения, ще го клонирам при мен и като ги направя ще ти пратя пачове.
Disclaimer: Except where otherwise noted all opinions expressed here are personal
opinions of the author and do not reflect official opinions of my employer or
any other person, company or organization associated with the author.
Copyright: Except where otherwise noted the content of this site is licensed under a
Creative Commons Attribution License. Текстът на договора за ползване на български
Copyright (cc) 2003-2011 Georgi Chorbadzhiyski. Some rights reserved.
Comments, texts and pictures not signed by me are property of their respective owners.
Страницата е генерирана от Glog v3.99-test
Супер! Това е полезно. Може да го сложиш в github или нещо подобно, ще е още по-супер :)
Написа Христо на 04-Oct-2010 11:49