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í
×
    dnes 12:00 | Pozvánky

    Konference LinuxDays 2026 proběhne již tento víkend 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Konference LinuxDays 2026 znamená desítky přednášek a workshopů, zástup zajímavých osobností, místo pro setkání, spoustu nových nápadů a informací a stánky řady různých projektů: Fedora, openSUSE, vpsFree.cz, Mozilla, MacGyver - bastlíři SH, OpenAlt a mnoho dalších. Vstup je volný.

    Ladislav Hagara | Komentářů: 2
    dnes 04:33 | IT novinky

    Microsoft oznámil, že WSL kontejnery (WSLC) aneb linuxové kontejnery ve Windows Subsystem for Linux (WSL) jsou již obecně dostupné. Současně popsal jejich architekturu.

    Ladislav Hagara | Komentářů: 1
    včera 23:22 | Komunita

    openSUSE Leap 16.1 vstoupil do RC fáze. Nově lze instalovat jako standardní systém (Standard) nebo jako neměnný systém s atomickými aktualizacemi (Immutable). Samostatná neměnná distribuce openSUSE Leap Micro končí.

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

    Byl vydán Mozilla Firefox 157.0. S nejvýraznější vizuální proměnou za poslední roky. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 157 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 4
    včera 10:33 | IT novinky

    Rodina produktů Raspberry Pi se rozšířila o Raspberry Pi Smart Display Module. Deska pro Raspberry Pi Compute Module 5 se zasouvá přímo do displejů dle specifikace Intel SDM. Cena desky je 30 dolarů.

    Ladislav Hagara | Komentářů: 1
    28.9. 23:44 | Nová verze

    Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

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

    Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla

    … více »
    AfD 💙 | Komentářů: 1
    28.9. 21:11 | Zajímavý článek

    Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a

    … více »
    AfD 💙 | Komentářů: 17
    28.9. 01:33 | Komunita

    Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.

    Ladislav Hagara | Komentářů: 9
    27.9. 13:44 | Zajímavý projekt

    Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.

    Ladislav Hagara | Komentářů: 13
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2760 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: azcopy prerusi 'while' cyklus

    31.1.2020 16:28 GeorgeWH | skóre: 42
    azcopy prerusi 'while' cyklus
    Přečteno: 665×
    Zdravim,

    mam jednoduchy shell skript, ktory vo while cykle prechadza obsah suboru po riadkoch (kazdy riadok predstavuje subor ulozeny na ms azure storage) a zistuje, ci dany subor existuje aj lokalne na disku. Ak subor neexistuje, tak ho vymaze aj z azure storage (taka primitivna obdoba rsync).

    Problem je, ze cyklus sa stale ukonci, ked sa vymaze prvy subor z azure storage (exit status prikazu je 0). Ak samotny prikaz nevykonam, resp. ho nahradim vypisanim samotneho prikazu (ktory by sa spustil) pomocou echo, tak to funguje.

    Cast skriptu, ktora nefunguje:
    # delete remote files (if enabled)
    if [ "x$delete_remote" = "x1" ]; then
    
      while read line; do
    
        file="$(echo $line | awk -F';' '{ print $2 }')"
    
        if [ ! -f "$file" ]; then
          azcopy remove "$url/$file?$sas" >/dev/null            <=== toto ukonci cyklus pri prvej zhode
          echo "azcopy remove \"$url/$file?$sas\" >/dev/null"   <=== ak to nahradim tymto, tak je to ok
          test $? -ne 0 && error=1
        fi
      done < $remote_files_list
    fi
    
    Obsah/format suboru $remote_files_list (prve je nazov, druhe je velkost):
    ;aaa/a1;0;
    ;aaa/a2;0;
    ;aaa/a3;0;
    ;bbb/b1;0;
    ;bbb/b2;0;
    ;bbb/b3;0;
    
    Lokalne subory:
    aaa/a1
    aaa/a2
    aaa/a3
    
    takze by v azure malo postupne po jednotlivych suboroch vymazat cely adresar bbb.

    Ked spustim shell v debug mode:
    + [ x1 = x1 ]
    + read line
    + echo ;aaa/a1;0;
    + awk -F; { print $2 }
    + file=aaa/a1
    + [ ! -f aaa/a1 ]
    + read line
    + echo ;aaa/a2;0;
    + awk -F; { print $2 }
    + file=aaa/a2
    + [ ! -f aaa/a2 ]
    + read line
    + echo ;aaa/a3;0;
    + awk -F; { print $2 }
    + file=aaa/a3
    + [ ! -f aaa/a3 ]
    + read line
    + echo ;bbb/b1;0;
    + awk -F; { print $2 }
    + file=bbb/b1
    + [ ! -f bbb/b1 ]
    + azcopy remove https://azure.storage.url/path/to/bbb/b1
    + test 0 -ne 0
    + read line
    
    A cyklus sa ukonci (skript potom pokracuje dalej).

    Netusite, cim by to mohlo byt?

    Vdaka.

    Řešení dotazu:


    Odpovědi

    31.1.2020 17:00 NN
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Aby skript azcopy neovlivnil aktualni skript mohlo by stacit obalit prikaz do subshellu:
    $(azcopy remove "$url/$file?$sas" >/dev/null)
    test $? -ne 0 && error=1
    
    Tipuju ze to zhavaruje a vezme sebou celou smycku.
    31.1.2020 17:19 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Rovnaky vysledok. Skusal som exec azcopy remove ..., /bin/sh -c "/usr/bin/azcopy remove ...", eval $(echo "azcopy remove ..."), nic, stale sa cyklus ukonci po prvom odstraneni suboru, a azcopy skonci bez chyby (je to vidno aj v tom debugu).

    Co ma napada je, ze azcopy nejakym sposobom "vymaze" data predane while cyklu. Je to mozne?

    Skusim este stace.
    31.1.2020 18:07 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Odporučil by som nahlásiť tento bug na podporu MS Azure, tam patrí azcopy a jeho panické obhospodarovanie výnimiek.
    Řešení 1× (Michal Kubeček)
    Jendа avatar 31.1.2020 20:49 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    azcopy ... < /dev/null
    31.1.2020 20:27 debian+
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Nestaci iba:?
    (azcopy remove "$url/$file?$sas" >/dev/null)
    Řešení 1× (GeorgeWH (tazatel))
    31.1.2020 19:57 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Pouzil som for miesto while a uz to funguje.
    31.1.2020 20:21 NN
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    WTF?
    31.1.2020 20:37 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Miesto
    while read line; do
      ...
    done < $remote_files_list
    som pouzil
    for line in $(cat $remote_files_list); do
      ...
    done
    a toto funguje.
    Jendа avatar 31.1.2020 20:48 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    No sežere to zbytek vstupu z toho přesměrování a tím to skončí. Si zkus
    cat /proc/cpuinfo | while read l; do echo $l; cat - > /dev/null; done
    Tohle je obecně věc co nevím jak by se v Bashi měla řešit -- for cyklus nejde dělat když má člověk v těch věcech mezery (a současně chce původní IFS), u while je příjemné, že čte po řádcích. Ale zase to má tenhle problém.
    3.2.2020 14:57 kolega
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    jo tohle je pak otravny resit pres \0 a xargs ...
    4.2.2020 10:02 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: azcopy prerusi 'while' cyklus
    Tohle je obecně věc co nevím jak by se v Bashi měla řešit

    A o minutu později jsi sám řešení navrhl. :-)

    Mimochodem, konstrukce

      cmd | while read v; do ... ; done
    

    má ještě jeden háček: while cyklus se při ní provádí v subshellu, takže proměnné nastavené v těle cyklu se nedostanou "ven" (nelze takto předávat hodnoty zbytku skriptu). Naštěstí to bash umožňuje obejít pomocí

      while read v; do ... ; done < <( cmd )
    

    Založit nové vlákno • Nahoru

    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.