- PHP programozás
- Milyen NAS-t vegyek?
- Milyen program, ami...?
- Aliexpress tapasztalatok
- 3 évig még biztosan nem rendelhetünk Xiaomi EV-t
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Windows 11
- Mesterséges Intelligencia topik
- Microsoft Excel topic
- Van, amit nehéz lett megtalálni a Google keresőjével
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz olivera88 #2081 üzenetére
Persze, bele kell tenni egy while true ciklusba:
while true
do
size=$(stat -c \%s foo)
if [ $size -lt 40894464 -o $size -gt 45088768 ]
then
# hiba, varj 10 percet
sleep 10m
# probald ujra
continue
fi
# csinald meg amit kell
# ...
# kesz, nem kell ujra
exit 0
doneJester
-
olivera88
veterán
válasz olivera88 #2104 üzenetére
Ez megoldva.
Egymás után beraktam ugyanezt többi fájlok nevével. És jó.
De lenne egy másik dolog.Ezt hogy kellene kijavítani h működjön?
#!/bin/sh
while true
dosize=$(stat -c \%s ARPEGE_SP1_12H.grib2)
size=$(stat -c \%s ARPEGE_SP1_24H.grib2)
if [ $size -lt 38797312 -o $size -gt 45088768 ]
then
# hiba, varj 5 percet
sleep 5m
# probald ujra
continue
fi
python /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_00_12.py
python /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_13_24.pySZERVER='x'
FELHASZNALO='x'
JELSZO='x'ftp -n -v $SZERVER << EOF
ascii
user $FELHASZNALO $JELSZO
prompt
cd ARPEGE
bin
send ARPEGEPCP06.png
send ARPEGEPCP12.png
send ARPEGEPCP18.png
send ARPEGEPCP24.pngEOF
while true
dosize=$(stat -c \%s ARPEGE_SP1_36H.grib2)
size=$(stat -c \%s ARPEGE_SP1_48H.grib2)
if [ $size -lt 38797312 -o $size -gt 45088768 ]
then
# hiba, varj 5 percet
sleep 5m
# probald ujra
continue
fipython /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_25_36.py
python /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_37_48.pySZERVER='x'
FELHASZNALO='x'
JELSZO='x'ftp -n -v $SZERVER << EOF
ascii
user $FELHASZNALO $JELSZO
prompt
cd ARPEGE
bin
send ARPEGEPCP30.png
send ARPEGEPCP36.png
send ARPEGEPCP42.png
send ARPEGEPCP48.pngEOF
while true
dosize=$(stat -c \%s ARPEGE_SP1_60H.grib2)
size=$(stat -c \%s ARPEGE_SP1_72H.grib2)
if [ $size -lt 38797312 -o $size -gt 45088768 ]
then
# hiba, varj 5 percet
sleep 5m
# probald ujra
continue
fipython /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_49_60.py
python /home/oliver/Magics_PCP_T_script/arpegepcpmslvhu_61_72.pySZERVER='x'
FELHASZNALO='x'
JELSZO='x'ftp -n -v $SZERVER << EOF
ascii
user $FELHASZNALO $JELSZO
prompt
cd ARPEGE
bin
send ARPEGEPCP54.png
send ARPEGEPCP60.png
send ARPEGEPCP66.png
send ARPEGEPCP72.png
exitEOF
Ezt a hibaüzenetet kapom így.
/Run_model3.sh: 120: ./Run_model3.sh: Syntax error: end of file unexpected (expecting "done")Ha kiszedem az EOF okat a feltöltés végéről akkor lefut a script de nem jó, mert invalid commandokat ir a többi python script futtatására.
LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
dabadab
titán
válasz olivera88 #2105 üzenetére
A while-ok végén kimaradtak a done-ok, azt reklamálja.
A formázási lehetőség között van olyan, hogy "Programkód", kód beírásakor használd azt, mert az megőrzi a formázást meg a speciális karaktereket (szögletes zárójelek, meg zárójel elé tett kettőspontból sem lesz smiley).
[ Szerkesztve ]
DRM is theft
-
dabadab
titán
válasz olivera88 #2107 üzenetére
Aha, ez így nagyon nem jó Az alapvető hiba az, hogy a size változó függvényét simán felülírod anélkül, hogy az előző értékét vizsgálnád, aztán ha jó, akkor újra azonnal letöltöd, ha meg nem, akkor vársz és újra megnézed (az azóta nyilván változatlan file méretet )
Megcsináltam belőle egy normális változatot (a tokent írd bele vissza, azt töröltem az eddigi hozzászólásaidból is, mert az szerintem nem publikus információ):
szerk: észrevettem benne egy kis hibát, javítottam
#!/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=${TOKEN}&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}"
done[ Szerkesztve ]
DRM is theft
-
dabadab
titán
válasz olivera88 #2109 üzenetére
"Ú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}"
donehelyett 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[ Szerkesztve ]
DRM is theft
Új hozzászólás Aktív témák
- Microsoft Windows 7 Pro COA matrica
- The Witcher 2: Assassins of Kings - nagydobozos, komplett, gépben sem volt
- Eredeti Windows 10, Windows 11, Office Akció: Office 2021, Office 2019, Office 2016 csak Retail
- World of Warcraft 15th Anniversary Collectors Edition - BONTATLAN - shipper barna kartonban - ÚJ
- PC játékok 2000Ft/db