Files
little-backup-box-Bram/backup.sh
Dmitri Popov a0edc912ce Fix card id 🐒
2018-01-13 17:52:31 +01:00

79 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# IMPORTANT:
# Run the install-little-backup-box.sh script first
# to install the required packages and configure the system.
# Specify devices and their mount points
STORAGE_DEV="sda1"
STORAGE_MOUNT_POINT="/media/storage"
CARD_DEV="sdb1"
CARD_MOUNT_POINT="/media/card"
# Set the ACT LED to heartbeat
sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger"
# Wait for a USB storage device (e.g., a USB flash drive)
STORAGE=$(ls /dev/* | grep $STORAGE_DEV | cut -d"/" -f3)
while [ -z ${STORAGE} ]
do
sleep 1
STORAGE=$(ls /dev/* | grep $STORAGE_DEV | cut -d"/" -f3)
done
# When the USB storage device is detected, mount it
mount /dev/$STORAGE_DEV $STORAGE_MOUNT_POINT
# Set the ACT LED to blink at 1000ms to indicate that the storage device has been mounted
sudo sh -c "echo timer > /sys/class/leds/led0/trigger"
sudo sh -c "echo 1000 > /sys/class/leds/led0/delay_on"
# If there is a wpa_supplicant.conf file in the root of the storage device
# Rename the original config file,
# move wpa_supplicant.conf from the card to /etc/wpa_supplicant/
# Reboot to enable networking
if [ -f "$STORAGE_MOUNT_POINT/wpa_supplicant.conf" ]; then
sudo sh -c "echo 100 > /sys/class/leds/led0/delay_on"
mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.bak
mv "$STORAGE_MOUNT_POINT/wpa_supplicant.conf" /etc/wpa_supplicant/wpa_supplicant.conf
reboot
fi
# Wait for a card reader or a camera
CARD_READER=$(ls /dev/* | grep $CARD_DEV | cut -d"/" -f3)
until [ ! -z $CARD_READER ]
do
sleep 1
CARD_READER=$(ls /dev/sd* | grep $CARD_DEV | cut -d"/" -f3)
done
# If the card reader is detected, mount it and obtain its UUID
if [ ! -z $CARD_READER ]; then
mount /dev/$CARD_DEV $CARD_MOUNT_POINT
# # Set the ACT LED to blink at 500ms to indicate that the card has been mounted
sudo sh -c "echo 500 > /sys/class/leds/led0/delay_on"
# Create a .id random identifier file if doesn't exist
if [ ! -f $CARD_MOUNT_POINT/*.id ]; then
cd $CARD_MOUNT_POINT/
touch $(date -d "today" +"%Y%m%d%H%M").id
fi
ID_FILE=$(ls *.id)
ID="${ID_FILE%.*}"
cd
fi
# Set the backup path
BACKUP_PATH=$STORAGE_MOUNT_POINT/"$ID"
# Log the output of the lsblk command for troubleshooting
sudo lsblk > lsblk.log
# Perform backup using rsync
rsync -avh $CARD_MOUNT_POINT/ $BACKUP_PATH
# Turn off the ACT LED to indicate that the backup is completed
sudo sh -c "echo 0 > /sys/class/leds/led0/brightness"
fi
# Shutdown
sync
shutdown -h now