Portál AbcLinuxu, 26. července 2025 02:33


Dotaz: Lvm oddily a samba sdileni

10.10.2009 19:16 Forrest
Lvm oddily a samba sdileni
Přečteno: 309×
Odpovědět | Admin
Zdravim,
chtel bych nejak elegentne vyresit problem s zobrazenim volneho mista z celkove dostupne velikosti. Mam mensi server os: Debian 5.0.3, dva disky(sys 20G a 1T) na kterem je nastavene mimo jine LVM a Samba.
Pres lvm je vytvoreno nekolik logickych oddilu na disku 1T (Films, Serials, Dokumenty ...) a jsou namountovany do /mnt/public/Films ,/mnt/public/Serials ,/mnt/public/Dokumenty ... Adresar public (na sys disku) je sdileny pres sambu. Pri pripojeni tohoto sdileneho adresare ve windows se zobrazuje volne misto a celkova velikost disku kde je Public umisten tedy sys disku.

Nejvice by mi vyhovovalo kdyby pri prochazeni (ve win v adr. public) adresrove struktury bylo zobrazeno misto podle toho v jakem adresari se nachazim. Tedy kdyz budu v public/Films tak se ukaze zbyvajici misto z celkoveho pro lvm oddil Films atd.

pokusy o reseni:

1) nastaveni Samba parametru dfree command
dfree command = /usr/local/samba/bin/dfree kde dfree je skript
#!/bin/bash
df $1 | tail -1 | awk '{print $(NF-4),$(NF-2)}'

timto je mozne si vybrat, ktery logicky oddil se pouzije pro ziskani info o miste, ale neresi to muj problem protoze se nemeni dle toho kde se nachazim. Je to pevne svazene s jednim oddilem

2) do kazdeho adresare (resp lvm oddilu) umistit soubor s nazvem 241G_free_z_300G.txt
zde mam akorat zacatek:
df -h $1 | tail -1 | awk '{print "/mnt/public/Dokumenty/" $3"_free_z_"$1 ".txt"}'
tedy jmeno souboru, ale nevim jak z tohoto stringu vytvorit soubor a jeste by bylo nutne udelat nejaky skrip?, ktery by opakovane vytvarel tento soubor (napr jednou za 1 min) aby dochazelo k aktualizaci info o volnem miste. (popr. neco podobneho naprogramovat v jave)

Jedno z reseni je i zdilet v sambe jednotlive adresare v adr. public a kazdy pripojit jako samostatny sitovy oddil/disk, ale to by znamenalo 7 sitovych oddilu/disku.
Nemate nejaky napad jak to lepe resit nez moje uvedene pokusy popr. nevide nekdo jak dokoncit reseni ad 2) (ktere by mohlo tak nejak fungovat :))
Budu vdecny za jakokoliv napady.
Diky Petr.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.10.2009 10:22 NN
Rozbalit Rozbalit vše Re: Lvm oddily a samba sdileni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Opakovat to muzes nechat cronem.. soubor z toho muzes vytvorit presmerovanim do souboru (>).

NN
11.10.2009 11:08 MMichal | skóre: 21
Rozbalit Rozbalit vše Re: Lvm oddily a samba sdileni
Odpovědět | | Sbalit | Link | Blokovat | Admin

Soubor vytvorite prikazem touch, ale jeste by to chtelo smazat predchozi, aby se Vam nekupily.

11.10.2009 12:47 Forrest
Rozbalit Rozbalit vše Re: Lvm oddily a samba sdileni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diky vsem za reakce,
zkousel jsem touch, ale nejak nevim jak to provest aby z toho stringu co dostanu z
df -h $1 | tail -1 | awk '{print "/mnt/public/Dokumenty/" $3"_free_z_"$1 ".txt"}' (dostanu napr. /mnt/public/Dokumenty/243G_free_z_289G.txt) to vzalo jako kdyz napisu
touch /mnt/public/Dokumenty/243G_free_z_289G.txt
zkousel jsem to ruzne ozavorkovat apod., ale vse hlasilo nejakou chybu (neznamy prepinac -h apod.)

k presmerovani do souboru (>) to funguje, ale do uvedeneho souboru se musim podivat abych zjistil kolik je volneho mista radeji bych kdyby to uz obsahoval nazev souboru.
diky za nasmerovani na nastroj cron. Vypada, ze se na tohle presne hodi.

jeste me napadlo zda by je mozne zjistit v jakem adr se uzivatel (ve win ve zdilenem sitovem oddile) nachazi a dle toho by skript (ad 1)) vracel zpravnou hodnotu pro danny oddil. Zkousel jsem, ze pokud zmenim hodnoty ve skriptu tak tyto hodnoty ihned aktualizuji onfo o miste ve win zdilenem sitovem oddilu. Bohuzel nevim jak by se to chovalo pri pristupu vice uzivatelu najednou jelikoz kazdy je quest... asi byto nepracovalo spravne...
13.10.2009 13:35 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Lvm oddily a samba sdileni
Mělo by to jít třeba takto
touch $(df -h $1 | tail -1 | awk '{print "/mnt/public/Dokumenty/" $3"_free_z_"$1 ".txt"}')
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
13.10.2009 12:35 Forrest
Rozbalit Rozbalit vše Re: Lvm oddily a samba sdileni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim,
tak jsem to nakonec vyresil vytvorenim java programu.
Program pres timer periodicky vypisuje na urcena mista (a maze predchozi) informace o velikosti daneho oddilu a kontroluje nastaveni v konfiguracnim souboru ( aby bylo mozne jej ukoncit nebo pauznout vypis apod...). Program bezi jako daemon a lze jej take pres pid ulozenem v souboru ukoncit.

prikazy pres ktere jsem vse tvoril (treba to nekomu k necemu pomuze... OS - DEBIAN):

javac *.java => vytvori (compile .java) .class soubory (musel jsem nainstalovat balik openjdk)

jar cfe hddInfo.jar Hlavni *.class => zabali .class soubory do jar s definici jmena tridy s main metodou (hlavni tridy)

java -jar hddInfo.jar 2> err.txt => spusteni jar balicku s nastavenim error vypisu do souboru - spis pro test, ze funguje...

Java daemon:
start-stop-daemon --start --quiet -b -m -p /var/run/hddInfo.pid -x /usr/bin/java -- -jar /usr/local/java/hddInfo.jar
=> nastartuje java program jako daemona (zde jsem bouzel nevyresil presmerovani error logu do souboru po ruznych pokusech se nic nevypsalo, pomuze odstraneni parametru -b, ale to jsem nechtel)
- do hddInfo.pid se ulozi aktualni pid beziciho procesu tento soubor vyuzijeme pri ukonceni daemona:

start-stop-daemon --stop --quiet -p /var/run/hddInfo.pid => ukonceni java daemona dle pid

vytoreny program je dostupny na hddInfo.jar
pripadne nejake dotazy muzete psat na muj mail

Mejte se a diky vsem za pomoc. Petr

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.