Auto add target dir based on camera model

This commit is contained in:
Dmitri Popov
2018-03-17 14:11:06 +01:00
parent 58d8539069
commit 41270d5a65
4 changed files with 57 additions and 7 deletions

View File

@@ -24,10 +24,18 @@ Uncomment then the line below by removing *#*:
Save the changes. Save the changes.
Keep in mind that in this case, the transferred files are saved in the */home/pi/BACKUP* directory on the system storage card. Make sure that the card you use with Raspberry Pi has adequate storage capacity. Keep in mind that in this case, the transferred files are saved in the */home/pi/[CAMERA MODEL]* directory on the system storage card. Make sure that the card you use with Raspberry Pi has adequate storage capacity.
**Important** Make sure that the camera is set to the MTP USB connection mode. **Important** Make sure that the camera is set to the MTP USB connection mode.
### Alternative Direct File Transfer Script
Some cameras (notably Sony Alpha models) may not work with the default direct file transfer script. In this case, try the *gphoto-backup-alt.sh* script instead by enabling the following cron job as described above:
#@reboot sudo /home/pi/little-backup-box/gphoto-backup-alt.sh > /home/pi/gphoto-backup-alt.log
This script saves transferred files in the */home/pi/BACKUP* directory.
## Usage ## Usage
1. Boot the Raspberry Pi 1. Boot the Raspberry Pi

37
gphoto-backup-alt.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
# IMPORTANT:
# Run the install-little-backup-box.sh script first
# to install the required packages and configure the system.
# Specify a storage device and its mount point
STORAGE_MOUNT_POINT="/home/pi/BACKUP"
# Set the ACT LED to heartbeat
sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger"
# Create the target directory if it doesn't exist
if [ ! -d "$STORAGE_MOUNT_POINT" ]; then
mkdir $STORAGE_MOUNT_POINT
fi
# Wait for camera
DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//')
while [ -z ${DEVICE} ]
do
sleep 1
DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//')
done
# Set the ACT LED to blink at 500ms to indicate that the camera has been detected
sudo sh -c "echo 500 > /sys/class/leds/led0/delay_on"
# Switch to STORAGE_MOUNT_POINT and transfer files from the camera
# Rename the transferred files using the YYYYMMDD-HHMMSS format
cd $STORAGE_MOUNT_POINT
gphoto2 --get-all-files --skip-existing --filename=%Y%m%d-%H%M%S.%C
# Turn off the ACT LED to indicate that the backup is completed
sudo sh -c "echo 0 > /sys/class/leds/led0/brightness"
# Shutdown
shutdown -h now

View File

@@ -1,16 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# IMPORTANT:
# Run the install-little-backup-box.sh script first
# to install the required packages and configure the system.
# Specify a storage device and its mount point # Specify a storage device and its mount point
STORAGE_MOUNT_POINT="/home/pi/BACKUP" HOME_DIR="/home/pi"
# Set the ACT LED to heartbeat # Set the ACT LED to heartbeat
sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger" sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger"
# Create the target directory if it doesn't exist
if [ ! -d "$STORAGE_MOUNT_POINT" ]; then
mkdir $STORAGE_MOUNT_POINT
fi
# Wait for camera # Wait for camera
DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//') DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//')
while [ -z ${DEVICE} ] while [ -z ${DEVICE} ]
@@ -19,6 +18,11 @@ while [ -z ${DEVICE} ]
DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//') DEVICE=$(gphoto2 --auto-detect | grep usb | cut -b 36-42 | sed 's/,/\//')
done done
# Obtain camera model
# Create the target directory with the camera model as its name
CAMERA=$(gphoto2 --summary | grep "Model" | cut -d: -f2 | tr -d '[:space:]')
STORAGE_MOUNT_POINT="$HOME_DIR/$CAMERA"
# Set the ACT LED to blink at 500ms to indicate that the camera has been detected # Set the ACT LED to blink at 500ms to indicate that the camera has been detected
sudo sh -c "echo 500 > /sys/class/leds/led0/delay_on" sudo sh -c "echo 500 > /sys/class/leds/led0/delay_on"

View File

@@ -13,6 +13,7 @@ git clone https://github.com/dmpop/little-backup-box.git
crontab -l | { cat; echo "@reboot sudo /home/pi/little-backup-box/backup.sh > /home/pi/little-backup-box.log"; } | crontab crontab -l | { cat; echo "@reboot sudo /home/pi/little-backup-box/backup.sh > /home/pi/little-backup-box.log"; } | crontab
crontab -l | { cat; echo "#@reboot sudo /home/pi/little-backup-box/gphoto-backup.sh > /home/pi/gphoto-backup.log"; } | crontab crontab -l | { cat; echo "#@reboot sudo /home/pi/little-backup-box/gphoto-backup.sh > /home/pi/gphoto-backup.log"; } | crontab
crontab -l | { cat; echo "#@reboot sudo /home/pi/little-backup-box/gphoto-backup-alt.sh > /home/pi/gphoto-backup-alt.log"; } | crontab
sudo sed -i 's|'media_dir=/var/lib/minidlna'|'media_dir=/media/storage'|' /etc/minidlna.conf sudo sed -i 's|'media_dir=/var/lib/minidlna'|'media_dir=/media/storage'|' /etc/minidlna.conf
sudo service minidlna start sudo service minidlna start