Squashed commit of the following:
commita2c130b657Author: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 19:15:43 2018 +0100 Minor tweak commit257a327656Author: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 19:09:24 2018 +0100 Fix -ext commitb2e5b1ceecAuthor: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 15:28:24 2018 +0100 Update README.md commit5e35563156Author: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 15:03:04 2018 +0100 Comment options. Shutdown time as variable commit36386b00d8Author: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 14:58:12 2018 +0100 Add geotagging commit59390b24eeAuthor: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 14:55:41 2018 +0100 Delete config.cfg commit59fa6d0cedAuthor: Dmitri Popov <dmpop@linux.com> Date: Tue Jan 30 14:51:11 2018 +0100 Update config.cfg commit04feb7c260Author: Dmitri Popov <dmpop@linux.com> Date: Mon Jan 29 15:45:55 2018 +0100 Remove mount share. Add config commit1d84ece06bAuthor: Dmitri Popov <dmpop@linux.com> Date: Mon Jan 29 15:43:58 2018 +0100 Create config.cfg commit47ad5850ccAuthor: Dmitri Popov <dmpop@linux.com> Date: Fri Jan 26 15:18:21 2018 +0100 Replace NFS with SHARE commit1c2259d7e6Author: Dmitri Popov <dmpop@linux.com> Date: Fri Jan 26 14:38:31 2018 +0100 Add NFS mount and backup commite37bc58168Author: Dmitri Popov <dmpop@linux.com> Date: Fri Jan 26 13:20:17 2018 +0100 Add inactivity shutdown commitd759ac4e59Author: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 18:22:09 2018 +0100 Fix card id 🐒 commitc0ede01f95Author: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 18:04:41 2018 +0100 Exclude id file from backup 🐒 commite1c6695d21Author: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 17:54:48 2018 +0100 Fix card id 🐒 commita0edc912ceAuthor: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 17:52:31 2018 +0100 Fix card id 🐒 commit4d9832c47bAuthor: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 17:41:43 2018 +0100 Fix card id 🐒 commit3bf32c33fbAuthor: Dmitri Popov <dmpop@linux.com> Date: Sat Jan 13 17:22:38 2018 +0100 Date/time as card id 🐒 commitacd75a2e6bAuthor: Dmitri Popov <dmpop@linux.com> Date: Mon Jan 8 19:00:34 2018 +0100 Add else to handle existing .id file 🐒 commite409e19bc8Author: Dmitri Popov <dmpop@linux.com> Date: Mon Jan 8 18:46:38 2018 +0100 Improve card ID handling 🐒
This commit is contained in:
66
backup.sh
66
backup.sh
@@ -5,14 +5,31 @@
|
||||
# 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"
|
||||
# and other settings
|
||||
STORAGE_DEV="sda1" # Name of the storage device
|
||||
STORAGE_MOUNT_POINT="/media/storage" # Mount point of the storage device
|
||||
CARD_DEV="sdb1" # Name of the storage card
|
||||
CARD_MOUNT_POINT="/media/card" # Mount point of the storage card
|
||||
GEO_REF="GEOREF.JPG" # Name of the reference photo to be used for geotagging
|
||||
SHUTD="5" # Minutes to wait before shutdown due to inactivity
|
||||
|
||||
# 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
|
||||
|
||||
# Set the ACT LED to heartbeat
|
||||
sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger"
|
||||
|
||||
# Shutdown after a specified period of time (in minutes) if no device is connected.
|
||||
sudo shutdown -h $SHUTD "Shutdown is activated. To cancel: sudo shutdown -c"
|
||||
|
||||
# Wait for a USB storage device (e.g., a USB flash drive)
|
||||
STORAGE=$(ls /dev/* | grep $STORAGE_DEV | cut -d"/" -f3)
|
||||
while [ -z ${STORAGE} ]
|
||||
@@ -24,21 +41,13 @@ done
|
||||
# When the USB storage device is detected, mount it
|
||||
mount /dev/$STORAGE_DEV $STORAGE_MOUNT_POINT
|
||||
|
||||
# Cancel shutdown
|
||||
sudo shutdown -c
|
||||
|
||||
# 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 ]
|
||||
@@ -52,21 +61,30 @@ 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 the CARD_ID file containing a random 8-digit identifier if doesn't exist
|
||||
if [ ! -f $CARD_MOUNT_POINT/CARD_ID ]; then
|
||||
< /dev/urandom tr -cd 0-9 | head -c 8 > $CARD_MOUNT_POINT/CARD_ID
|
||||
# Create a .id random identifier file if doesn't exist
|
||||
cd $CARD_MOUNT_POINT
|
||||
if [ ! -f *.id ]; then
|
||||
touch $(date -d "today" +"%Y%m%d%H%M").id
|
||||
fi
|
||||
ID_FILE=$(ls *.id)
|
||||
ID="${ID_FILE%.*}"
|
||||
cd
|
||||
|
||||
# Set the backup path
|
||||
BACKUP_PATH=$STORAGE_MOUNT_POINT/"$ID"
|
||||
|
||||
# Log the output of the lsblk command for troubleshooting
|
||||
sudo lsblk > lsblk.log
|
||||
|
||||
# Read the 8-digit identifier number from the CARD_ID file on the card
|
||||
# and use it as a directory name in the backup path
|
||||
read -r ID < $CARD_MOUNT_POINT/CARD_ID
|
||||
BACKUP_PATH=$STORAGE_MOUNT_POINT/"$ID"
|
||||
|
||||
# Perform backup using rsync
|
||||
rsync -avh $CARD_MOUNT_POINT/ $BACKUP_PATH
|
||||
rsync -av --exclude "*.id" $CARD_MOUNT_POINT/ $BACKUP_PATH
|
||||
|
||||
# Geotag photos if the reference photo exists
|
||||
if [ -f "$STORAGE_MOUNT_POINT/$GEO_REF" ]; then
|
||||
cd $STORAGE_MOUNT_POINT
|
||||
exiftool −overwrite_original_in_place -r -ext jpg -tagsFromFile $GEO_REF -gps:all .
|
||||
fi
|
||||
|
||||
# Turn off the ACT LED to indicate that the backup is completed
|
||||
sudo sh -c "echo 0 > /sys/class/leds/led0/brightness"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user