Hirdetés

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

  • olivera88
    veterán

    "Úgyhogy az első sor törölhető akkor ugye?"

    Nem, ott meg kell adni a tokent, mert anélkül a jelek szerint nem megy, azért kapsz html file-t. Akkor azt visszarakom.

    "Ezt hogy érted hogy size változó értékét felül írom? Mivel?"

    A következő file méretével, amikor ott van egymás után sokszor a "size=" kezdetű sor, akkor minden sorban új értéket adsz a size-nak és csak a legutolsód ellenőrzöd.

    "Amúgy nem így akartam megoldani, hanem úgy hogy szétbontom az összes fájl ellenőrzést, és berakom a letöltések után, nem mint most hogy a végén ellenőrzi az egészet csak."

    Ami scriptet írtam, az így van, minden egyes file-t a letöltése után vizsgál meg, nem pedig egyben a végén.

    "Meg ez hogy van beállítva? Hogy egyszerre töltse le az összes fájlt? Mert úgy nem lehet, vagyis lehet, de én fokozatosan akarom, mivel nem egyszerre frissülnek a szerveren a fájlok, hanem fokozatosan."

    Vagyis várni akarsz az egyes file-ok letöltése után? Ha erről van szó, akkor azt a külső ciklusban gond nélkül megteheted:

    for TO in 12 24 36 48 60 72 ; do
    download_file "${TO}"
    done

    helyett az kell, hogy (ha pl. 10 percet akarsz várni):

    for TO in 12 24 36 48 60 72 ; do
    download_file "${TO}"
    sleep 10m
    done

    Értem. Köszi. De a letöltés most se akar jó lenni valamiért. :( Most is HTML fájl töltődik.

    #!/bin/bash

    # access token
    TOKEN="__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__"

    # file size min and max values - if the file's size falls outside of this range it is considered faulty
    MIN_SIZE="38797312"
    MAX_SIZE="45088768"

    # time range - how many hour's data a single file contains
    RANGE=12


    function download_file()
    {
    # end time
    TO="$1"

    # start time - it is calculated a little oddly
    FROM=$((${TO}-${RANGE}))
    if [ $FROM -gt 0 ] ; then
    FROM=$(($FROM+1))
    fi

    # add leading zeroes if needed
    FROM="$(printf "%02d" "${FROM}")"
    RANGE="$(printf "%02d" "${RANGE}")"

    # url of the data
    URL="http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=${__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__}&model=ARPEGE&grid=0.1&package=SP1&time=${FROM}H${TO}H&referencetime=$(date +'%Y-%m-%d')T${RANGE}:00:00Z"

    # output file name
    OUT_FILE="ARPEGE_SP1_${TO}H.grib2"

    while true ; do
    # get the file
    wget "${URL}" -O "${OUT_FILE}"

    # check the filesize
    size=$(stat -c \%s "${OUT_FILE}" )
    if [ $size -ge "${MIN_SIZE}" -a $size -le "${MAX_SIZE}" ] ; then
    # size is OK, leave loop
    break
    else
    # something went wrong, wait a little and retry
    sleep 5m
    fi
    done

    }
    for TO in 12 24 36 48 60 72 ; do
    download_file "${TO}"
    sleep 5m
    done

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