Merge pull request #422 from benleb/patch-1

polish backup.sh: add username, .bashrc to backup files, fix shellcheck lint issues
This commit is contained in:
evilsocket 2019-10-27 18:00:13 +01:00 committed by GitHub
commit 15b815d8ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,44 +4,48 @@
UNIT_HOSTNAME=${1:-10.0.0.2} UNIT_HOSTNAME=${1:-10.0.0.2}
# output backup zip file # output backup zip file
OUTPUT=${2:-pwnagotchi-backup.zip} OUTPUT=${2:-pwnagotchi-backup.zip}
# username to use for ssh
USERNAME=${3:-pi}
# what to backup # what to backup
FILES_TO_BACKUP=( FILES_TO_BACKUP=(
/root/brain.nn /root/brain.nn
/root/brain.json /root/brain.json
/root/.api-report.json /root/.api-report.json
/root/.bashrc
/root/handshakes /root/handshakes
/root/peers /root/peers
/etc/pwnagotchi/ /etc/pwnagotchi/
/var/log/pwnagotchi.log /var/log/pwnagotchi.log
/home/pi/.bashrc
) )
ping -c 1 $UNIT_HOSTNAME >/dev/null || { 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." echo "@ unit ${UNIT_HOSTNAME} can't be reached, make sure it's connected and a static IP assigned to the USB interface."
exit 1 exit 1
} }
echo "@ backing up $UNIT_HOSTNAME to $OUTPUT ..." echo "@ backing up $UNIT_HOSTNAME to $OUTPUT ..."
ssh pi@$UNIT_HOSTNAME "sudo rm -rf /tmp/backup && sudo rm -rf /tmp/backup.zip" > /dev/null ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo rm -rf /tmp/backup && sudo rm -rf /tmp/backup.zip" > /dev/null
for file in "${FILES_TO_BACKUP[@]}"; do for file in "${FILES_TO_BACKUP[@]}"; do
dir=$(dirname $file) dir=$(dirname "$file")
echo "@ copying $file to /tmp/backup$dir" echo "@ copying $file to /tmp/backup$dir"
ssh pi@$UNIT_HOSTNAME "mkdir -p /tmp/backup$dir" > /dev/null ssh "${USERNAME}@${UNIT_HOSTNAME}" "mkdir -p /tmp/backup${dir}" > /dev/null
ssh pi@$UNIT_HOSTNAME "sudo cp -r $file /tmp/backup$dir" > /dev/null ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo cp -r ${file} /tmp/backup${dir}" > /dev/null
done done
ssh pi@$UNIT_HOSTNAME "sudo chown pi:pi -R /tmp/backup" > /dev/null ssh "${USERNAME}@${UNIT_HOSTNAME}" "sudo chown ${USERNAME}:${USERNAME} -R /tmp/backup" > /dev/null
echo "@ pulling from $UNIT_HOSTNAME ..." echo "@ pulling from $UNIT_HOSTNAME ..."
rm -rf /tmp/backup rm -rf /tmp/backup
scp -rC pi@$UNIT_HOSTNAME:/tmp/backup /tmp/ scp -rC "${USERNAME}@${UNIT_HOSTNAME}":/tmp/backup /tmp/
echo "@ compressing ..." echo "@ compressing ..."
zip -r -9 -q $OUTPUT /tmp/backup zip -r -9 -q "$OUTPUT" /tmp/backup
rm -rf /tmp/backup rm -rf /tmp/backup