Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: JJK - 23.06.16 - klo:10.05

Otsikko: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 23.06.16 - klo:10.05
Olen tehnyt Lubuntu 16.04:een forumilla olevista ohjeista scriptin joka hakee Forecan sääennusteen ja liittää sen taustakuvaan.
Komentoriviltä ajettaessa scripti toimii mutta kun laitan cronin ajamaan sen tasatunnein niin taustakuva ei päivity. Noutaa kyllä kuvat ja liittää ne.

Tämä scriptin rivi asettaa taustakuvan
Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
crontab -e
Koodia: [Valitse]
0 * * * * /home/user/.taustakuva/saaforeca.sh
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: raimo - 23.06.16 - klo:10.51
Olen tehnyt Lubuntu 16.04:een forumilla olevista ohjeista scriptin joka hakee Forecan sääennusteen ja liittää sen taustakuvaan.
Komentoriviltä ajettaessa scripti toimii mutta kun laitan cronin ajamaan sen tasatunnein niin taustakuva ei päivity. Noutaa kyllä kuvat ja liittää ne.

Tämä scriptin rivi asettaa taustakuvan
Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
crontab -e
Koodia: [Valitse]
0 * * * * /home/user/.taustakuva/saaforeca.sh
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.

Varmistuksena että eihän crontabissa oikeasti ole polussa user vaan sen tilalla jk ? Eli näin:
Koodia: [Valitse]
0 * * * * /home/jk/.taustakuva/saaforeca.sh
Onhan saaforeca.sh tiedostolla suoritusoikeudet?
Koodia: [Valitse]
chmod +x /home/jk/.taustakuva/saaforeca.sh
Laita koko skripti näkyville, vika voi olla siinäkin.
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 25.06.16 - klo:00.10
Crontabissa on oikea polku. Tuli äpähuomiossa kopioitua eräänlaisista muistiinpanoista.
Koodia: [Valitse]
0 * * * * /home/jk/.taustakuva/saaforeca.sh
Tässä vielä scripti
Koodia: [Valitse]
#!/bin/bash
wget -q -O /home/jk/.taustakuva/Kiiminki-saa.png http://www.foreca.fi/meteogram.php?loc_id=100652858&lang=fi
sleep 5
convert /home/jk/.taustakuva/Kiiminki-saa.png -density 300 -quality 100 -trim -bordercolor white -border 5 -bordercolor none -border '10x35' /home/jk/.taustakuva/Kiiminki-saa.png
convert /home/jk/.taustakuva/lines-wallpaper_1920x1200.png /home/jk/.taustakuva/Kiiminki-saa.png -gravity SouthEast -composite -format png -quality 100 /home/jk/.taustakuva/saa.png
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

Scriptille on annettu suoritusoikeudet kaikille.
Annoin vielä varalta tämän
Koodia: [Valitse]
chmod +x /home/jk/.taustakuva/saaforeca.shMutta taustakuva ei päivity cronilla.
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: jekku - 25.06.16 - klo:08.35
....
Mutta taustakuva ei päivity cronilla.

Eli kuvan aikaleima ei muutu, mutta kun ajat skriptin käsin, niin päivittyy?
Kuinkahan usein tuo kuva muuten päivittynee forecan sivulla.
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 25.06.16 - klo:09.25
Siis kuvat kyllä päivittyy. Mutta tämä rivi ei vaihda taustakuvaa cronilla ajettaessa
Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: jarmala - 25.06.16 - klo:21.50
Siis kuvat kyllä päivittyy. Mutta tämä rivi ei vaihda taustakuvaa cronilla ajettaessa
Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

Tuolla kerrotaan, mikä se taustakuva on. Onko siihen mahdollista lisätä jotain "reload" -parametria?
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: mrl586 - 26.06.16 - klo:02.00
Ainakin variety (https://launchpad.net/variety) kykenee vaihtamaan taustakuvan automaattisesti.
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: nm - 26.06.16 - klo:15.30
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.

Cronin kautta ajettuna skripti ei saa mitään X-palvelimeen tai työpöytäympäristöön liittyviä ympäristömuuttujia, ja muiden työpöytäohjelmien tapaan pcmanfm kaipaa todennäköisesti DISPLAY-muuttujaa. Kokeile näin:

Koodia: [Valitse]
DISPLAY=:0.0 pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Otsikko: Vs: Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 26.06.16 - klo:17.24

Cronin kautta ajettuna skripti ei saa mitään X-palvelimeen tai työpöytäympäristöön liittyviä ympäristömuuttujia, ja muiden työpöytäohjelmien tapaan pcmanfm kaipaa todennäköisesti DISPLAY-muuttujaa. Kokeile näin:

Koodia: [Valitse]
DISPLAY=:0.0 pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

Hienoa.
Jotain tälläistä ajattelinkin mutta en tajunnut sen liittyvän DISPLAYhin.
Kiitos.
Nyt toimii.
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 19.09.17 - klo:21.17
Avataas tämä vanha aihe uudelleen.

Jokin aika sitten päivitysten jälkeen scripitin suorituksesta avautuu aina uusi virhe-ikkuna: Työpöydänhallinta ei ole käytössä
Eikä työpöydäntaustakuva päivity.

Virhe tulee display muuttujasta
Koodia: [Valitse]
DISPLAY=:0.0
Mistä asiaa vois tarkemmin tutkia?
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: nm - 19.09.17 - klo:21.59
Avataas tämä vanha aihe uudelleen.

Jokin aika sitten päivitysten jälkeen scripitin suorituksesta avautuu aina uusi virhe-ikkuna: Työpöydänhallinta ei ole käytössä
Eikä työpöydäntaustakuva päivity.

Virhe tulee display muuttujasta
Koodia: [Valitse]
DISPLAY=:0.0
Mistä asiaa vois tarkemmin tutkia?

Kuulostaa ennemmin siltä, että pcmanfm ei vain onnistu asettamaan taustakuvaa, koska se ei vastaa työpöydän taustan piirtämisestä. Vai toimiiko tämä komento päätteessä ajettuna herjaamatta tuota samaa?

Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 19.09.17 - klo:22.01

Kuulostaa ennemmin siltä, että pcmanfm ei vain onnistu asettamaan taustakuvaa, koska se ei vastaa työpöydän taustan piirtämisestä. Vai toimiiko tämä komento päätteessä ajettuna herjaamatta tuota samaa?

Koodia: [Valitse]
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

Toimii päättessä herjaamatta virheistä.
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: nm - 19.09.17 - klo:22.34
Ok. Mikä DISPLAY siellä sitten on käytössä, jos tarkistat päätteessä:

Koodia: [Valitse]
echo $DISPLAY
Kokeile samaa arvoa cronjobissa.
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 20.09.17 - klo:15.02
Koodia: [Valitse]
echo $DISPLAY
:0.0
Sama näyttäs vielä olevan.

Tämäkin toimii samoin.
Koodia: [Valitse]
export DISPLAY=:0.0
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

Jos tuon scriptin ajaa itse päätteessä niin toimii hyvin. Mutta miksi cronilla ei toimi??
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: nm - 20.09.17 - klo:18.20
Ilmeisesti muuttunut versiopäivitysten myötä niin, että myös ympäristömuuttujat XDG_RUNTIME_DIR (ja ehkä XAUTHORITY) tarvitaan:

https://stackoverflow.com/questions/45873124/pcmanfm-set-wallpaper-fails-on-raspbian-stretch-in-cron

Lainaus
I had exactly the same issue, except I am running Lubuntu 17.04. It appeared lately after a recent update, though cannot pinpoint when. After lot's of research I became suspicious that one of the XDG enviromental variables must be exported too. Following some trial and error, I found that exporting XDG_RUNTIME_DIR solved the problem for me. You may want to give it a try.

To figure out the value run: echo $XDG_RUNTIME_DIR

The working wallpaper changer running from cron for me now looks like:

Koodia: [Valitse]
#!/bin/bash

export DISPLAY=:0
export XAUTHORITY=/home/krisz/.Xauthority
export XDG_RUNTIME_DIR=/run/user/1000
pcmanfm --set-wallpaper=${dir}/${file} --wallpaper-mode=crop
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 20.09.17 - klo:18.41
Kiitti taas paljon nm

Näillä toimii:
Koodia: [Valitse]
export DISPLAY=:0.0
export XDG_RUNTIME_DIR=/run/user/1000
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit

XAUTHORITY ei näytä tarvivan.
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: Jtkone - 22.09.17 - klo:17.12
Sorry JJK, että sekaannun tähän ketjuun, mutta miten tuon Forecan location id saa selville?
Laitoin nimittäin itselleni tämän ketjun innoittamana saman. Hyvin toimii, mutta paikkakunta ei täsmää.
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: JJK - 22.09.17 - klo:22.12
Näyttää muuttuneen sivustokin jotenkin siitä, kun minä omani tein.

Mutta etsi paikka ja "+lisää omasäähän"
Omasää näkyy pienessä ruudussa ja sen alaosassa on poistalinkki.
Mene linkin päälle niin näet osoitteen
Minulla "http://www.foreca.fi/Finland/Kiiminki?rem=100652858"
Otsikko: Vs: [Ratkaistu] Forecan sääennuste taustakuvaan cronilla
Kirjoitti: Jtkone - 29.09.17 - klo:16.00
Kiitos JJK. Nyt toimii kotipaikkakunnan sääennuste.