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 17:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek i s náhledy aplikací v Týden v GNOME a Týden v KDE.

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

    Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

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

    Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.

    Fluttershy, yay! | Komentářů: 3
    včera 13:44 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzích 2.2.2 a 2.1.14. Přináší důležitou opravu chyby vedoucí k možnému poškození dat.

    Ladislav Hagara | Komentářů: 0
    včera 12:00 | Bezpečnostní upozornění

    V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.

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

    I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023

    Ladislav Hagara | Komentářů: 0
    včera 07:00 | Nová verze

    Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    30.11. 21:11 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 23.11 Topi. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    30.11. 16:22 | Nová verze

    Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.

    Ladislav Hagara | Komentářů: 0
    30.11. 16:11 | Nová verze

    Byla vydána nová stabilní verze 23.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Tapir. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
     (35%)
     (17%)
     (48%)
    Celkem 23 hlasů
     Komentářů: 0
    Rozcestník

    Dotaz: cron - nespustí příkaz, který v konzoli bez problémů funguje

    mistvan avatar 21.3.2007 17:58 mistvan | skóre: 6 | Pardubice
    cron - nespustí příkaz, který v konzoli bez problémů funguje
    Přečteno: 394×
    Může mi někdo prosím vysvětlit, jak je možné, že přes cron nespustím tento příkaz:
    mplayer -dumpstream http://amp.cesnet.cz:8000/cro-leonardo.ogg -dumpfile ~/mp3/toul$(date)$(time).ogg
    Jinak v konzoli bez problémů funguje, ale v cronu ne. Zkoušel jsem to omezit na:
    mplayer -dumpstream http://amp.cesnet.cz:8000/cro-leonardo.ogg -dumpfile ~/mp3/toul$(date).ogg
    To se pak nahrálo, ale bez přípony (což mi jedno) - výsledný soubor byl např. toulWed. Jenže já potřebuju, aby se to ještě odlišilo podle času nahrání. Může někdo poradit? Díky.

    Odpovědi

    21.3.2007 18:05 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    1.) není nastavené prostředí stejně jako v shelu

    2.) omezení délky řádku

    takže si udělejte skript s

    /usr/bin/mplayer -dumpstream http://amp.cesnet.cz:8000/cro-leonardo.ogg -dumpfile /home/uzivatel/mp3/toul$(date)$(time).ogg

    a teprve ten spouštějte.
    21.3.2007 18:14 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    A pak tu máme ještě FAQ: http://www.abclinuxu.cz/faq/skripty/skript-spousteny-v-cronu-nepracuje-spravne. Koukals, než jsi položil dotaz?
    21.3.2007 21:17 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Jste si jistý, že víte, k čemu slouží příkaz time?
    mistvan avatar 21.3.2007 21:53 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Jo, vím, že s tím "time" to není vůbec korektní, ale mplayer mi to bral a vytvářel se tak název souboru, který se mi přesně hodil. Např.: "toulSt bře 21 21:46:48 CET 2007.ogg" Samozřejmě, šlo by to i takto: toul$(date +%Y%m%d%H%M%S).ogg, ale výsledný "toul20070321215142.ogg" nevypadá tak hezky:-). Docela dlouho jsem se s tím mořil a prohledával i tady diskusi, bohužel na výše uvedený odkaz jsem nenarazil. Dočetl jsem se samozřejmě o rozdílném nastavení prostředí, ale prostě mě nenapadlo, že by to šlo řešit pomocí skriptu. Díky moc za nakopnutí.
    21.3.2007 22:22 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Zkus použít například: date +%Y_%m_%d_%H:%M:%

    a hned poté použij "man time" ať víš k čemu je program time dobrý.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    Josef Kufner avatar 24.3.2007 18:30 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Mno, já mám radši tohle:
    $ date +'%F_%T'
    2007-03-24_18:28:35
    ale obvykle se toho balastu (pomlčky a dvojtečky) zbavuju, aby to bylo kratší ;-)
    Hello world ! Segmentation fault (core dumped)
    21.3.2007 22:32 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    No, víš ale, že píšeš pěknou blbost a že jsi absolutně nepochopil, to dělá příkaz time? Zkus si napsat do příkazového řádku man time, snad Ti to dojde. Dále si do přík.ř. napiš man date, potom snad pochopíš i, jak správně napsat parametry, aby byl formát datumu podle Tvého přání. Tady máš příklad:
    date "+%Y %m %d %T"
    nebo lépe bez mezer: date +%Y-%m-%d_%T
    
    mistvan avatar 22.3.2007 09:18 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    No dobře, když mi to bylo takhle vysvětleno, tak se polepším. Ale asi absolutně nechápu, proč je takový problém s tím, když použiju time a ono mi to dělá, co chci. Nestojím o nějaké abosolutní chápání, ale o fungování (a to právě absolutní být nemusí). Asi nejsem dost ortodoxní uživatel linuxu, ale když mi něco funguje, tak kašlu na to, že vlastně píšu pěknou blbost (opakuji ale blbost, která funguje). Každopádně mi šlo úplně o něco jiného a nevylučuju možnost, že pak bych se začal zabývat tím, že bych tam time psát vlastně neměl a ani nemusel (nejsem zas takový vůl, abych neuměl číst a jaksi jsem na monitoru před sebou viděl, že dělám něco nepěkného, ale měl jsem prostě v danou chvíli jiný problém), takhle jste to vyřešili za mě, tak jsem aspoň tímto dotazem zabil dvě mouchy jednou ranou.
    22.3.2007 09:30 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Pokud jsem Tě pochopil, cthěl jsi získat datum a čas a myslíš si, že je na to (asi podle Tebe na čas) příkaz time. Jak se Ti tu ale již poněkolikáté snažíme vysvětlit, jseš absolutně vedle. Příkaz time slouží k úplně něčemu jinému (a ani omylem Ti aktuální čas nevrátí). Kdyby sis dal man time, pochopil bys.
    mistvan avatar 22.3.2007 10:03 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    A já se Ti už poněkolikáte pokouším vysvětlit, že o tom vím a že mi to je jedno!!! A hlavně i když se asi budeš stavět na hlavu a kdo ví co ještě, tak mi to prostě dělalo, co jsem chtěl. Ale to by mě stejně zajímalo, jak vysvětlíš, že mi ten time vracel aktuální čas (nebo respektive příkaz napsaný ve výše uvedené pro Tebe z nějakého důvodu naprosto nesnesitelné podobě), čím to teda bylo, asi se to přece jen dělo omylem. Nebudu tady obšírně vysvětlovat historii, jak došlo k tomu, že se tam ten chudák time dostal, o to totiž vůbec v dotazu nešlo. První kolega, co mi odpověděl, tak to pochopil a tím to bylo vyřešeno. Jenže ono to nekončí, já tady musím pořád opakovat, že o tom vím, že je to blbost, ale fungující blbost. Jestli to jde udělat lépe, proč ne. Takže znovu, vím o tom, že time tam vlastně nepatří, já už nevím, jak jinak to mám napsat, aby to Ti to došlo. Možná sem budu asi muset zkopírovat manuálovou stránku, aby jsi mi věřil, že umím napsat "man time".
    22.3.2007 10:31 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    A já se Ti už poněkolikáte pokouším vysvětlit, že o tom vím a že mi to je jedno!!! A hlavně i když se asi budeš stavět na hlavu a kdo ví co ještě, tak mi to prostě dělalo, co jsem chtěl. Ale to by mě stejně zajímalo, jak vysvětlíš, že mi ten time vracel aktuální čas
    Ono to opravdu funguje, time vrací aktuální čas (přesvědčil jsi mě) :-). Důležité ale, že jsi spokojený Ty ;-) :
    $ echo "nazev_souboru=$(date +%Y-%m-%d_%T)$(time)"
    
    real    0m0.000s
    user    0m0.000s
    sys     0m0.000s
    nazev_souboru=2007-03-22_10:25:38
    
    22.3.2007 11:09 rich
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    stejnym zpusobem to funguje i bez toho time
    echo "nazev_souboru=$(date +%Y-%m-%d_%T)"
    nazev_souboru=2007-03-22_13:45:26

    a pokud tam ten time necham tak pak tohle
    echo "nazev_souboru=$(date +%Y-%m-%d_%T)$(time)"
    -bash: command substitution: line 1: syntax error near unexpected token `newline'
    -bash: command substitution: line 1: `time'
    nazev_souboru=2007-03-22_13:47:34
    22.3.2007 11:57 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    A "vo tom to je". Akorát tazatel je spokojený, protože mu to funguje i s tím time. Tak ať si ho tam nechá, když se mu tam líbí, že ano :-) ?
    mistvan avatar 22.3.2007 15:49 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Ano, a o to přesně jde (v této diskusi a vlastně i mimo ní).
    22.3.2007 16:52 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Takže tam k tomu pro Tebe důležitému příkazu time doporučuji přidat ještě toto:
    $(echo "Toto echo a další zbytečné příkazy zde musí být, protože zde chci mít příkazy,
    které nic důležitého nevykonávají, pouze dělají skript nepřehlednější a prodlužují ho  
    (to, aby to vypadalo _nabušeně_). Prostě mám rád zbytečnosti, které mi to komplikují. 
    Ale jinak jsem asi normální. :-O " >/dev/null)
    
    mistvan avatar 22.3.2007 22:23 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Tady někdo musí mít poslední slovo, že?
    22.3.2007 22:28 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    ano

    doufám, že ti už došlo jakou blbost jsi v této diskuzi napsal...
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    mistvan avatar 23.3.2007 08:06 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Mě, snad tobě! Jak jsem říkal, že jsem sám zvědavý kolikrát budu muset napsat tuto větu: Takže znovu, vím o tom, že time tam vlastně nepatří, já už nevím, jak jinak to mám napsat, aby to Ti to došlo. A je to tady, už to zase píšu, opravdu zajímavý úkaz. Chytrému napověz, hloupého nakopni, asi by v tom pořekadle mělo být něco o dalším stupni (lidské) inteligence ... Takže kolikrát ještě ... Jo už vím o co jde, tady někdo nesnese jiný názor, ale to hold nezměním. Takže vysvětlím polopaticky, nepovažuju to za blbost, ale za zbytečnost, která vadí jenom určitému typu lidí, kteří kvůli tomu asi nemůžou ani spát.
    23.3.2007 18:43 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje

    1. Mně, holt, o hromadě chybějících čárek ani nemluvě…

    2. Chybu udělá každý, ale tvrdošíjně trvat na tom, že je to tak vlastně správně, a ještě prohlašovat ostatní za hlupáky, když si dovolí vás na chybu upozornit, to je trochu moc.

    mistvan avatar 23.3.2007 22:02 mistvan | skóre: 6 | Pardubice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Takže znovu, vím o tom, že time tam vlastně nepatří, já už nevím, jak jinak to mám napsat, aby to Ti to došlo.

    PS: Asi nebyla povšimnuta skutečnost, že toto je diskuse na netu a nikoli slohové cvičení. Takže radši znovu, nyní nejsme v hodině češtiny.
    24.3.2007 02:53 Petr_N | skóre: 3 | Všetaty
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    Kdyz tam vlastne nepatri, tak ho tam nepis. Protoze na tvuj problem nema vubec zadny vliv. Na tvuj problem ma vliv, pod jakym uzivatelem a s jak nastavenym prostredim se ten prikaz v cronu spousti, pro zacatek nahrad mplayer, date a ~ uplnyma cestama.
    22.3.2007 12:05 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    V tom případě doporučuji přidat tam ještě $(test)$(echo -n) a podle vlastního výběru dalších pět příkazů, které nic nevypisují…
    frEon avatar 22.3.2007 16:20 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    treba rm -rf / > /dev/null :-)
    Talking about music is like dancing to architecture.
    David Watzke avatar 24.3.2007 17:46 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    # rm -rf / > /dev/null
    rm: cannot remove root directory `/'
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    24.3.2007 21:52 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    2>&1 # :-)
    24.3.2007 16:26 Ash
    Rozbalit Rozbalit vše Re: cron - nespustí příkaz, který v konzoli bez problémů funguje
    příkaz toul$(date) vyprodukuje řetězec St bře 21 21:46:48 CET 2007. pokud mplayer všechny parametry které následují po --dumpfile vezme jako jeden název souboru, tak to funguje. Pokud mu to ale pošle třeba cron, je možné, že ty jednotlivé parametry "toulSt" "bře" "21" "21:46:48" "CET" a "2007" předá s uvozovkami nebo tak něco, čili mplayer jako název souboru dostane jen začátek toho očekávaného řetězce... Když pominu fakt, že spouštění takovéhoto příkazu přímo z crontab je lamerské, bude to chtít tam někam přidat uvozovky třeba
    mplayer -dumpstream http://amp.cesnet.cz:8000/cro-leonardo.ogg -dumpfile "/root/mp3/toul$(date).ogg"
    Že aktuální čas se získává příkazem date a příkaz time souží k něčemu jinému než k získání aktuálního času už bylo řešeno výše :)

    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.