Merge pull request from neutralinsomniac/backup_script_enhancements

enhancement: Improve the backup script
This commit is contained in:
evilsocket 2019-10-31 19:06:32 +01:00 committed by GitHub
commit 53f99f4c28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 30 deletions

@ -3,7 +3,7 @@
# name of the ethernet gadget interface on the host
UNIT_HOSTNAME=${1:-10.0.0.2}
# output backup zip file
OUTPUT=${2:-pwnagotchi-backup.zip}
OUTPUT=${2:-pwnagotchi-backup.tgz}
# username to use for ssh
USERNAME=${3:-pi}
# what to backup
@ -19,38 +19,10 @@ FILES_TO_BACKUP=(
/home/pi/.bashrc
)
if ! type "zip" >/dev/null 2>&1; then
echo "This script requires zip, please resolve and try again"
exit 1
fi
ping -c 1 "${UNIT_HOSTNAME}" >/dev/null || {
echo "@ unit ${UNIT_HOSTNAME} can't be reached, make sure it's connected and a static IP assigned to the USB interface."
exit 1
}
echo "@ backing up $UNIT_HOSTNAME to $OUTPUT ..."
ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo rm -rf /tmp/backup && sudo rm -rf /tmp/backup.zip" > /dev/null
for file in "${FILES_TO_BACKUP[@]}"; do
dir=$(dirname "$file")
echo "@ copying $file to /tmp/backup$dir"
ssh "${USERNAME}@${UNIT_HOSTNAME}" "mkdir -p /tmp/backup${dir}" > /dev/null
ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo cp -r ${file} /tmp/backup${dir}" > /dev/null
done
ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo chown ${USERNAME}:${USERNAME} -R /tmp/backup" > /dev/null
echo "@ pulling from $UNIT_HOSTNAME ..."
rm -rf /tmp/backup
scp -rC "${USERNAME}@${UNIT_HOSTNAME}":/tmp/backup /tmp/
echo "@ compressing ..."
zip -r -9 -q "$OUTPUT" /tmp/backup
rm -rf /tmp/backup
ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo tar cv ${FILES_TO_BACKUP[@]}" | gzip -9 > "$OUTPUT"

16
scripts/restore.sh Executable file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
# name of the ethernet gadget interface on the host
UNIT_HOSTNAME=${1:-10.0.0.2}
# output backup zip file
BACKUP=${2:-pwnagotchi-backup.tgz}
# username to use for ssh
USERNAME=${3:-pi}
ping -c 1 "${UNIT_HOSTNAME}" >/dev/null || {
echo "@ unit ${UNIT_HOSTNAME} can't be reached, make sure it's connected and a static IP assigned to the USB interface."
exit 1
}
echo "@ restoring $BACKUP to $UNIT_HOSTNAME ..."
cat ${BACKUP} | ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo tar xzv -C /"