Cron: spuštění každých 5 minut

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #15 kdy: 25. 01. 2016, 15:56:08 »
Kód: [Vybrat]
#!/bin/sh
cd /mnt/sdcard/slozka/
/usr/bin/wget http://ipinfo.io/ip -qO - > /mnt/sdcard/slozka/ipv4.txt
/bin/date > /mnt/sdcard/slozka/public.ipv4.log
/usr/bin/git init
/usr/bin/git add /mnt/sdcard/slozka/*
/usr/bin/git commit -m "$(date)"
/usr/bin/git remote add origin git@github.com:jiri001meitner/slozka.git
/usr/bin/git push -u origin master
exit 0

Kód: [Vybrat]
*/5 * * * * root /mnt/sdcard/slozka/public_ipv4.sh >/dev/null 2>&1Pořád nefunguje přes cron


beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #16 kdy: 25. 01. 2016, 16:03:28 »
zkusím
Kód: [Vybrat]
*/5 * * * * root cd /mnt/sdcard/slozka/ && sh /mnt/sdcard/slozka/public_ipv4.sh >/dev/null 2>&1

bude to takto OK?

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #17 kdy: 25. 01. 2016, 16:13:08 »
Pořád nefunguje

Lol Phirae

Re:Cron: spuštění každých 5 minut
« Odpověď #18 kdy: 25. 01. 2016, 16:22:46 »
Kristova noho... nejede mi auto, heeeelp!!! Už si opravil ty práva?! A co přesně je nepochopitelného na tom, abys uváděl celou cestu k příkazům (např. /bin/sh), a k čemu je tam to cd?

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #19 kdy: 25. 01. 2016, 16:26:41 »
nyní už funguje v té poslední konfiguraci, co jsem sem dával. (po /etc/init.d/cron stop a /etc/init.d/cron start). To cd je tam kvůli gitu, musí se volat z té složky. Práva jsou 0600.


Kit

Re:Cron: spuštění každých 5 minut
« Odpověď #20 kdy: 25. 01. 2016, 16:30:37 »
Proč používáš cron a ne crontab?

Lol Phirae

Re:Cron: spuštění každých 5 minut
« Odpověď #21 kdy: 25. 01. 2016, 16:31:26 »
Proč používáš cron a ne crontab?

Aby se to hůř debugovalo...  ;D

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #22 kdy: 25. 01. 2016, 16:43:49 »
Proč používáš cron a ne crontab?

Na turrisu je sice taky crontab, ale co jsem koukal, tak všechny systémové věci co se automaticky aktualizují jsou ve složce /etc/cron.d/ tak abych zachoval konzistentní nastavení.

Navíc jsem z jiného projektu zvyklý řešit automatické aktualizace i cron souborů přes git, proto mi to vyhovuje lépe. Nedokážu si moc představit hromadnou změnu crontabu, kde je třeba x položek, je pro mne snažší změnit jeden soubor. Je to pro mne lepší i pro obnovení zálohy.

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #23 kdy: 25. 01. 2016, 16:59:19 »
například přidáním
Kód: [Vybrat]
/usr/bin/git push -u origin master || /usr/bin/git pull --no-edit mohu změnit soubor cronu rovnou přes webové rozhraní gitu. Jelikoš funguje, tak mohu zakomentovat /bin/date > /mnt/sdcard/slozka/public.ipv4.log a tento soubor smazat, pak stačí jednou spustit
Kód: [Vybrat]
git ls-files --deleted | xargs git rm a odteď aktualizovat veškerou funkcionalitu ohledně tohoto scriptu včetně spouštění z githubu.

Karel

Re:Cron: spuštění každých 5 minut
« Odpověď #24 kdy: 26. 01. 2016, 19:46:31 »
zkusím
Kód: [Vybrat]
*/5 * * * * root cd /mnt/sdcard/slozka/ && sh /mnt/sdcard/slozka/public_ipv4.sh >/dev/null 2>&1

bude to takto OK?
Není to O.K. Pokud něco nefunguje, výstup se přesměruje do souboru. Tedy na konci místo >/dev/null 2>&1 se píše >/tmp/myDebug.log 2>&1 . Až se to odladí, pak snad. Když si spouštění stěžuje v /dev/null (včetně chybového výstupu), špatně se ta chyba hledá.

Re:Cron: spuštění každých 5 minut
« Odpověď #25 kdy: 26. 01. 2016, 20:51:27 »
Chybový výstup bych po odladění nepřesměrovával do souboru, tam si ho nikdo nevšimne, ale nechal bych ho psát na standardní výstup. Cron jde většinou nakonfigurovat tak, že pokud proces vypíše něco na standardní výstup, pošle to na zadaný e-mail. Tak se o chybě dozvíte hned, a ne až se vám někdo bude říkat, že má pocit, jako by ten automat nefungoval a vy teprve začnete shánět ten soubor.

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #26 kdy: 27. 01. 2016, 15:04:02 »
Chybový výstup bych po odladění nepřesměrovával do souboru, tam si ho nikdo nevšimne, ale nechal bych ho psát na standardní výstup. Cron jde většinou nakonfigurovat tak, že pokud proces vypíše něco na standardní výstup, pošle to na zadaný e-mail. Tak se o chybě dozvíte hned, a ne až se vám někdo bude říkat, že má pocit, jako by ten automat nefungoval a vy teprve začnete shánět ten soubor.

Tak ono to funguje OK, takže nepotřebuju chybový výstup. Nastavil jsem si ve skriptu /bin/date > /tmp/public.ipv4.log, prostým ověřením času tohoto souboru zjistím, že cron proběhl OK. Nepotřebuji posílat e-mailem, musel bych do openwrt instalovat program pro posílání e-mailů a to mi připadá zbytečné. Jinak souhlasím, že pro debuggování je to užitečné sledovat, ať už v souboru, nebo na standardním chybovém výstupu.

trubicoid2

Re:Cron: spuštění každých 5 minut
« Odpověď #27 kdy: 27. 01. 2016, 15:29:54 »
kdyz nemas nastaveny email, tak to jde do souboru /root/dead.letter

beer

  • *****
  • 729
    • Zobrazit profil
Re:Cron: spuštění každých 5 minut
« Odpověď #28 kdy: 27. 01. 2016, 15:43:50 »
kdyz nemas nastaveny email, tak to jde do souboru /root/dead.letter

To není žádoucí - interní paměťové úložiště je potřeba u turrisu šetřit - omezený počet přepisů, mají to i v manuálech, to už je lepší to směřovat do souboru v tmp, který je v ram.

trubicoid2

Re:Cron: spuštění každých 5 minut
« Odpověď #29 kdy: 27. 01. 2016, 16:52:00 »
ten dead.letter neni az zas tak velkej, pokud mu tam nepribude milion radku kazdych pet minut
jinak ho muzes presmerovat do tmpfs