fix: refactored backup.sh script to not require root login
This commit is contained in:
parent
41ea0e0747
commit
c954bf8ffa
@ -4,8 +4,6 @@
|
||||
UNIT_HOSTNAME=${1:-10.0.0.2}
|
||||
# output backup zip file
|
||||
OUTPUT=${2:-pwnagotchi-backup.zip}
|
||||
# temporary folder
|
||||
TEMP_BACKUP_FOLDER=/tmp/pwnagotchi_backup
|
||||
# what to backup
|
||||
FILES_TO_BACKUP=(
|
||||
/root/brain.nn
|
||||
@ -13,9 +11,6 @@ FILES_TO_BACKUP=(
|
||||
/root/.api-report.json
|
||||
/root/handshakes
|
||||
/etc/pwnagotchi/
|
||||
/etc/hostname
|
||||
/etc/hosts
|
||||
/etc/motd
|
||||
/var/log/pwnagotchi.log
|
||||
)
|
||||
|
||||
@ -26,17 +21,24 @@ ping -c 1 $UNIT_HOSTNAME >/dev/null || {
|
||||
|
||||
echo "@ backing up $UNIT_HOSTNAME to $OUTPUT ..."
|
||||
|
||||
rm -rf "$TEMP_BACKUP_FOLDER"
|
||||
ssh pi@$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 " $file -> $TEMP_BACKUP_FOLDER$dir/"
|
||||
mkdir -p "$TEMP_BACKUP_FOLDER/$dir"
|
||||
scp -Cr root@$UNIT_HOSTNAME:$file "$TEMP_BACKUP_FOLDER$dir/"
|
||||
|
||||
echo "@ copying $file to /tmp/backup$dir"
|
||||
|
||||
ssh pi@$UNIT_HOSTNAME "mkdir -p /tmp/backup$dir" > /dev/null
|
||||
ssh pi@$UNIT_HOSTNAME "sudo cp -r $file /tmp/backup$dir" > /dev/null
|
||||
done
|
||||
|
||||
ZIPFILE="$PWD/$OUTPUT"
|
||||
pushd $PWD
|
||||
cd "$TEMP_BACKUP_FOLDER"
|
||||
zip -r -9 -q "$ZIPFILE" .
|
||||
popd
|
||||
echo "@ pulling from $UNIT_HOSTNAME ..."
|
||||
|
||||
rm -rf /tmp/backup
|
||||
scp -rC pi@$UNIT_HOSTNAME:/tmp/backup /tmp/
|
||||
|
||||
echo "@ compressing ..."
|
||||
|
||||
zip -r -9 -q $OUTPUT /tmp/backup
|
||||
rm -rf /tmp/backup
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user