Zastosowania FUSE cz.1 – cmdfs

Z pewnością wśród technologii systemów plików, FUSE (Filesystem in USErspace) jest jednym z przydatniejszych narzędzi jakie do tej pory stworzono. Na jego bazie powstało już wiele ciekawych i pożytecznych projektów, z których najbardziej popularny to ntfs-3g – pozwalający montować w trybie odczytu i zapisu partycje NTFS.

Postanowiłem przybliżyć nieco najciekawsze zastosowania FUSE – w szczególności takie, o których mało kto słyszał, a mogą być bardzo przydatne do codziennej pracy.

Na pierwszy ogień pójdzie dzisiaj cmdfs – “poleceniowy system plików”, który pozwala na wykonywanie określonych poleceń na wybranych plikach. Dzięki zastosowaniu cmdfs możemy w określonym katalogu otrzymywać automatycznie przetworzone pliki, np. przeskalowane i obrobione obrazki, odpowiednio sparsowane pliki tekstowe, wygenerowane pliki PDF itp.

Strona domowa projektu:

http://cmdfs.sourceforge.net

Składnia polecenia:

cmdfs <katalog źródłowy> <miejsce montowania> [opcje]

opcje:

-o command=<polecenie shell>
uruchamiane polecenie [domyślnie: cat]

-o extension=jpg[;gif[;…]] wybrane rozszerzenia plików na których polecenie ma operować

-o path-re=<wyrażenie regularne>
wyrażenie regularne określające ścieżki do zastosowania polecenia

-o mime-re=<wyrażenie regularne>
wyrażenie regularne określające typ plików do zastosowania polecenia (jak
zwracane przez file -b –mime-type)

-o link-thru
opcja wyświetlająca linki do plików źródłowych, które normalnie są niewidoczne

-o hide-empty-dirs
opcja blokująca wyświetlanie katalogów nie zawierających wybranego rodzaju plików

-o monitor
śledzenie na bieżąco katalogu źródłowego

-o cache-dir=<katalog>
zmiana położenia katalogu tymczasowego dla tworzonych plików (domyślnie
/tmp/cmdfs-cache.)

-o cache-size=<rozmiar w Mb>
ograniczenie rozmiaru katalogu tymczasowego do określonej wielkości

-o cache-entries=<liczba>
maksymalna liczba plików jaka może być utworzona w katalogu tymczasowym,
w przypadku włączenia tej opcji najstarsze pliki będą usuwane [domyślnie bez limitu]

-o cache-expiry=<czas w sekundach>
czas po jakim pliki zostaną zastąpione przez nowe [domyśnie bez limitu]

Przykład:

Najprostszym przykładem będzie automatyczne skalowanie obrazków za pomocą polecenia convert, wchodzącego w skład pakietu ImageMagick. Zakładamy, że mamy katalog “/home/user/fotki/” do którego wrzucamy oryginalne zdjęcia, zaś w katalogu “/home/user/miniaturki/” chcemy mieć miniaturki tych zdjęć – bez ręcznego ich skalowania.

W takim przypadku polecenie, które będzie opcją montowania może wyglądać następująco:

command=convert – -resize 20% –

Dobrze jest również określić zakres plików, które powinny być przetwarzane – nie planujemy przecież skalować przypadkowo umieszczonych tam plików MP3:

extension=jpg;gif;png

Teraz wystarczy zamontować nasz system plików poleceniem:

cmdfs /home/user/fotki /home/user/miniaturki “-ocommand=convert – -resize 20% -,extension=jpg;gif;png”

Oczywiście po restarcie systemu nasz system plików zniknie, więc żeby przy każdym starcie systemu był on montowany musimy dodać odpowiedni wpis do pliku /etc/fstab:

cmdfs#/home/user/fotki /home/user/miniaturki fuse user,allow_other,command=convert\040-\040-resize\04020%\040-,monitor,extension=jpg;gif;png 0 0

Pamiętajmy, aby przy tworzeniu wpisu zamienić spacje na znaki \040

To tylko prosty przykład, mam jednak nadzieję, że twórczy Czytelnicy pochwalą się innymi ciekawymi zastosowaniami cmdfs – z chęcią je opublikuję, lub proszę się chwalić w komentarzach.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Poprzedni post

MC: szybkie przełączanie sortowania i coś jeszcze

Następny post

Seven Kingdoms: AA

Powiązane posty

Założenie tunelu IPv6

Postaram się jak najprościej opisać założenie tunelu IPv6. Wiele jest faqów na temat IPv6, lecz w każdym z nich opisują tylko teorię. Postaram się nie owijać w bawełnę tylko krok po kroku opisać zalożenie sobie tunelu i skonfigurowanie systemu. Według mnie najszybciej można dostać tunel na www.xs26.net . Po założeniu tam konta i zalogowaniu się klikamy na Maintaner Object i tworzymy obiekt. Może to być coś w stylu JANEK-XS26, ustawiamy hasło i tworzymy. Teraz przechodzimy do zakładki Tunnels, po wpisaniu IP, ustawieniu systemu operacyjnego i kraju tworzymy tunel. Pózniej ustawiamy swojego PoPa, najlepiej ustawić na Poland. Teraz wypadałoby zrobić sobie strefę, a więc klikamy Zone i tworzymy sobie strefę. To już wszystko jeśli chodzi o zakładanie tunelu, teraz jeszcze tylko konfiguracja systemu. IPv6 musi być wkompilowane w jądro systemu, aby sprawdzić czy masz wkompilowane wpisz:

root@localhost#: modprobe ipv6

Więcej...

Tunelowanie SSH, czyli anonimowe połączenia SSH

Trasowanie cebulowe (ang. onion routing) polega na wielokrotnym szyfrowaniu wiadomości, a następnie przesyłaniu jej przez szereg węzłów zwanych routerami cebulowymi (ang. onion routers). Każdy z nich usuwa warstwę szyfrowania w celu uzyskania informacji o dalszym trasowaniu i przesyła dane do następnego routera. Takie działanie zapobiega ujawnieniu węzłom pośredniczącym pochodzenia, odbiorcy oraz treści wiadomości. Sieć TOR dominuje w wykorzystywaniu tejże technologii. W tym wpisie postaram się przybliżyć rzadko używaną opcje SSH ProxyCommand, pozwalającą określić program, przez który będą przekazywane połączenia.

Więcej...