Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz olivera88 #9244 üzenetére

    Na, most volt pár percem, ki tudtam próbálni, úgyhogy bepötyögtem neked egy rövid megoldást.
    Így értettem (nem fogalmaztam jól), hogy 1 nap négyféle referencetime fordulhat elő az alapján, amit írtál:

    2015-11-04T00:00:00Z
    2015-11-04T06:00:00Z
    2015-11-04T12:00:00Z
    2015-11-04T18:00:00Z

    Hogy az adott napon az aktuális frissebbet mindig le tudd tölteni (feltételezve, hogy mindig rendelkezésre áll a szerveren az adott referencetime-mal ellátott fájl), itt egy egysoros, ez megoldja:

    current_hour=$(date '+%k'); let result=($current_hour/6)*6; referencetime="$(date '+%Y-%m-%d')T$(printf "%02d" $result):00:00Z"; wget --content-disposition "http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__&model=ARPEGE&grid=0.1&package=SP1&time=00H12H&referencetime=$referencetime"

    Ha ki akarod rakni egy scriptbe, ami határozottan jobb megoldás lenne (a one-liner magic nem túl áttekinthető), akkor szétbontva (adj a scriptednek futtatási jogot (chmod +x fájlnév), úgy már mehet):

    #!/bin/bash
    current_hour=$(date '+%k')
    let result=$current_hour/6*6
    referencetime="$(date '+%Y-%m-%d')T$(printf "%02d" $result):00:00Z"
    url="http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__&model=ARPEGE&grid=0.1&package=SP1&time=00H12H&referencetime=$referencetime"
    wget --content-disposition "$url"

    Röviden annyi a lényeg, hogy mivel csak T00, T06, T12 és T18 fordulhat elő, megnézzük, hogy az aktuális időhöz képest melyiket hagytuk már el (a 00 nyilván éjfél, 06 a hajnali 6, 12 dél, 18 este 6), két számjegyűre alakítjuk (pl. ne T6 legyen, hanem T06), aztán összepakoljuk a komplett stringet, és letöltjük. A wget --content-disposition paramétere épp azt oldja meg, hogy a fájlnév helyes legyen, ne forduljon elő az a probléma, amit itt említettem (hogy a fájlnév megegyezik az URL-ben szereplő résszel, legyen az a fájlnév, amit a szerver a böngészőnek is ki akar szolgálni).

    (Biztos lehet szebben is, most ennyi idő alatt ez jött ki.)

Új hozzászólás Aktív témák

Hirdetés