Christian Rotzoll
6 years ago
1 changed files with 143 additions and 0 deletions
@ -0,0 +1,143 @@ |
|||
#!/bin/bash |
|||
|
|||
# command info |
|||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then |
|||
echo "small rescue script to to backup or restore" |
|||
echo "lnd.rescue.sh [backup|restore]" |
|||
exit 1 |
|||
fi |
|||
|
|||
localip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/') |
|||
|
|||
mode="$1" |
|||
if [ ${mode} = "backup" ]; then |
|||
|
|||
################################ |
|||
# BACKUP |
|||
################################ |
|||
|
|||
echo "*** LND.RESCUE --> BACKUP" |
|||
|
|||
# stop LND |
|||
echo "Stopping lnd..." |
|||
sudo systemctl stop lnd |
|||
sleep 5 |
|||
echo "OK" |
|||
echo |
|||
|
|||
# zip it |
|||
sudo tar -zcvf /home/admin/lnd-rescue.tar.gz /mnt/hdd/lnd |
|||
sudo chown admin:admin /home/admin/lnd-rescue.tar.gz |
|||
|
|||
# name with md5 checksum |
|||
md5checksum=$(md5sum /home/admin/lnd-rescue.tar.gz) |
|||
mv /home/admin/lnd-rescue.tar.gz /home/admin/lnd-rescue-${md5checksum}.tar.gz |
|||
|
|||
# start LND |
|||
echo "Starting lnd..." |
|||
sudo systemctl start lnd |
|||
echo "OK" |
|||
echo |
|||
|
|||
# offer SCP for download |
|||
echo "****************************" |
|||
echo "* DOWNLOAD THE BACKUP FILE *" |
|||
echo "****************************" |
|||
echo |
|||
echo "RUN THE FOLLOWING COMMAND ON YOUR LAPTOP IN NEW TERMINAL:" |
|||
echo "scp -r admin@${localip}:/home/admin/lnd-rescue-*.tar.gz ./" |
|||
echo "" |
|||
echo "Use password A to authenticate file transfere." |
|||
echo |
|||
|
|||
elif [ ${mode} = "restore" ]; then |
|||
|
|||
################################ |
|||
# RESTORE |
|||
################################ |
|||
|
|||
echo "*** LND.RESCUE --> RESTORE" |
|||
echo "" |
|||
|
|||
filename="" |
|||
while [ ${#filename} -eq 0 ] |
|||
do |
|||
countZips=$(sudo ls /home/admin/lnd-rescue-*.tar.gz | grep -c 'lnd-rescue') |
|||
if [ ${countZips} -lt 1 ]; then |
|||
echo "**************************" |
|||
echo "* UPLOAD THE BACKUP FILE *" |
|||
echo "**************************" |
|||
echo |
|||
echo "If you have a lnd-rescue backup file on your laptop you can now" |
|||
echo "upload it and restore the your old LND state." |
|||
echo |
|||
echo "To make upload open a new terminal on your laptop," |
|||
echo "change into the directory where your lnd-rescue file is and" |
|||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:" |
|||
echo "scp -r admin@${localip}:/home/admin/lnd-rescue-*.tar.gz ./" |
|||
echo "" |
|||
echo "Use password A to authenticate file transfere." |
|||
echo |
|||
echo "PRESS ENTER when upload is done. Use CTRL-C to abort." |
|||
fi |
|||
if [ ${countZips} -gt 1 ]; then |
|||
echo "!! WARNING !!" |
|||
echo "There are multiple lnd-rescue files in directory /home/admin." |
|||
echo "Make sure there is only one to workd with and start again." |
|||
exit 1 |
|||
fi |
|||
if [ ${countZips} -eq 1 ]; then |
|||
|
|||
filename=$(sudo ls /home/admin/lnd-rescue-*.tar.gz) |
|||
echo "OK -> found file to restore: ${filename}" |
|||
|
|||
md5checksum=$(md5sum ${filename} | head -n1 | cut -d " " -f1) |
|||
isCorrect=$(echo ${filename} | grep -c ${md5checksum}) |
|||
if [ ${isCorrect} -eq 1 ]; then |
|||
echo "OK -> checksum looks good: ${md5checksum}" |
|||
else |
|||
echo "!!! FAIL -> Checksum not correct." |
|||
echo "Maybe transfere failed? Continue on your own risk!" |
|||
echo "Recommend to abort and upload again!" |
|||
fi |
|||
|
|||
echo |
|||
echo "WARNING: This will delete the actual LND state/funds of this RaspiBlitz." |
|||
echo |
|||
echo "PRESS ENTER to start restore. Use CTRL-C to abort." |
|||
fi |
|||
read key |
|||
done |
|||
|
|||
# stop LND |
|||
echo "Stopping lnd..." |
|||
systemctl stop lnd |
|||
sleep 5 |
|||
echo "OK" |
|||
echo |
|||
|
|||
# clean DIR |
|||
echo "Cleaning LND data ..." |
|||
sudo rm -r /mnt/hdd/lnd/* |
|||
echo "OK" |
|||
echo |
|||
|
|||
# unpack zip |
|||
echo "Restoring LND data ..." |
|||
sudo tar -xfv ${filename} -C / |
|||
echo "OK" |
|||
echo |
|||
|
|||
# start LND |
|||
echo "Starting lnd..." |
|||
sudo systemctl start lnd |
|||
echo "OK" |
|||
echo |
|||
|
|||
echo "DONE - please check if LND starts up correctly with restored state and funds." |
|||
echo "Keep in mind that some channels got forced closed by channel partners in the meanwhile." |
|||
echo |
|||
|
|||
else |
|||
echo "unknown parameter '${mode}' - exit" |
|||
fi |
Loading…
Reference in new issue