mirror of
https://github.com/jayofelony/pwnagotchi.git
synced 2025-07-01 18:37:27 -04:00
Make backup / restore use POSIX shell for portability.
backup.sh: - Add use getopts for a more friendly user interface. - Add timeout to ping check. - Add unix epoch to backup file names. - Backup ssh information (/etc/ssh, $USER/.ssh). restore.sh: - Add use getopts for a more friendly user interface. - Add timeout to ping check. - If user doesn't specify a backup file to restore, attempt to find the latest for the host name passed in. Signed-off-by: Aaron Bieber <aaron@bolddaemon.com>
This commit is contained in:
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user