@@ -16,7 +16,7 @@ if [ -d ./volumes/influxdb ]; then
1616fi
1717
1818# setup variables
19- logfile=./backups/log .txt
19+ logfile=./backups/log_local .txt
2020backupfile=" 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
2929rm list.txt
3030
31+ # set permission for backup files
3132sudo 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
3435echo " backup saved to ./backups/$backupfile "
3536sudo touch $logfile
3637sudo chown pi:pi $logfile
@@ -39,19 +40,53 @@ echo $backupfile >>$logfile
3940# show size of archive file
4041du -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
4350if [ -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+
4681fi
4782
83+
84+ # cloud related - google drive
4885if [ -f ./backups/rclone ]; then
4986 echo " uploading to Google Drive"
5087 rclone -P copy ./backups/$backupfile gdrive:/IOTstackBU/
5188fi
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
5792popd
0 commit comments