Squashed commit of the following:

commit a2c130b657
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 19:15:43 2018 +0100

    Minor tweak

commit 257a327656
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 19:09:24 2018 +0100

    Fix -ext

commit b2e5b1ceec
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 15:28:24 2018 +0100

    Update README.md

commit 5e35563156
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 15:03:04 2018 +0100

    Comment options. Shutdown time as variable

commit 36386b00d8
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 14:58:12 2018 +0100

    Add geotagging

commit 59390b24ee
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 14:55:41 2018 +0100

    Delete config.cfg

commit 59fa6d0ced
Author: Dmitri Popov <dmpop@linux.com>
Date:   Tue Jan 30 14:51:11 2018 +0100

    Update config.cfg

commit 04feb7c260
Author: Dmitri Popov <dmpop@linux.com>
Date:   Mon Jan 29 15:45:55 2018 +0100

    Remove mount share. Add config

commit 1d84ece06b
Author: Dmitri Popov <dmpop@linux.com>
Date:   Mon Jan 29 15:43:58 2018 +0100

    Create config.cfg

commit 47ad5850cc
Author: Dmitri Popov <dmpop@linux.com>
Date:   Fri Jan 26 15:18:21 2018 +0100

    Replace NFS with SHARE

commit 1c2259d7e6
Author: Dmitri Popov <dmpop@linux.com>
Date:   Fri Jan 26 14:38:31 2018 +0100

    Add NFS mount and backup

commit e37bc58168
Author: Dmitri Popov <dmpop@linux.com>
Date:   Fri Jan 26 13:20:17 2018 +0100

    Add inactivity shutdown

commit d759ac4e59
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 18:22:09 2018 +0100

    Fix card id 🐒

commit c0ede01f95
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 18:04:41 2018 +0100

    Exclude id file from backup 🐒

commit e1c6695d21
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 17:54:48 2018 +0100

    Fix card id 🐒

commit a0edc912ce
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 17:52:31 2018 +0100

    Fix card id 🐒

commit 4d9832c47b
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 17:41:43 2018 +0100

    Fix card id 🐒

commit 3bf32c33fb
Author: Dmitri Popov <dmpop@linux.com>
Date:   Sat Jan 13 17:22:38 2018 +0100

    Date/time as card id 🐒

commit acd75a2e6b
Author: Dmitri Popov <dmpop@linux.com>
Date:   Mon Jan 8 19:00:34 2018 +0100

    Add else to handle existing .id file 🐒

commit e409e19bc8
Author: Dmitri Popov <dmpop@linux.com>
Date:   Mon Jan 8 18:46:38 2018 +0100

    Improve card ID handling 🐒
This commit is contained in:
Dmitri Popov
2018-01-30 19:25:34 +01:00
parent 091ae136ac
commit 47b4c4ee12
2 changed files with 43 additions and 25 deletions

View File

@@ -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