@@ -356,17 +356,22 @@ function intersect {
356
356
357
357
function clean_cam_mount {
358
358
359
- if [ -e /tmp/last_clean_time ]
359
+ local mode=" ${1:- } "
360
+
361
+ if [ " $mode " = " freespace" ]
360
362
then
361
- read -r -d . last < /tmp/last_clean_time
362
- read -r -d . now < /proc/uptime
363
- if (( (now - last) < 300 ))
363
+ if [ -e /tmp/last_clean_time ]
364
364
then
365
- log " skipping cleaning cam mount"
366
- return
365
+ read -r -d . last < /tmp/last_clean_time
366
+ read -r -d . now < /proc/uptime
367
+ if (( (now - last) < 300 ))
368
+ then
369
+ log " skipping cleaning cam mount"
370
+ return
371
+ fi
367
372
fi
373
+ cat /proc/uptime > /tmp/last_clean_time
368
374
fi
369
- cat /proc/uptime > /tmp/last_clean_time
370
375
371
376
log " cleaning cam mount"
372
377
ensure_cam_file_is_mounted
@@ -378,26 +383,29 @@ function clean_cam_mount {
378
383
# Delete short recordings
379
384
(cd " ${CAM_MOUNT} " ; find . -type f -name \* .mp4 -size -100000c -printf ' %P\n' ) | xargs rm -rf
380
385
381
- # Remove files, oldest first, until there is at least 20GB of free space
382
-
383
- (cd " ${CAM_MOUNT} " ; find . -type f -a \( -path ' ./TeslaCam/*' -o -path ' ./TeslaTrackMode/*' \) -printf ' %P\0' ) > /tmp/rmcandidates.txt
384
- if [ -s /tmp/rmcandidates.txt ]
386
+ if [ " $mode " = " freespace" ]
385
387
then
386
- (cd " ${CAM_MOUNT} " ; xargs -a /tmp/rmcandidates.txt -0 ls -cr1) > /tmp/rmcandidatesbytime.txt
387
- else
388
- true > /tmp/rmcandidatesbytime.txt
389
- fi
390
-
391
- local freespace
392
- while read -r line
393
- do
394
- freespace=$( eval " $( stat --file-system --format=" echo \$ ((%f*%S))" " ${CAM_MOUNT} /." ) " )
395
- if (( freespace > 20000000000 ))
388
+ # Remove files, oldest first, until there is at least 20GB of free space
389
+
390
+ (cd " ${CAM_MOUNT} " ; find . -type f -a \( -path ' ./TeslaCam/*' -o -path ' ./TeslaTrackMode/*' \) -printf ' %P\0' ) > /tmp/rmcandidates.txt
391
+ if [ -s /tmp/rmcandidates.txt ]
396
392
then
397
- break ;
393
+ (cd " ${CAM_MOUNT} " ; xargs -a /tmp/rmcandidates.txt -0 ls -cr1) > /tmp/rmcandidatesbytime.txt
394
+ else
395
+ true > /tmp/rmcandidatesbytime.txt
398
396
fi
399
- rm " ${CAM_MOUNT} /$line "
400
- done < /tmp/rmcandidatesbytime.txt
397
+
398
+ local freespace
399
+ while read -r line
400
+ do
401
+ freespace=$( eval " $( stat --file-system --format=" echo \$ ((%f*%S))" " ${CAM_MOUNT} /." ) " )
402
+ if (( freespace > 20000000000 ))
403
+ then
404
+ break ;
405
+ fi
406
+ rm " ${CAM_MOUNT} /$line "
407
+ done < /tmp/rmcandidatesbytime.txt
408
+ fi
401
409
402
410
# delete directories that are now empty
403
411
find " $CAM_MOUNT /TeslaCam/RecentClips" " $CAM_MOUNT /TeslaCam/SavedClips" \
@@ -634,7 +642,7 @@ function archive_teslacam_clips () {
634
642
then
635
643
if [ " $archive_success " = " true" ]
636
644
then
637
- clean_cam_mount
645
+ clean_cam_mount freespace
638
646
else
639
647
log " Skipping cleaning step after archive error"
640
648
fi
@@ -852,6 +860,8 @@ logrotator &
852
860
wifichecker &
853
861
854
862
fix_errors_in_images
863
+ # always remove files that fsck recoverd
864
+ clean_cam_mount boot
855
865
856
866
if has_cam_disk
857
867
then
0 commit comments