Skip to content

Commit 567a476

Browse files
authored
Update docker_backup.sh
Increased local backups from 5 to 7 Fixed local files not being deleted : permission denied Improvements to Dropbox - now last 7 files are kept and the rest deleted
1 parent d673cda commit 567a476

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

scripts/docker_backup.sh

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ if [ -d ./volumes/influxdb ]; then
1616
fi
1717

1818
#setup variables
19-
logfile=./backups/log.txt
19+
logfile=./backups/log_local.txt
2020
backupfile="backup-$(date +"%Y-%m-%d_%H%M").tar.gz"
2121

2222
#compress the backups folders to archive
@@ -28,9 +28,10 @@ sudo tar -czf \
2828

2929
rm list.txt
3030

31+
#set permission for backup files
3132
sudo chown pi:pi ./backups/backup*
3233

33-
#create log file and add the backup file to it
34+
#create local logfile and append the latest backup file to it
3435
echo "backup saved to ./backups/$backupfile"
3536
sudo touch $logfile
3637
sudo chown pi:pi $logfile
@@ -39,19 +40,53 @@ echo $backupfile >>$logfile
3940
#show size of archive file
4041
du -h ./backups/$backupfile
4142

42-
#upload to cloud
43+
#remove older local backup files
44+
ls -t1 ./backups/backup* | tail -n +8 | sudo xargs rm -f
45+
echo "last seven local backup files are saved in ~/IOTstack/backups"
46+
47+
48+
49+
#cloud related - dropbox
4350
if [ -f ./backups/dropbox ]; then
51+
52+
#setup variables
53+
dropboxfolder=/IOTstackBU
54+
dropboxuploader=~/Dropbox-Uploader/dropbox_uploader.sh
55+
dropboxlog=./backups/log_dropbox.txt
56+
57+
#upload new backup to dropbox
4458
echo "uploading to dropbox"
45-
~/Dropbox-Uploader/dropbox_uploader.sh upload ./backups/$backupfile /IOTstackBU/
59+
$dropboxuploader upload ./backups/$backupfile $dropboxfolder
60+
61+
#list older files to be deleted from cloud (exludes last 7)
62+
echo "getting older filenames to be deleted from cloud"
63+
files=$($dropboxuploader list $dropboxfolder | awk {' print $3 '} | tail -n +2 | head -n -7)
64+
65+
#write files to be deleted to logfile
66+
sudo touch $dropboxlog
67+
sudo chown pi:pi $dropboxlog
68+
echo $files | tr " " "\n" >$dropboxlog
69+
70+
#delete files from cloud as per logfile
71+
echo "deleting files from cloud - last 7 files are kept"
72+
echo "if less than 7 files are in cloud you wil see FAILED message below"
73+
input=$dropboxlog
74+
while IFS= read -r file
75+
do
76+
$dropboxuploader delete $dropboxfolder/$file
77+
done < "$input"
78+
79+
echo "deleted from cloud" >>$dropboxlog
80+
4681
fi
4782

83+
84+
#cloud related - google drive
4885
if [ -f ./backups/rclone ]; then
4986
echo "uploading to Google Drive"
5087
rclone -P copy ./backups/$backupfile gdrive:/IOTstackBU/
5188
fi
5289

53-
#remove older backup files
54-
ls -t1 ./backups/backup* | tail -n +6 | sudo xargs rm -f
55-
echo "last five backup files are saved in ~/IOTstack/backups"
90+
5691

5792
popd

0 commit comments

Comments
 (0)