#!/usr/bin/env bash # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # IMPORTANT: # Run the install-little-backup-box.sh script first # to install the required packages and configure the system. # Specify devices and their their mount points # as well as other settings STORAGE_MOUNT_POINT="/mnt/SMB" # 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 SHUTD="5" # Minutes to wait before shutdown due to inactivity # Wait for a card reader or a camera # takes first device found CARD_READER=($(ls /dev/* | grep "$CARD_DEV" | cut -d"/" -f3)) until [ ! -z "${CARD_READER[0]}" ] do sleep 1 CARD_READER=($(ls /dev/* | grep "$CARD_DEV" | cut -d"/" -f3)) done # If the card reader is detected, mount it and obtain its UUID if [ ! -z "${CARD_READER[0]}" ]; then mount /dev"/${CARD_READER[0]}" "$CARD_MOUNT_POINT" CARD_COUNT=$(find $CARD_MOUNT_POINT/ -type f | wc -l) # Create a .id random identifier file if doesn't exist cd "$CARD_MOUNT_POINT" if [ ! -f *.id ]; then random=$(echo $RANDOM) touch $(date -d "today" +"%Y%m%d%H%M")-$random.id fi ID_FILE=$(ls *.id) ID="${ID_FILE%.*}" cd # Set the backup path BACKUP_PATH="$STORAGE_MOUNT_POINT"/"$ID" STORAGE_COUNT=$(find $BACKUP_PATH/ -type f | wc -l) # Perform backup using rsync rsync -avh --info=progress2 --exclude "*.id" "$CARD_MOUNT_POINT"/ "$BACKUP_PATH" & pid=$! while kill -0 $pid 2> /dev/null do STORAGE_COUNT=$(find $BACKUP_PATH/ -type f | wc -l) PERCENT=$(expr 100 \* $STORAGE_COUNT / $CARD_COUNT) sudo sh -c "echo $PERCENT" #IF STATEMENTS HERE FOR LEDS # then #LEDS #fi sleep 1 done fi # Shutdown sync shutdown -h now