abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 6
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    24.4. 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 767 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Skript spustí jen něco

    8.10.2017 12:56 Luky
    Skript spustí jen něco
    Přečteno: 712×
    Ahoj, chtěl bych se zeptat, proč v sh skriptu mohu spouštět příkazy jako např. mount a touch, ale cryptsetup ne? Jaký je v tom rozdíl?

    Řešení dotazu:


    Odpovědi

    8.10.2017 13:13 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Možná proto, že Bash obsahuje správně nastavenou cestu v PATH, ale sh ji nastavenou nemá.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 13:24 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    No nevím, když pustím sh skript, ve kterém mám cryptsetup ručně, spustí se...
    8.10.2017 13:37 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Co takhle zkusit spustit cryptsetup ručně v sh?

    Také by se hodilo spouštět takové příkazy s absolutní cestou.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 13:47 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    spustit ručně v sh funguje
    8.10.2017 13:28 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    # which cryptsetup
    /usr/sbin/cryptsetup
    
    # which touch
    /bin/touch
    
    # which mount
    /usr/bin/mount
    
    # echo $PATH
    /usr/sbin:/usr/bin:/sbin:/bin
    
    k3dAR avatar 8.10.2017 16:01 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    kdyz to takto pustis v shellu, tak to neznamena ze z pozice kde poustis script (predpokladam udev pravidlo) to bude stejne...
    obecne kdyz resis ze neco se nepousti tak proste do scriptu pridej tyhle tve prikazy s presmerovanim do souboru, nech to pustit tim co se to vola a zkoukni vystupni soubory... pripadne nesrovnalosti v porovnani s vystupem prikazu v shellu te uz navedou ;)
    porad nemam telo, ale uz mam hlavu... nobody
    8.10.2017 13:47 petr
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    co pouzivas za shell ve svem skriptu? Na zacatku budes mit treba #!/bin/bash nebo neco jineho... Pokud ti to ve skriptu nefunguje, zkus si spustit treba ten /bin/bash a spustit to co potrebujes rucne v nem... jak jiz ti nekdo napovida, patrne nemas validni PATH... Dalsi vec ze bez nejakeho chyboveho hlaseni ti tezko nekdo pomuze kdyz nevime co se deje ve tvem skriptu, tudiz mam tady na stole takovou tu kristalovku a vestim odrazem z oblohy...
    8.10.2017 13:56 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    #!/bin/sh
    
    # Copyright (C) 2009 OpenWrt.org
    PRODID="1058/10b8/1012"
    
    case "$ACTION" in
        add)
            
            if [ "${PRODUCT}" = "${PRODID}" ];
             then
                 /usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen /dev/sdb1 backup
            fi
            ;;
    
        remove)
    
             if [ "${PRODUCT}" = "${PRODID}" ];      
              then            
                 umount /mnt/usbbackup
             fi           
    
            ;;
    esac
    Ruční spouštění cryptsetup v sh funguje.
    8.10.2017 14:29 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    if [ "${PRODUCT}" = "${PRODID}" ];
    Tato podmínka zřejmě nikdy není splněna.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 14:36 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Je, protože když vyměním příkaz cryptsetup... za touch /tmp/test a rm /tmp/test, soubor se po připojení USB disku vytvoří a po odpojení odstraní
    8.10.2017 16:08 NN
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    po připojení USB disku
    Kdy? Po bootu? Skript se pousti pres udev? Co znamena "nespusti se", nevytvri se mapper zarizeni? K cemu je tam ten umount?

    Mimochodem uz si se jednou ptal, priste laskave nezakladej dalsi vlakna..
    8.10.2017 20:07 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Připojeni, odpojení za běhu. Skript se spouští před hotplug.d. Ne, nevytvoří. Když ho ale spustím ručně nebo s rc.local po startu, vytvoří se. Ten umount tam je proto, protože jsem tam měl ještě && mount v add části. Ptal, ale ve vlákně, kde jsem primárně řešil něco jiného a tenhle dotaz tam zřejmě zanikl, omlouvám se. Podstata dotazu je, jaký rozdíl je mezi jednotlivými příkazy.. v čem je "mount" a "touch" pro systém "víc", než cryptsetup?
    8.10.2017 20:15 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Ten umount spouštíš až po vytažení flešky? To by leccos vysvětlovalo...
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 21:49 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    No ale to, proč se nespustí příkaz cryptsetup narozdíl od touch to bohužel nevysvětluje.
    8.10.2017 22:15 NN
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Jak vypada cely proces v dmesg/messages? Zkousel jsi dat pred cryptsetup nejakou prodlevu (sleep 5) a jeste by mohlo pomoct --debug ..
    8.10.2017 22:21 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Sleep 10 jsem zkoušel a nepomohlo. V dmesg vidím jen nalezení nového USB disku, víc podrobností jsem bohužel nenašel. Je to openwrt, takže se to chová řekněme nestandardně:)
    9.10.2017 08:32 NN
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Dej tam --debug a na konec '> ~/setup.log 2>&1 &'
    9.10.2017 09:23 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Díky, mám tu nová zjištění:)
    [  282.560000] usb-storage 1-1.2:1.0: USB Mass Storage device detected
    [  282.580000] scsi host1: usb-storage 1-1.2:1.0
    [  283.580000] scsi 1:0:0:0: Direct-Access     WD       Elements 10B8    1012 PQ: 0 ANSI: 6
    [  283.590000] sd 1:0:0:0: [sdb] Spinning up disk...
    [  284.620000] .....ready
    [  288.660000] sd 1:0:0:0: [sdb] 1465081856 512-byte logical blocks: (750 GB/698 GiB)
    [  288.670000] sd 1:0:0:0: [sdb] Write Protect is off
    [  288.670000] sd 1:0:0:0: [sdb] Mode Sense: 47 00 10 08
    [  288.680000] sd 1:0:0:0: [sdb] No Caching mode page found
    [  288.680000] sd 1:0:0:0: [sdb] Assuming drive cache: write through
    [  288.710000]  sdb: sdb1
    [  288.730000] sd 1:0:0:0: [sdb] Attached SCSI disk
    /Device /dev/sdb1 doesn't exist or access denied.
    Command failed with code 15: Block device required
    # cryptsetup 1.6.7 processing "/usr/sbin/cryptsetup --debug --key-file /etc/ssl/usbbackup_key luksOpen /dev/sdb1 backup"
    # Running command open.
    # Locking memory.
    # Installing SIGINT/SIGTERM handler.
    # Unblocking interruption on signal.
    # Allocating crypt device /dev/sdb1 context.
    # Trying to open and read device /dev/sdb1 with direct-io.
    # Trying to open device /dev/sdb1 without direct-io.
    # Unlocking memory.
    Takže příkaz se spouští, omlouvám se všem za zavádějící informaci:) Ale pro změnu nerozumím tomu, jak je to možné /Device /dev/sdb1 doesn't exist or access denied.. Nepomohl ani sleep 10. Mám prodloužit interval? Přitom když USB připojím, tak ruční připojení cryptsetupem zhruba po 5 vteřinách funguje. Každopádně díky všem, že jsem se posunul dál:)
    9.10.2017 10:23 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Tak jsem sleep nakonec vyšponoval až na 30 a funguje. Ale dobrý to se dá zvládnout:) Díky moc všem za pomoc.
    9.10.2017 11:11 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    To už zní skoro jako chyba v resolveru. Nemáš tam někde hledání IP podle domény?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    9.10.2017 12:38 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Co to s tím má (nebo by mohlo mít), prosím Tě, společnýho?
    9.10.2017 16:13 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Stačí někde ve skriptu některého z démonů poslat dotaz na DNS a čekat na odpověď s chybně nakonfigurovaným resolverem. Může to být i dotaz na reverzní záznam. Zkusil bych to zopakovat s odpojenou sítí.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    9.10.2017 20:21 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Myslím že skript spouštíš na špatném mistě. Evidentně ho spustíš ve chvíli, kdy ještě zařízení /dev/sdb1 neexistuje. Takže ho mužeš spustí něčím, co spustí triger "něco je v USB", ale zatím neproběhly akce, které dělá udev, aby /dev/sdb1 vytvořil. To jak je to se sleepama může být i to, že jsi skrip narval tak dopředu, že udev na něj třeba čeká, a teprve po nějaké timeoutu pustí akci, když je tam obrovský sleep. vžycky mi pomáhaly výpisy. dej si do skriptu výpis do syslogu před a po, nebo cyklus na existenci /dev/sdb1.
    9.10.2017 22:21 NN
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Podle skriptu je to poustene na starem OpenWrt pres hotplug.d ..
    9.10.2017 16:24 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    sleep není dobré řešení, resp. je to poslední zoufalý pokus to nějak obejít. Protože když spustíte ten skript, evidentně nejsou splněné podmínky, které ke svému běhu potřebuje – a tím sleep jenom oddálíte spuštění požadovaného příkazu a doufáte, že se to zatím nějak samo magicky spraví. Ono se vám to teď možná samo magicky spraví, jenže když se něco magicky samo spravuje, má tendenci se to zase samo magicky rozbíjet. Takže pokud chcete dlouhodobě udržitelné řešení, měl byste zjistit, co jsou ty další podmínky, které skript ke svému běhu potřebuje, a zajistit, aby byly splněné.
    8.10.2017 16:53 petr
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    zadna chybova hlaska? Kdyz tam pouzijes --verbose porad nic nevidis?
    8.10.2017 16:04 R
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Skontroluj navratovu hodnotu cryptsetup, pripadne jeho vystup (aj chybovy) presmeruj do nejakeho tmp suboru.
    8.10.2017 21:58 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Pod kterým uživatelem se skript spouští?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 22:07 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Řekl bych, že hotplug.d se spouští pod rootem, ale pro jistotu, jak to ověřím?
    8.10.2017 22:14 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Například když se tam dá ten touch, tak podle vlastníka vytvořeného souboru.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.10.2017 22:23 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    super, díky.. tak je to root
    8.10.2017 22:04 jekub
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    jak vite, ze se prikaz nespusti?
    8.10.2017 22:10 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    protože se nevytvoří /dev/mapper/backup (když pustím cryptsetup skriptem nebo nechám spustit v rc.local po startu, vytvoří se)
    8.10.2017 22:27 jekub
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Jenze to neznamena, ze se nespusti. Jen neudela, co potrebujete.

    Zkusil bych prikaz volani cryptsetup nahradit skriptem a logovat spusteni, volani a navratovy kod.

    8.10.2017 22:32 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    zkoušel jsem, jenže jediný log na openwrt se vyvolá příkazem logread (-f) a tam se žádná chyba neobjevila
    k3dAR avatar 8.10.2017 23:57 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    tohle si prehlid nedopatrenim nebo umyslne aby jsi mohl trollovat? ;)
    porad nemam telo, ale uz mam hlavu... nobody
    Jendа avatar 9.10.2017 04:37 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Vytvoř skript, který spustí tvůj skript s >/tmp/a 2>/tmp/b a spouštěj ten wrapper.
    9.10.2017 10:37 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Díky, vyřešeno, viz výše (sleep 20). A ještě bych měl jeden dotaz a nevím, jestli založit nové vlákno, tak to dám sem a budu doufat, že to tu zase nezanikne:) Stává se mi, že ten disk někdy změní název /dev/sdb1, což je blbý, protože cryprsetup s ním počítá. Jsou dvě možnosti, jak to ošetřit. První, že se budu odkazovat na UUID, ale na OpenWrt není cesta k dispozici. Druhá možnost je, že si podle zařízení bude pamatovat název. Jenže tady nejsou udev pravidla. Napadá vás, jak to vyřešit?
    9.10.2017 10:38 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    jen detail, sleep 30.. pardon :)
    9.10.2017 11:49 trubicoid2
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    co treba pustit lsscsi a z toho si vybrat?
    9.10.2017 18:15 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Když bych ošetřil nějak ten luksOpen, bylo by mi v podstatě jedno, jestli se USB disk připojí jako sda nebo sdb.. Ale jak v tom skriptu nastavit proměnou k luksOpen, aby např. z blkid (mám k dispozici na openwrt) vytáhl, že patřičné uuid patří třeba k /dev/sda1 a to by vložil do příkazu za luksOpen. Lze to vůbec nebo je to úplná blbost?
    9.10.2017 19:36 trubicoid2
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    man blkid

    ...

    -U uuid Look up the device that uses this filesystem uuid. For more details see the -L option.
    k3dAR avatar 9.10.2017 20:21 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    predvedeno v prikladu... nejdriv si zjistit UUID daneho LUKS oddilu a ve scriptu:
    UUID="SemNapsatRucneToUUID"
    LUKS="$(blkid -U ${UUID})"
    ...
    /usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen ${LUKS} backup
    ...
    
    pripadne misto nevhodneho reseni pres sleep 30, cekat ve scriptu dokud neni dostupne
    UUID="SemNapsatRucneToUUID"
    until [ $LUKS ]; do LUKS="$(blkid -U ${UUID})"; sleep 1; done
    ...
    /usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen ${LUKS} backup
    ...
    
    porad nemam telo, ale uz mam hlavu... nobody
    9.10.2017 20:50 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Tak tohle je pomoc nad zlato.. a dokonce to i chápu:) Zítra otestuju a dám vědět. MOC DÍKY:)
    k3dAR avatar 9.10.2017 23:50 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    jen pozor, to SemNapsatRucneToUUID je potreba UUID primo LUKS oddilu, tedy pred odemcenim, ve vypisu blkid je zobrazen na radku koncicim TYPE="crypto_LUKS", tedy ne aby jsi vkladal UUID jiz odemceneho, v tvem pripade ne z radku zacinajici /dev/mapper/backup ;)
    porad nemam telo, ale uz mam hlavu... nobody
    10.10.2017 08:23 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    jj, to jsem pochopil, díky:)
    10.10.2017 08:56 Luky
    Rozbalit Rozbalit vše Re: Skript spustí jen něco
    Šlape to jako víno.. ještě jednou díky (všem:). PS: To odpojování asi líp nevymyslím.

    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.