@@ -16,7 +16,7 @@ if [ -d ./volumes/influxdb ]; then
16
16
fi
17
17
18
18
# setup variables
19
- logfile=./backups/log .txt
19
+ logfile=./backups/log_local .txt
20
20
backupfile=" backup-$( date +" %Y-%m-%d_%H%M" ) .tar.gz"
21
21
22
22
# compress the backups folders to archive
@@ -28,9 +28,10 @@ sudo tar -czf \
28
28
29
29
rm list.txt
30
30
31
+ # set permission for backup files
31
32
sudo chown pi:pi ./backups/backup*
32
33
33
- # create log file and add the backup file to it
34
+ # create local logfile and append the latest backup file to it
34
35
echo " backup saved to ./backups/$backupfile "
35
36
sudo touch $logfile
36
37
sudo chown pi:pi $logfile
@@ -39,19 +40,53 @@ echo $backupfile >>$logfile
39
40
# show size of archive file
40
41
du -h ./backups/$backupfile
41
42
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
43
50
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
44
58
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
+
46
81
fi
47
82
83
+
84
+ # cloud related - google drive
48
85
if [ -f ./backups/rclone ]; then
49
86
echo " uploading to Google Drive"
50
87
rclone -P copy ./backups/$backupfile gdrive:/IOTstackBU/
51
88
fi
52
89
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
+
56
91
57
92
popd
0 commit comments