Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - beer

Stran: 1 ... 15 16 [17] 18 19 ... 49
241
Software / Re:Cron: spuštění každých 5 minut
« kdy: 28. 01. 2016, 04:44:40 »

Chyby se nelogují proto, že by se lidé chtěli kochat tím, jak programy krásně nefungují. Logují se proto, že zkušenosti ukazují, že něco, co funguje, se může docela snadno rozbít. A pak je dobré se o tom z výpisu chyb dozvědět. Takže chybový výstup potřebuje, abyste se dozvěděl, až to fungovat OK přestane.




Moc pěkně řečeno, s tím se dá jen souhlasit. Pokud přestane fungovat a já se díky tomu na router nepřipojím, tak je mi log k ničemu, že.
Jakmile se připojím, tak zjistím, proč neproběhlo - nepřidělená ip z wan, selhání rezervní konektivity, která tam je nastavená (wi-free), apod.




Nemám důvod tam lozit každých pět minut a kotrolovat, jestli skript pracuje ok. Pracuje OK, bude pracovat i dál. Při každé změně konfigurace je potřeba otestovat. Poslední ip adresu mám přidělenou od poskytovatele déle než rok, předpoklad že se změní není veliký.
Nicméně chybový výstup z cronu loguji nyní do /tmp/public.ipv4.cron.log




Pokud vám je jedno, zda se ta cron úloha správně provádí nebo ne, mohl jste si ušetřit čas s jejím vytvářením.


Něco takového bylo někde napsáno? To je dedukováno z toho, že zavrhuji bobtnající chybový výstup? Nebo spamování e-mailem v čase každého spuštění úlohy?
Myslím, že jste nepochopil, že to, že úloha skončí chybou když se nezmění ip adresa - neproběhne díky tomu commit. To není chyba, to je záměr! Tam žádné skutečné chyby, které mají vliv na funkčnost, v tuto chvíli nejsou.


Problém je v tom, že do /tmp/ ten chybový výstup budete posílat i tehdy, když to nebude fungovat, jak má.
To není problém, to je záměr. Tam to snadno najdu když nebude fungovat a jsou tam logy od všeho možného. Navíc opravdu nehodlám ničit router za 12 tisíc tím, že tam každých pár minut budu přepisovat pamět.


Jednoduché už jste to měl, a výsledkem bylo, že jste se musel na fóru ptát, co děláte špatně.
Ano, chyba byla nalezena, částečně s pomocí fóra, částečně díky googlování a metodám typu pokus omyl - chyběl mi uživatel v cronu, a taky jsem tam musel zněnit složku, odkud cron volá git, další věc byla, že i na fóru pro turris mi bylo řečeno, že to není windows a že není potřeba nic jiného dělat, aby se změny v cronu projevily. No, nebyla to pravda, pokud se neudělá alespoň /etc/init.d/cron reload, tak se změny neprojeví.

242
Software / Re:Cron: spuštění každých 5 minut
« kdy: 27. 01. 2016, 17:56:31 »
Já tyhle chyby za chyby nepovažuji, warning ohledně templates mne netrápí, to, že je up to date znamená, že nebyla detekována změna a tudíž není co commitnout, nepotřebuju to dělat složitější, když to funguje, jak má, chybový výstup cronu mohu posílat do souboru v /tmp/ (kam jsem si to dneska nastavil, abych vám ty chyby napsal). Proč bych měl dělat skript složitější? Pro to není přece žádný důvod, aby tam byly nějaké detekce pro to, jestli je to spuštěné uživatelem nebo ručně. Kdo by chtěl, může se inspirovat a vymyslet lepší způsob. Účelem je připojení se na router i když se změní ip adresa.

https://github.com/jiri001meitner/public-ipv4-turris

připojuji se například z keyboxu přes https a webový prohlížeč na rhcloudu takto:

v bash profilu mám
Kód: [Vybrat]
alias ssh_ipv4="~/app-root/data/ssh_ipv4.sh"

a v souboru ~/app-root/data/ssh_ipv4.sh

Kód: [Vybrat]
ssh root@$(curl "https://raw.githubusercontent.com/jiri001meitner/service.meitner.cz/master/ipv4.txt") -C -F ~/app-root/data/ssh/ssh_config -p číslo portu

v ~/app-root/data/ssh/ mám samozřejmě klíče chráněné passphrase.

243
Software / Re:Cron: spuštění každých 5 minut
« kdy: 27. 01. 2016, 17:02:07 »
No, právě že by mi pořád přibívaly chyby i v případě úspěšného průběhu, a to tyto:

Kód: [Vybrat]
warning: templates not found /usr/share/git-core/templates
Reinitialized existing Git repository in /mnt/sdcard/public-ipv4-turris/.git/

On branch master                                                             

Your branch is up-to-date with 'origin/master'.                                 

nothing to commit, working directory clean                               

fatal: remote origin already exists.                           

Everything up-to-date                       

Branch master set up to track remote branch master from origin.


244
Software / Re:Cron: spuštění každých 5 minut
« 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.

245
Software / Re:Cron: spuštění každých 5 minut
« 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.

246
Software / Re:Cron: spuštění každých 5 minut
« 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.

247
Software / Re:Cron: spuštění každých 5 minut
« 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.

248
Software / Re:Cron: spuštění každých 5 minut
« 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.

249
Software / Re:Cron: spuštění každých 5 minut
« kdy: 25. 01. 2016, 16:13:08 »
Pořád nefunguje

250
Software / Re:Cron: spuštění každých 5 minut
« 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?

251
Software / Re:Cron: spuštění každých 5 minut
« 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>&1
Pořád nefunguje přes cron

252
Software / Re:Cron: spuštění každých 5 minut
« kdy: 25. 01. 2016, 15:41:38 »
kde najdu plnou cestu k programu cd?

which cd mi nic nenajde...

253
Software / Re:Cron: spuštění každých 5 minut
« kdy: 25. 01. 2016, 14:57:44 »
oprava
cd /mnt/sdcard/slozka/


254
Software / Re:Cron: spuštění každých 5 minut
« kdy: 25. 01. 2016, 14:56:55 »
Nevím, jaký cron je v OpenWRT, ale některým implementacím je potřeba poslat signál, že si mají přenačíst definiční soubory. Také se mi zdá divný formát souboru cronu – máte to pod cron.d, tedy je to globální cron, ale nikde tam nevidím jméno uživatele, pod kterým má ten skript běžet. Další věc je, že skript z cronu se spouští s jiným nastavením proměnných prostředí, např. PATH – ve skriptu máte příkazy wget nebo git uváděné bez cesty, takže je možné, že se nenajdou. Pokud si chcete ověřit, že se skript alespoň spouští, dejte si hned na začátek touch na nějaký soubor v /tmp. Takhle nevíte, zda se skript vůbec nespouští, nebo zda selže.

A také se podívejte do logu, pokud je něco špatně v cronu (chybná konfigurace), mělo by se to někde objevit.

Doplněn uživatel root, uvidíme, jestli bude OK, ve scriptu je uvedeno
Kód: [Vybrat]
cd /mnt/sdcard/mnt/sdcard/slozka/

tak by to mělo být ok, nebo mám tomu cronu zadávat tu cestu?

255
Software / Re:Cron: spuštění každých 5 minut
« kdy: 25. 01. 2016, 14:50:44 »
Kód: [Vybrat]
root@turris:~# cat /var/log/messages | grep cron | grep ipv4
2016-01-25T14:11:09+01:00 info cron[4917]: (*system*) BAD FILE MODE (/etc/cron.d/ipv4-public)

Stran: 1 ... 15 16 [17] 18 19 ... 49