Skip to content
This repository has been archived by the owner on Mar 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request evilsocket#580 from qbit/bkp_rstr_compat
Browse files Browse the repository at this point in the history
Make backup / restore use POSIX shell for portability.
  • Loading branch information
evilsocket authored Nov 11, 2019
2 parents 8e38b92 + 35f6545 commit 726be7b
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 22 deletions.
62 changes: 45 additions & 17 deletions scripts/backup.sh
Original file line number Diff line number Diff line change
@@ -1,26 +1,54 @@
#!/usr/bin/env bash
#!/bin/sh

usage() {
echo "Usage: backup.sh [-honu] [-h] [-u user] [-n host name or ip] [-o output]"
}

while getopts "ho:n:u:" arg; do
case $arg in
h)
usage
exit
;;
n)
UNIT_HOSTNAME=$OPTARG
;;
o)
OUTPUT=$OPTARG
;;
u)
USERNAME=$OPTARG
;;
*)
usage
exit 1
esac
done

# name of the ethernet gadget interface on the host
UNIT_HOSTNAME=${1:-10.0.0.2}
UNIT_HOSTNAME=${UNIT_HOSTNAME:-10.0.0.2}
# output backup tgz file
OUTPUT=${2:-pwnagotchi-backup.tgz}
OUTPUT=${OUTPUT:-${UNIT_HOSTNAME}-backup-$(date +%s).tgz}
# username to use for ssh
USERNAME=${3:-pi}
USERNAME=${USERNAME:-pi}
# what to backup
FILES_TO_BACKUP=(
/root/brain.nn
/root/brain.json
/root/.api-report.json
/root/.bashrc
/root/handshakes
/root/peers
/etc/pwnagotchi/
/var/log/pwnagotchi.log
/var/log/pwnagotchi*.gz
/home/pi/.bashrc
)
FILES_TO_BACKUP="/root/brain.nn \
/root/brain.json \
/root/.api-report.json \
/root/.ssh \
/root/.bashrc \
/root/.profile \
/root/handshakes \
/root/peers \
/etc/pwnagotchi/ \
/etc/ssh/ \
/var/log/pwnagotchi.log \
/var/log/pwnagotchi*.gz \
/home/pi/.ssh \
/home/pi/.bashrc \
/home/pi/.profile"

ping -c 1 "${UNIT_HOSTNAME}" >/dev/null || {
ping -w 3 -c 1 "${UNIT_HOSTNAME}" > /dev/null 2>&1 || {
echo "@ unit ${UNIT_HOSTNAME} can't be reached, make sure it's connected and a static IP assigned to the USB interface."
exit 1
}
Expand Down
47 changes: 42 additions & 5 deletions scripts/restore.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,50 @@
#!/usr/bin/env bash
#!/bin/sh

usage() {
echo "Usage: restore.sh [-bhnu] [-h] [-b backup name] [-n host name] [-u user name]"
}

while getopts "hb:n:u:" arg; do
case $arg in
b)
BACKUP=$OPTARG
;;
h)
usage
exit
;;
n)
UNIT_HOSTNAME=$OPTARG
;;
u)
USERNAME=$OPTARG
;;
*)
exit 1
esac
done
# name of the ethernet gadget interface on the host
UNIT_HOSTNAME=${1:-10.0.0.2}
UNIT_HOSTNAME=${UNIT_HOSTNAME:-10.0.0.2}
# output backup tgz file
BACKUP=${2:-pwnagotchi-backup.tgz}
if [ -z $BACKUP ]; then
BACKUP=$(ls -rt ${UNIT_HOSTNAME}-backup-*.tgz 2>/dev/null | tail -n1)
if [ -z $BACKUP ]; then
echo "@ Can't find backup file. Please specify one with '-b'"
exit 1
fi
echo "@ Found backup file:"
echo "\t${BACKUP}"
echo -n "@ continue restroring this file? (y/n) "
read CONTINUE
CONTINUE=$(echo "${CONTINUE}" | tr "[:upper:]" "[:lower:]")
if [ "${CONTINUE}" != "y" ]; then
exit 1
fi
fi
# username to use for ssh
USERNAME=${3:-pi}
USERNAME=${USERNAME:-pi}

ping -c 1 "${UNIT_HOSTNAME}" >/dev/null || {
ping -w 3 -c 1 "${UNIT_HOSTNAME}" > /dev/null 2>&1 || {
echo "@ unit ${UNIT_HOSTNAME} can't be reached, make sure it's connected and a static IP assigned to the USB interface."
exit 1
}
Expand Down

0 comments on commit 726be7b

Please sign in to comment.