Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Cron - záhada  (Přečteno 1893 krát)

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Cron - záhada
« kdy: 23 Března 2017, 10:25:45 »
Zdravím.
Zkouším Cron, úplné základy a nemůžu přijít na následující.
Vytvořil jsem si testovací skript /home/juwa/test.sh s obsahem
Kód: [Vybrat]
#!/bin/bash
notify-send "cron test"

Ruční spuštění funguje, ale při vytvoření úlohy pomocí crontab -e
Kód: [Vybrat]
* * * * * /home/juwa/test.sh
se úloha bohužel každou minutu nespouští jak by měla.
Nefunguje ani přímé zadání příkazu
Kód: [Vybrat]
* * * * * notify-send "cron test"Kde je tedy chyba?
« Poslední změna: 23 Března 2017, 11:04:24 od juwa2 »

jmp

  • Host
Re:Cron - záhada
« Odpověď #1 kdy: 23 Března 2017, 12:24:57 »
obvykle chybí plná cesta k binárce

EDIT: pravděpodobně
$ which notify-send
/usr/bin/notify-send

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Cron - záhada
« Odpověď #2 kdy: 23 Března 2017, 12:40:12 »
Tak bohužel ani po zadání
Kód: [Vybrat]
* * * * * /usr/bin/notify-send "cron test"se nic neděje. Cesta k binárce je správná...

Dále jsem zjistil, že pokud zadám například
Kód: [Vybrat]
* * * * * rm /home/juwa/test
příkaz se provede. Ale spuštění jakékoli aplikace, např.
Kód: [Vybrat]
* * * * * geditnebo
Kód: [Vybrat]
* * * * * /usr/bin/gedit
se neprovede...
« Poslední změna: 23 Března 2017, 13:25:54 od juwa2 »

jmp

  • Host
Re:Cron - záhada
« Odpověď #3 kdy: 23 Března 2017, 13:47:48 »
jo ještě je třeba zajistit, aby to bylo neinterativní (jakékoliv výstupy poslat do /dev/null nebo do souboru), ale když koukám na to, co má send-notify dělat, tak to nějak není ono :-D
jde o to, že to může být v plánu a běžet i v momentě, kdy dotyčný s počem nepracuje...

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Cron - záhada
« Odpověď #4 kdy: 23 Března 2017, 13:58:31 »
Takže řešení je kupodivu tohle, ani se nemusí zadávat cesta k binárce.
Kód: [Vybrat]
* * * * * DISPLAY=:0 notify-send "cron test"
Je to třeba použít vždy pokud se má při akci spuštěné cronem něco zobrazit na displeji ("říct" X-serveru kam má něco zobrazit).  Zajímavé je, že návodů na cron se všude válí mraky, ale ani jeden to nezmiňuje. Přitom každý začátečník, pokud si poprvé chce cron vyzkoušet, na tohle narazí...
Takže tohle by bylo, teď ještě vyřešit jak spouštět promeškané naplánované úlohy (z doby kdy byl PC vypnutý).
V hledáčku mám fcron, tak uvidím...
« Poslední změna: 23 Března 2017, 14:15:05 od juwa2 »

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Cron - záhada
« Odpověď #5 kdy: 23 Března 2017, 21:33:21 »
Takže řešení je kupodivu tohle, ani se nemusí zadávat cesta k binárce.
Kód: [Vybrat]
* * * * * DISPLAY=:0 notify-send "cron test"
Je to třeba použít vždy pokud se má při akci spuštěné cronem něco zobrazit na displeji ("říct" X-serveru kam má něco zobrazit).  Zajímavé je, že návodů na cron se všude válí mraky, ale ani jeden to nezmiňuje. Přitom každý začátečník, pokud si poprvé chce cron vyzkoušet, na tohle narazí...
Takže tohle by bylo, teď ještě vyřešit jak spouštět promeškané naplánované úlohy (z doby kdy byl PC vypnutý).
V hledáčku mám fcron, tak uvidím...

Oficiální dokumentace, i stoletý návod na mém blogu se o tom zmiňuje a tady na tom fóru jsem to psal už mockrát, shodou okolností naposledy předevčírem ;)

Faktem, je že v Ubuntu se cron chová tak, že i když něco prošvihne, provede to po probuzení stejně, jako by to bylo v anacronu, přinejmenším pokud je rozdíl jen několik hodin. Což mě pěkně točilo, protože jsem si nastavil uspávání systému, kus po půlnoci, kdybych u toho usnul, ale když jsem to uspal dřív, nebo to udělal Kodi, ráno jsem systém probudil a ono se to hned zase uspalo. To mě ve snu nenapadlo, viděl jsem to až v syslogu. Ještě jsem to nevyřešil systémově, pokud to vůbec jde, tak jsem tam dal provizorně test na hodinu.
« Poslední změna: 23 Března 2017, 22:07:38 od GdH »

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Cron - záhada
« Odpověď #6 kdy: 24 Března 2017, 07:58:20 »
Faktem, je že v Ubuntu se cron chová tak, že i když něco prošvihne, provede to po probuzení stejně, jako by to bylo v anacronu, přinejmenším pokud je rozdíl jen několik hodin. Což mě pěkně točilo, protože jsem si nastavil uspávání systému, kus po půlnoci, kdybych u toho usnul, ale když jsem to uspal dřív, nebo to udělal Kodi, ráno jsem systém probudil a ono se to hned zase uspalo. To mě ve snu nenapadlo, viděl jsem to až v syslogu. Ještě jsem to nevyřešil systémově, pokud to vůbec jde, tak jsem tam dal provizorně test na hodinu.
Tak já mám zatím problém opačný. Testuju jak cron tak i fcron. A prošvihnutá úloha se po probuzení nevykoná. (5 minut před naplánovaným časem PC uspím, za cca 5 minut ho probudím). A použití anacronu je omezené tím, že se aktivuje pouze při bootu. A já většinou jenom uspávám..
-----------------------
edit:
Tak fcron se podařilo zprovoznit, chová se přesně jak má, promeškané úlohy vykonává.
K instalaci bylo ale nutno použít postup odsud  http://www.linuxfromscratch.org/blfs/view/8.0/general/fcron.html
a dále ošetřit spouštění fcron daemona po startu. Instalace spouštěcího skriptu z postupu výše se nedařila, tak jsem to vyřešil přidáním příkazu /usr/sbin/fcron do /etc/rc.local
Rovněž je užitečné změnit v /etc/fcron.conf výchozí editor na nano.
« Poslední změna: 24 Března 2017, 15:10:58 od juwa2 »

 

Provoz zaštiťuje spolek OpenAlt.