abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:44 | IT novinky

    Společnost Murena ve spolupráci se společností Qwant představila vyhledávač Murena Find. Ve výchozím nastavení bude používán v mobilním operačním systému /e/OS a v Murena Workspace.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | IT novinky

    V mobilní aplikaci Facebooku se lze nově přihlašovat pomocí Passkeys.

    Ladislav Hagara | Komentářů: 3
    včera 12:44 | IT novinky

    Společnost Midjourney představila vlastní generátor videí pomocí umělé inteligence (AI) V1 Video Model.

    Ladislav Hagara | Komentářů: 0
    18.6. 23:22 | Nová verze

    Editor kódu Zed (Wikipedie) má nově v sobě integrovaný debugger. Podporuje Rust, C/C++, JavaScript, Go, Python a pomocí rozšíření i další programovací jazyky.

    Ladislav Hagara | Komentářů: 6
    18.6. 22:22 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované GIFy.

    Ladislav Hagara | Komentářů: 1
    18.6. 21:44 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.18 a Xwayland 24.1.8 řeší další bezpečnostní chybu.

    Ladislav Hagara | Komentářů: 0
    18.6. 17:55 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 210. sraz, který proběhne 20. června od 18:00 v Red Hat Labu na Fakultě informatiky Masarykovy univerzity na adrese Botanická 68A nebo také online.

    Ladislav Hagara | Komentářů: 0
    18.6. 14:33 | Nová verze

    Byla vydána nová verze 17 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    18.6. 12:00 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.05.0. Přehled novinek v poznámkách k vydání. Nově je implementováno standardizované simulační rozhraní ROS (Robot Operating System) 2.

    Ladislav Hagara | Komentářů: 0
    17.6. 22:44 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.17 a Xwayland 24.1.7 řeší 6 bezpečnostních chyb: CVE-2025-49175, CVE-2025-49176, CVE-2025-49177, CVE-2025-49178, CVE-2025-49179 a CVE-2025-49180. Nils Emmerich je nalezl koncem března a dnes publikoval detaily.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (56%)
     (30%)
     (7%)
     (2%)
     (0%)
     (1%)
     (4%)
    Celkem 283 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Automatické připojení síťových disků

    16.3.2013 09:32 tom
    Automatické připojení síťových disků
    Přečteno: 1142×
    Ahoj, potřeboval bych poradit s nastavením automatického připojování sítových disků.

    Mám několik notebooků, které se mohou nacházet doma, v práci nebo kdekoliv jinde. Doma i v práci jsou NASy a je možné připojovat sdílení přes Sambu.

    Očekávané chování je takové, že je-li některý s NASů dostupný, automaticky se připojí některá sdílení do zadané složky. Případně by stačilo, aby se připojil až ve chvíli, kdy do dané složky vstoupím.

    Zkoušel jsem několik postupů. Jednak fstab, jenže tam dochází k připojení jen při startu počítače. Poté autofs, který sdílení připojí automaticky, pokud do dané složky vstoupím (popř. se spustí zálohování Backintime, který tam chce zapisovat). Ten by i vyhovoval, kdyby se nestávalo to, že při uspání počítače se disk neodpojí (např. proto, že jej v tu chvíli něco využívá, většinou otevřený Krusader nebo často i nepomuk nebo Backintime) a při vzbuzení se pak zasekne Plasma, popř. další aplikace. Navíc, připojení docela dlouhou dobu trvá (ale to by nebyl tak velký problém). Zkoušel jsem si i napsal vlastní skript, který dělal mount při připojení k síti a umount při odpojení, jenže právě to odpojování moc nefungovalo. V podstatě bych rád, aby se odpojení nějak vynutilo (jenže ani umount -fl často nepomůže), když už to sdílení není dostupné.

    Odpovědi

    16.3.2013 11:53 Petr MOTEJLEK | skóre: 6
    Rozbalit Rozbalit vše Re: Automatické připojení síťových disků
    Ahoj,

    Jsi trochu v začarovaném kruhu ;).

    Pokud se nejdříve budeme bavit o naprosto ideálních podmínkách, přijde mi tvůj mount/umount skript při připojení k síti/odpojení od sítě asi nejlepší řešení, protože tak máš plně pod kontrolou, kdy se co bude připojovat/odpojovat. Pokud ti neprochází umount -fl (protože něco pravděpodobně drží zámek (i.e. má otevřený file descriptor někde tam, co se pokoušíš odpojit) - tady ti nepomůže ani force, ani cokoliv ;)). Koukni se na prográmek fuser, ten umí dělat to, že ti pro daný mount point najde všechny procesy, co si někde v něm drří file descriptor. Mimo toho, že ty procesy najde, je umí taky ustřelit (což je to, co budeš muset udělat před tím, než se pokusíš udělat umount). Píšu to rychle, takže to moc neřeší chybové use casy, ale ten umount skript bych koncipoval asi takto. Funguje tak, že se nejdřív pokusí udělat běžný umount - když projde, tak skončí, protože není co dál dělat. Když neprojde, tak se spustí fuser - parametr -m určuje soubor (v našem případě adresář, resp. mount point), parametr -k říká zabít, -s je tiše (takže se nic zbytečně nevypisuje) a -INT je zabít signálem INT, -TERM zabít signálem TERM a -KILL zabít signálem KILL. Proč po řadě zabíjím procesy nejdřív INT, pak TERM a pak KILL? Protože INT je v podstatě shodný s tím, když do nějakého konzolového prográmku pošleš Ctrl-C, a pro prográmek je to to nejlepší, protože má dost času, aby zavřel svoje file descriptory, vyčistila se paměť, atd. Pokud by se náhodou stalo, že nějaké procesy nebudou na INT reagovat (na něco čekají, atd.), dostanou TERM (ten je trochu hrubší než INT, ale pořád docela v pohodě, protože procesy pořád mají čas si všechno zavřít a vyčistit). No a pokud i přesto zůstatnou nějaké procesy, odstřelí se signálem KILL, který na nic nečeká a proces prostě odstřeli (tohle je dobé používat obravdu jako rezervní řešení, protože ti to bude nechávat bordel v paměti, ve file descriptorech, atd). Nakonec se opět pokusíme o umount - ten by měl už proběhnout bez chyb.

    #!/bin/bash

    MOUNTPOINT=/mnt/myNAS/

    umount "${MOUNTPOINT}" && exit 0 sleep 1s

    fuser -m "${MOUNTPOINT}" -k -s -INT sleep 1s

    fuser -m "${MOUNTPOINT}" -k -s -TERM sleep 1s

    fuser -m "${MOUNTPOINT}" -k -s -KILL sleep 1s

    umount /mnt/myNAS

    exit $?

    No a teď už k těm neúplně ideálním podmínkám, na které si je potřeba dát pozor. Pokud se ti například stane, že ztratíš spojení s NASem a nějaký proces se pokusí z něho číst/zapsat na něj, dostane se nejspíš do Waiting for I/O stavu (ze kterého se prakticky nejde dostat jinak, než nějak obnovit to spojení ;)). Jde o to, že ten proces prostě čeká na interrupt z toho zařízení, ze kterého zrovna čte/na které zapisuje (ten pravděpodobně nikdy nepřijde, protože zařízení nereaguje), a žádný jiný signál nepřijme... V tule chvíli je nejlepší PC prostě vypnout ;). Tohle by se ti mělo stávat minimálně, ale měl bys o tom vědět.
    16.3.2013 11:56 Petr MOTEJLEK | skóre: 6
    Rozbalit Rozbalit vše Re: Automatické připojení síťových disků
    Ahoj,

    Koukám, že se mi to trochu rozhodilo. Přikládám skript znovu, teď snad hezčeji ;).
    
    #!/bin/bash
    
    MOUNTPOINT=/mnt/myNAS/
    
    umount "${MOUNTPOINT}" && exit 0
    sleep 1s
    
    fuser -m "${MOUNTPOINT}" -k -s -INT
    sleep 1s
    
    fuser -m "${MOUNTPOINT}" -k -s -TERM
    sleep 1s
    
    fuser -m "${MOUNTPOINT}" -k -s -KILL
    sleep 1s
    
    umount "${MOUNTPOINT}"
    
    exit $?
    
    17.3.2013 21:07 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Automatické připojení síťových disků
    Netestoval jsem to, ale můj mount.cifs(8) tvrdí, že implementuje soft, a dokonce je to výchozí nastavení. Pak je jen otázka, jaký je časový limit. Jestli standardní TCP, tak to se trochu načeká.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.