From 13e26f0589b2b9b15cbcf7e83bf14dc0b2dbaae4 Mon Sep 17 00:00:00 2001 From: cimryan Date: Thu, 25 Oct 2018 20:32:30 -0700 Subject: [PATCH 1/2] Merge archive-teslacam-clips into archiveloop. Now that the archiving of clips has been factored out of archive-teslacam-clips there isn't much value in keeping the template method for archiving in a separate file. --- run/archive-teslacam-clips | 35 ------------------------ run/archiveloop | 55 +++++++++++++++++++++++++++----------- setup/pi/setup-teslausb | 1 - 3 files changed, 40 insertions(+), 51 deletions(-) delete mode 100644 run/archive-teslacam-clips diff --git a/run/archive-teslacam-clips b/run/archive-teslacam-clips deleted file mode 100644 index a29be15..0000000 --- a/run/archive-teslacam-clips +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -eu - -export LOG_FILE=/tmp/archive-teslacam-clips.log -export ARCHIVE_MOUNT=/mnt/archive - -function log () { - echo "$( date )" >> "$LOG_FILE" - echo "$1" >> "$LOG_FILE" -} - -function disconnect_usb_drives_from_host () { - log "Disconnecting usb from host..." - modprobe -r g_mass_storage - log "Disconnected usb from host." -} - -export -f log - -log "Starting..." - -/root/bin/connect-archive.sh - -disconnect_usb_drives_from_host - -ensure_cam_file_is_mounted - -fix_errors_in_cam_file - -/root/bin/archive-clips.sh - -/root/bin/disconnect-archive.sh - -unmount_cam_file - -connect_usb_drives_to_host diff --git a/run/archiveloop b/run/archiveloop index 006540e..9b8674f 100644 --- a/run/archiveloop +++ b/run/archiveloop @@ -1,10 +1,11 @@ #!/bin/bash -eu ARCHIVE_HOST_NAME="$1" -LOG_FILE=/tmp/archiveloop.log +export LOG_FILE=/tmp/archiveloop.log export CAM_MOUNT=/mnt/cam export MUSIC_MOUNT=/mnt/music +export ARCHIVE_MOUNT=/mnt/archive function log () { echo "$( date )" >> "$LOG_FILE" @@ -154,12 +155,6 @@ function fix_errors_in_music_file () { fix_errors_in_mount_point "$MUSIC_MOUNT" } -function archive_clips () { - log "Archiving..." - /root/bin/archive-teslacam-clips - log "Finished archiving." -} - function wait_for_archive_to_be_unreachable () { log "Waiting for archive to be unreachable..." while [ true ] @@ -199,17 +194,47 @@ function mount_and_fix_errors_in_files () { mount_and_fix_errors_in_music_file } -export -f fix_errors_in_mount_point -export -f fix_errors_in_cam_file -export -f retry +function disconnect_usb_drives_from_host () { + log "Disconnecting usb from host..." + modprobe -r g_mass_storage + log "Disconnected usb from host." +} + +function archive_teslacam_clips () { + log "Starting..." + + /root/bin/connect-archive.sh + + disconnect_usb_drives_from_host + + ensure_cam_file_is_mounted + + fix_errors_in_cam_file + + /root/bin/archive-clips.sh + + /root/bin/disconnect-archive.sh + + unmount_cam_file + + connect_usb_drives_to_host +} + +function archive_clips () { + log "Archiving..." + if archive_teslacam_clips + then + log "Finished archiving." + else + log "Archiving failed." + fi +} + export -f mount_mountpoint export -f ensure_mountpoint_is_mounted +export -f retry export -f ensure_mountpoint_is_mounted_with_retry -export -f ensure_cam_file_is_mounted -export -f fix_errors_in_cam_file -export -f unmount_mount_point -export -f unmount_cam_file -export -f connect_usb_drives_to_host +export -f log log "Starting..." diff --git a/setup/pi/setup-teslausb b/setup/pi/setup-teslausb index e55edf8..6e64ee8 100644 --- a/setup/pi/setup-teslausb +++ b/setup/pi/setup-teslausb @@ -112,7 +112,6 @@ function configure_archive_scripts () { echo "Configuring the archive scripts..." get_script /root/bin archiveloop run - get_script /root/bin archive-teslacam-clips run if [ $RSYNC_ENABLE = true ] then From ea7a12ef8b9980d76c94d6e92e0b84acaf991386 Mon Sep 17 00:00:00 2001 From: cimryan Date: Thu, 25 Oct 2018 20:33:12 -0700 Subject: [PATCH 2/2] More gracefully handle failures to archive to cifs shares. --- run/cifs_archive/archive-clips.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/run/cifs_archive/archive-clips.sh b/run/cifs_archive/archive-clips.sh index 26b634f..c7523a5 100644 --- a/run/cifs_archive/archive-clips.sh +++ b/run/cifs_archive/archive-clips.sh @@ -7,9 +7,15 @@ NUM_FILES_MOVED=0 for file_name in "$CAM_MOUNT"/TeslaCam/saved*; do [ -e "$file_name" ] || continue log "Moving $file_name ..." - mv -- "$file_name" "$ARCHIVE_MOUNT" >> "$LOG_FILE" 2>&1 || echo "" - log "Moved $file_name." - NUM_FILES_MOVED=$((NUM_FILES_MOVED + 1)) + + if mv -f -t "$ARCHIVE_MOUNT" -- "$file_name" >> "$LOG_FILE" 2>&1 + then + log "Moved $file_name." + NUM_FILES_MOVED=$((NUM_FILES_MOVED + 1)) + else + log "Failed to move $file_name." + fi + done log "Moved $NUM_FILES_MOVED file(s)."