Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Linux: Nettisivun lataus säännöllisin välein

E1ss [30.10.2017 20:57:10]

#

Omistan raspberry pin jossa on rasbian käyttöjärjestelmä. Haluaisin pyörittää siltä yhden pelin osaa ja tarvitsisin siihen jonkun koodin joka hakee localhostilta php sivua. Eli siis ideana on että raspberry pi on kokoajan päällä ja se hakee 2 min välein php tiedostoa. Osaisin tehdä sen c# mutta raspian ei taida tukea sitä. Tiedän että java ainakin toimii niin voisiko joku nopesti kirjoittaa sen koodin tai edes kertoa millä functiolla haen nettisivua. Javan perusteet on kunnossa mutta en ole hakenut netistä mitään. Huomautan viellä ettei tietoa sivulta tarvitse tuoda riittää vain että php koodi käydään läpi. Mutta jos se on helppoa niin aina parempi.

Metabolix [30.10.2017 21:21:49]

#

Kirjoita komentoriville:

watch -p -n 120 curl -sSo /dev/null http://...osoite.php

Voit lopettaa skriptin painamalla Control-C.

Selitys, mitä rivillä tapahtuu:

# ajastusohjelma:
watch         # watch suorittaa seuraavan komennon määrätyin välein
-p            # suoritusväli pidetään tarkkana, vaikka komento olisi hidas
-n 120        # suoritusväli on 120 sekuntia

# ajastettava komento:
curl          # curl lataa tiedoston netistä
-s            # ei tulosteta latauksen etenemistä; se ei toimi watchin kanssa
-S            # tulostetaan silti virheilmoitukset, jos tulee
-o /dev/null  # tallennetaan ladattava sivu tiedostoon /dev/null = ei tallenneta
http://...    # ladattavan sivun osoite

Voit tehdä tästä myös tiedoston, jolloin alkuun kannattaa laittaa #!/bin/sh ilmoittamaan käyttöjärjestelmälle, millä skripti ajetaan.

#!/bin/sh
watch -p -n 120 curl -sSo /dev/null http://...osoite.php

Tiedostosta saa suoritettavan chmod-komennolla:

chmod +x kooditiedosto.sh

Tiedoston suoritukseen täytyy laittaa polku (edes ./) eteen, ellei tiedosto ole PATHissa.

# ajo nykyisestä hakemistosta:
./kooditiedosto.sh
# ajo koko polun perusteella:
/home/tunnus/kooditiedosto.sh

Grez [30.10.2017 21:26:04]

#

.Net Core 2:lle käännettyä C#-koodia kyllä pystyy ajamaan RasPissa
https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md

Se ei silti poista sitä tosiasiaa, että erillisen ohjelman tekeminen tällaiseen olisi aivan turhaa, kun se onnistuu helposti Linuxin vakiotyökaluillakin, kuten Metabolixin edellinen esimerkki osoittaa.

E1ss [31.10.2017 08:08:07]

#

Näyttäisikö joku viellä että miten voin suorittaa vaikka 3 samanlaista koodia jotka hakevat 3 eri nettisivua samana aikavälinä. Ja siis pystyn pyörittämään tuota taustalla ja voin tehdä koneella muuta ja pitääkö terminal olla auki vai pystynkö sulkea rastista koko ohjelman suorituksen?

Grez [31.10.2017 10:24:59]

#

watch -p -n 120 curl -sSo /dev/null {http://...osoite1.php,http://...osoite2.php,http://...osoite3.php}

Jos koko osoite ei ole eri, niin voit laittaa myös vain muuttuvan osan:

watch -p -n 120 curl -sSo /dev/null http://...osoite{1,2,3}.php

Tekee saman kuin ensimmäinen


Ei tarvitse jättää terminalia auki. Lisää komennon alkuun nohup ja loppuun &

nohup watch -p -n 120 curl -sSo /dev/null http://...osoite{1,2,3}.php &

Sen jälkeen voit sanoa exit terminalille (tai sulkea sieltä kulmasta)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta