Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: juwa2 23 Března 2017, 10:25:45

Název: Cron - záhada
Přispěvatel: juwa2 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?
Název: Re:Cron - záhada
Přispěvatel: jmp 23 Března 2017, 12:24:57
obvykle chybí plná cesta k binárce

EDIT: pravděpodobně
$ which notify-send
/usr/bin/notify-send
Název: Re:Cron - záhada
Přispěvatel: juwa2 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...
Název: Re:Cron - záhada
Přispěvatel: jmp 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...
Název: Re:Cron - záhada
Přispěvatel: juwa2 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...
Název: Re:Cron - záhada
Přispěvatel: GdH 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 (https://help.ubuntu.com/community/CronHowto), i stoletý návod na mém blogu (http://gdhnotes.blogspot.cz/2010/12/cron-demonicky-planovac-uloh.html) se o tom zmiňuje a tady na tom fóru jsem to psal už mockrát, shodou okolností naposledy předevčírem (http://forum.ubuntu.cz/index.php?topic=77029.msg550010#msg550010) ;)

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.
Název: Re:Cron - záhada
Přispěvatel: juwa2 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.