15 changed files with 2126 additions and 10574 deletions
@ -1,163 +0,0 @@ |
|||
#!/bin/bash |
|||
echo "" |
|||
|
|||
## get basic info |
|||
source /home/admin/raspiblitz.info |
|||
|
|||
# *** BITCOIN (just mainnet) *** |
|||
bitcoinList="" # url to list with other sources |
|||
#bitcoinUrl="ftp://anonymous:anonymous@91.83.237.185:21/raspiblitz-bitcoin-2018-07-16" |
|||
bitcoinUrl="ftp://f00f39c4:download@w0189aba.kasserver.com/" |
|||
bitcoinSize=253000000 # 253827180-tolerance |
|||
|
|||
# *** LITECOIN *** |
|||
litecoinList="" # url to list with other sources |
|||
litecoinUrl="ftp://anonymous:anonymous@ftp.rotzoll.de/pub/raspiblitz-litecoin-2018-11-30" |
|||
litecoinSize=22220000 # 22221160-tolerance |
|||
|
|||
# NOTE TO GET THE SIZE RIGHT: for new download add 9999999999 as size. Run download. |
|||
# When finished the warning comes up and behind WARNING: copy that number |
|||
|
|||
# settings based on network |
|||
list=$bitcoinList |
|||
url=$bitcoinUrl |
|||
size=$bitcoinSize |
|||
if [ "$network" = "litecoin" ]; then |
|||
list=$litecoinList |
|||
url=$litecoinUrl |
|||
size=$litecoinSize |
|||
fi |
|||
|
|||
# screen background monitoring settings |
|||
name="Download" |
|||
targetDir="/mnt/hdd/download/" |
|||
targetSize=$size |
|||
command="sudo wget -c -r -P ${targetDir} -q --show-progress ${url}" |
|||
|
|||
# starting session if needed |
|||
echo "checking if ${name} has a running screen session" |
|||
screen -wipe 1>/dev/null |
|||
isRunning=$( screen -S ${name} -ls | grep "${name}" -c ) |
|||
echo "isRunning(${isRunning})" |
|||
if [ ${isRunning} -eq 0 ]; then |
|||
echo "Starting screen session" |
|||
sudo mkdir ${targetDir} 2>/dev/null |
|||
screen -S ${name} -dm ${command} |
|||
else |
|||
echo "Continue screen session" |
|||
fi |
|||
sleep 3 |
|||
|
|||
# monitor session |
|||
screenDump="... started ..." |
|||
actualSize=0 |
|||
while : |
|||
do |
|||
|
|||
# check if session is still running |
|||
screen -wipe 1>/dev/null |
|||
isRunning=$( screen -S ${name} -ls | grep "${name}" -c ) |
|||
if [ ${isRunning} -eq 0 ]; then |
|||
echo "OK - session finished" |
|||
break |
|||
fi |
|||
|
|||
# calculate progress and write it to file for LCD to read |
|||
freshSize=$( du -s ${targetDir} | head -n1 | awk '{print $1;}' ) |
|||
if [ ${#actualSize} -eq 0 ]; then |
|||
freshSize=0 |
|||
fi |
|||
progress=$(echo "scale=2; $freshSize*100/$targetSize" | bc) |
|||
echo $progress > ".${name}.progress" |
|||
|
|||
actualSize=$freshSize |
|||
|
|||
# display info screen |
|||
clear |
|||
echo "****************************************************" |
|||
echo "Monitoring Screen Session: ${name}" |
|||
echo "Progress: ${progress}% (${actualSize} of ${targetSize})" |
|||
echo "If needed press key x to stop ${name}" |
|||
echo "NOTICE: This can take multiple hours or days !!" |
|||
echo "Its OK to close terminal now and SSH back in later." |
|||
echo "****************************************************" |
|||
screen -S ${name} -X hardcopy .${name}.out |
|||
newScreenDump=$(cat .${name}.out | grep . | tail -8) |
|||
if [ ${#newScreenDump} -gt 0 ]; then |
|||
screenDump=$newScreenDump |
|||
fi |
|||
echo "$screenDump" |
|||
|
|||
# wait 2 seconds for key input |
|||
read -n 1 -t 2 keyPressed |
|||
|
|||
# check if user wants to abort session |
|||
if [ "${keyPressed}" = "x" ]; then |
|||
echo "" |
|||
echo "Aborting ${name}" |
|||
break |
|||
fi |
|||
|
|||
done |
|||
|
|||
# clean up |
|||
rm -f .${name}.out |
|||
rm -f .${name}.progress |
|||
|
|||
# quit session if still running |
|||
if [ ${isRunning} -eq 1 ]; then |
|||
# get the PID of screen session |
|||
sessionPID=$(screen -ls | grep "${name}" | cut -d "." -f1 | xargs) |
|||
echo "killing screen session PID(${sessionPID})" |
|||
# kill all child processes of screen sceesion |
|||
pkill -P ${sessionPID} |
|||
echo "proccesses killed" |
|||
sleep 3 |
|||
# tell the screen session to quit and wait a bit |
|||
screen -S ${name} -X quit 1>/dev/null |
|||
sleep 3 |
|||
echo "cleaning screen" |
|||
screen -wipe 1>/dev/null |
|||
sleep 3 |
|||
fi |
|||
|
|||
# the path wget will download to |
|||
targetPath=$(echo ${url} | cut -d '@' -f2) |
|||
echo "path to downloaded data is ${targetPath}" |
|||
|
|||
# calculate progress and write it to file for LCD to read |
|||
finalSize=$( du -s ${targetDir} 2>/dev/null | head -n1 | awk '{print $1;}' ) |
|||
if [ ${#finalSize} -eq 0 ]; then |
|||
finalSize=0 |
|||
fi |
|||
echo "final size is ${finalSize} of targeted size ${targetSize}" |
|||
|
|||
# check result |
|||
if [ ${finalSize} -lt ${targetSize} ]; then |
|||
|
|||
# Download failed |
|||
sleep 3 |
|||
echo -ne '\007' |
|||
dialog --title " WARNING (${finalSize}) " --yesno "The download failed or is not complete. Maybe try again (later). Do you want keep already downloaded data for next try?" 8 57 |
|||
response=$? |
|||
case $response in |
|||
1) sudo rm -rf /mnt/hdd/download ;; |
|||
esac |
|||
./00raspiblitz.sh |
|||
exit 1; |
|||
|
|||
else |
|||
|
|||
# Download worked |
|||
echo "*** Moving Files ***" |
|||
sudo mv ${targetDir}${targetPath} /mnt/hdd/${network} |
|||
echo "OK" |
|||
|
|||
if [ ${setupStep} -lt 100 ]; then |
|||
# set SetupState |
|||
sudo sed -i "s/^setupStep=.*/setupStep=50/g" /home/admin/raspiblitz.info |
|||
# continue setup |
|||
./60finishHDD.sh |
|||
fi |
|||
|
|||
fi |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue