aboutsummaryrefslogtreecommitdiff
path: root/dupbackup
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2024-08-20 20:42:16 -0300
committerSilvio Rhatto <rhatto@riseup.net>2024-08-20 20:42:16 -0300
commitd50c3847192acbb3a5be68b67320fd1819fa81fb (patch)
treeaaa338f51b4ae09c18a5980d5952232d3bf51678 /dupbackup
downloadutils-cli-d50c3847192acbb3a5be68b67320fd1819fa81fb.tar.gz
utils-cli-d50c3847192acbb3a5be68b67320fd1819fa81fb.tar.bz2
Initial import
Diffstat (limited to 'dupbackup')
-rwxr-xr-xdupbackup56
1 files changed, 56 insertions, 0 deletions
diff --git a/dupbackup b/dupbackup
new file mode 100755
index 0000000..a9ca2d0
--- /dev/null
+++ b/dupbackup
@@ -0,0 +1,56 @@
+#!/bin/bash
+#
+# dupbackup: duplicity wrapper
+# feedback: rhatto at riseup.net
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or any later version.
+#
+# This software is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307, USA
+
+# Usage: dupbackup <host> [option]
+
+USER="`whoami`"
+LOCAL_FOLDER="/mnt/crypt/home/$USER/"
+REMOVE_OLDER_THAN="3M"
+KEY=""
+HOST="$1"
+OPTION="$2"
+
+# Load configuration
+if [ -e "$HOME/.config/scripts/dupbackup" ]; then
+ source $HOME/.config/scripts/dupbackup
+fi
+
+# Determine destination
+if [ ! -z "$HOST" ]; then
+ DEST="/var/backups/remote/$USER/duplicity"
+ DEST="scp://$USER@$HOST/$DEST"
+else
+ DEST="file:///var/backups/users/$USER/duplicity"
+fi
+
+# Check for option
+if [ -z "$OPTION" ]; then
+ OPTION="incr"
+fi
+
+# Create temporary folder
+mkdir -p $LOCAL_FOLDER/tmp/duplicity
+
+# Do the backup
+duplicity $OPTION -v6 --full-if-older-than $REMOVE_OLDER_THAN \
+ --allow-source-mismatch --encrypt-key $KEY \
+ --sign-key $KEY $LOCAL_FOLDER $DEST \
+ --tempdir $LOCAL_FOLDER/tmp/duplicity \
+ --exclude $LOCAL_FOLDER/tmp/duplicity
+
+# Rotate older backups
+duplicity remove-older-than $REMOVE_OLDER_THAN $DEST --force