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í
×

    dnes 16:44 | Komunita

    openSUSE komunita vybírá nová loga. Jedním z cílů je odlišit se od SUSE. Aktuálně probíhá hlasování o logu openSUSE a čtyř distribucí Tumbleweed, Leap, Slowroll a Kalpa.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2023-12-05. Přehled novinek v příspěvku na blogu a poznámkách k vydání. Nově jej lze používat také s tmavým tématem.

    Ladislav Hagara | Komentářů: 0
    dnes 08:00 | Humor

    Dnes je to 10 let, co byla vytvořena decentralizovaná kryptoměna Dogecoin. Autoři Billy Markus a Jackson Palmer ji původně zamýšleli jako vtip. Znakem kryptoměny je pes Shiba-Inu známý z internetových memů.

    JZD | Komentářů: 10
    dnes 07:00 | Nová verze

    Google Chrome 120 byl prohlášen za stabilní. Nejnovější stabilní verze 120.0.6099.62 přináší řadu oprav a vylepšení (YouTube). Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

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

    Byla vydána nová verze 2023.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení. Vypíchnout lze podporu Cloud ARM64, Vagrant Hyper-V a Raspberry Pi 5.

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

    Společnosti IBM, Meta a dalších vice než 50 zakládajících členů (bez Microsoftu a OpenAI) vytvořili mezinárodní alianci AI Alliance pro spolupráci na vývoji a rozvoji otevřené, bezpečné a odpovědné umělé inteligence.

    Ladislav Hagara | Komentářů: 16
    včera 14:44 | IT novinky

    Služba pro hlídání uniklých hesel Have I Been Pwned oslavila 10. výročí. Troy Hunt ji spustil 4. prosince 2013 (Twitter).

    Ladislav Hagara | Komentářů: 3
    včera 06:00 | Humor

    Programovací jazyk HTML.

    Ladislav Hagara | Komentářů: 5
    4.12. 23:00 | Upozornění

    Podpora TORu v Debianu 11 Bullseye a 10 Buster byla ukončena. Doporučuje se přechod na Debian 12 Bookworm.

    Ladislav Hagara | Komentářů: 0
    4.12. 22:33 | IT novinky

    Příkaz "opakuj donekonečna" je nově v rozporu s podmínkami používání ChatGPT. Příkaz vedl k prozrazení trénovacích dat [/.].

    Ladislav Hagara | Komentářů: 7
     (39%)
     (13%)
     (49%)
    Celkem 72 hlasů
     Komentářů: 1, poslední 4.12. 22:13
    Rozcestník

    Dotaz: príliš skorá expanzia príkazu

    jose17 avatar 22.3.2007 13:06 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
    príliš skorá expanzia príkazu
    Přečteno: 131×
    prosím, potrebujem pomôcť s nasledovným kódom:
    ssh -o StrictHostKeyChecking=no host02 ssh -o StrictHostKeyChecking=no host01 'echo "`if [ $(ps -ef | grep xntpd | wc -l) -ne 0 -a \"$(ntpq -p | sed -n 3p | sed \"s/[^ ]* *[^ ]* *\([^ ]*\) *.*/\1/\")\" != 1 ]; then echo \"yes\"; else echo \"no\"; fi`;'
    
    čiže sa jedná o spustenie kódu na vzdialenom stroji (host01), na ktorý sa pripájam z iného vzdialeneho stroja (host02). problém je v tom, že ntpq sa spustí lokálne.

    nejak si s tým už neviem dať rady. díky za pomoc,

    -- jose
    Ja vim, on vi, ty nano!

    Odpovědi

    22.3.2007 14:20 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu
    Nejsem si jistý, zda to souvisí, ale rozhodně Vám tam chybí jedny uvozovky úplně na konci parametru příkazu echo.

    ...tedy pokud jsem dobře koukal. ;)
    jose17 avatar 22.3.2007 14:28 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu
    jo, máte recht. ale ich pridanie nepomôže.
    Ja vim, on vi, ty nano!
    22.3.2007 14:54 Skokan, Pavel | skóre: 29
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu
    a mozna by to chtelo dalsi tak, aby to vzalo druhy ssh i s parametrama jako jeden prikaz?
    22.3.2007 15:18 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu
    Tak jsem na to ještě koukal a uteklo mi, že tam máte jeden krok mezi. Vypadá to, že věc se má takhle:

    ssh host01 ssh host02 echo $HOSTNAME

    expanduje $HOSTNAME rovnou na mašině, kde to spouštíte, to je celkem ještě jasné.

    ssh host01 ssh host02 'echo $HOSTNAME'

    By člověk možná čekal, že se nic neexpanduje a ssh spojení na host02 dostane 'echo $HOSTNAME' jako svůj parametr... jenomže host jedna prostě spustí:

    ssh host02 echo $HOSTNAME

    Jsme tedy o krok blíže, ale ještě ne tam, kde jsme chtěli.

    Tak to escapujeme i pro interpretaci na host02 a voila:

    ssh host01 ssh host02 'echo \$HOSTNAME'

    máme hostname z host02. Drobný detail, pro $(...) budete muset escapovat vše, tedy: \$\(...\), ale to byste brzy jistě zjistil sám, ono už by si to postěžovalo.
    Medved09 avatar 22.3.2007 15:24 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu

    jen tak z hlavy - zkousel jste

    ... \\"$(ntpq -p | sed -n 3p ...
    Fordem tam, vlakem zpátky :-)
    23.3.2007 09:35 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: príliš skorá expanzia príkazu
    Myslím, že bude výrazně přehlednější, když na cílový stroj nakopíruješ skript, který se má spustit. Kdyby se navíc dalo zbavit toho "StrictHostKeyChecking=no", mohlo by se psát jen
    ssh host02 ssh host01 skript
    
    A co se týče toho skriptu, napsal bych ho takhle:
    #!/usr/bin/env python
    
    from subprocess import *
    command = ['/usr/sbin/ntpq', '-p']
    process = Popen(command, stdout = PIPE, stderr = STDOUT)
    
    #precti vsechny radky
    for line in process.stdout:
        pass
    #na konci cyklu bude v promenne line posledni radek
    
    if 'Connection refused' in line: #demon asi neni spusten
        raise SystemExit, 'ntpd is not running'
    
    #posledni radek rozsekej po mezerach
    splitted = line.split()
    
    #vyber treti polozku a preved ji na cislo
    status = int(splitted[2])
    
    #vypis status
    print 'status is %d' %status
    
    Není nutné předem testovat, zda démon běží. Dá se rovnou pustit "ntpq -p" a odchytávat hlášku "Connection refused".

    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.