Auto add target dir based on camera model
This commit is contained in:
10
README.md
10
README.md
@@ -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
37
gphoto-backup-alt.sh
Executable 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
|
||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user