summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile42
-rw-r--r--backup-dirs4
-rwxr-xr-xbackup2nextcloud28
-rw-r--r--backup2nextcloud-2.0_1.debbin0 -> 1236 bytes
-rwxr-xr-xbackup2nextcloud-hamvoip50
-rwxr-xr-xbackup2nextcloud-pistar48
-rwxr-xr-xbackup2nextcloud.cron9
-rw-r--r--control9
8 files changed, 190 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..5534256
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,42 @@
+INSTALLS = \
+ $(DESTDIR)/usr/local/sbin/backup2nextcloud \
+ $(DESTDIR)/etc/backup-dirs \
+ $(DESTDIR)/etc/cron.daily/backup2nextcloud \
+
+PKGN = backup2nextcloud
+MAJVER = 2.0
+MINVER = 1
+PKGD = $(PKGN)-$(MAJVER)_$(MINVER)
+
+install: $(DESTDIR)/usr/local/sbin/backup2nextcloud $(DESTDIR)/etc/backup-dirs $(DESTDIR)/etc/cron.daily/backup2nextcloud
+
+$(DESTDIR)/usr/local/sbin/backup2nextcloud: backup2nextcloud
+ test ! -d $(DESTDIR)/usr/local/sbin && mkdir -p $(DESTDIR)/usr/local/sbin
+ install -m 0755 $< $@
+
+$(DESTDIR)/etc/backup-dirs: backup-dirs
+ test ! -d $(DESTDIR)/etc && mkdir -p $(DESTDIR)/etc
+ install -m 0644 $< $@
+
+$(DESTDIR)/etc/cron.daily/backup2nextcloud: backup2nextcloud.cron
+ test ! -d $(DESTDIR)/etc/cron.daily && mkdir -p $(DESTDIR)/etc/cron.daily
+ install -m 0755 $< $@
+
+.PHONY: deb
+
+deb: clean
+ mkdir -p tmp/$(PKGD)/DEBIAN
+ install -m 0644 control tmp/$(PKGD)/DEBIAN/control
+ make install DESTDIR=./tmp/$(PKGD)
+ ( cd tmp && dpkg-deb --build $(PKGD) )
+ cp tmp/$(PKGD).deb .
+
+
+.PHONY: clean
+
+clean:
+ rm -rf tmp/*
+
+
+
+
diff --git a/backup-dirs b/backup-dirs
new file mode 100644
index 0000000..7743152
--- /dev/null
+++ b/backup-dirs
@@ -0,0 +1,4 @@
+/etc
+/var/www
+/home
+/root
diff --git a/backup2nextcloud b/backup2nextcloud
new file mode 100755
index 0000000..cb61d2e
--- /dev/null
+++ b/backup2nextcloud
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+PATH=/usr/bin:/bin:/usr/sbin:/sbin
+
+F=`mktemp`
+FT="/tmp/`hostname`.tar.bz2"
+
+if [ -f $FT ]; then
+ echo "File $FT exists - incomplete run?"
+ exit 1
+fi
+
+mv $F $FT
+
+tar -jcf $FT `cat /etc/backup-dirs | tr '\n' ' '` 2> /dev/null
+
+rclone copy $FT nextcloud:/
+RVAL=$?
+
+if [ $? == 0 ]; then
+ rm $FT
+ exit 0
+else
+ exit 1
+fi
+
+
+
diff --git a/backup2nextcloud-2.0_1.deb b/backup2nextcloud-2.0_1.deb
new file mode 100644
index 0000000..d27cdfc
--- /dev/null
+++ b/backup2nextcloud-2.0_1.deb
Binary files differ
diff --git a/backup2nextcloud-hamvoip b/backup2nextcloud-hamvoip
new file mode 100755
index 0000000..2128f22
--- /dev/null
+++ b/backup2nextcloud-hamvoip
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+PATH=/usr/bin:/bin:/usr/sbin:/sbin
+
+FRVAL=0
+
+
+
+for h in `cat /etc/backup-hamvoip | tr '\n' ' ' 2> /dev/null`
+do
+ hn=`echo $h | perl -pe 's/^([^\.]+)\..*$/$1/g'`
+
+ FT="/tmp/$hn.tar"
+
+ if [ -f $FT ] || [ -f $FT.bz2 ]; then
+ echo "File $FT exists - incomplete run?"
+ exit 1
+ fi
+
+ F=`mktemp`
+
+ mv $F $FT
+
+ ssh -p 222 -o "PasswordAuthentication no" -o 'StrictHostKeyChecking no' \
+ root@$h 'cd / && tar cf - etc/ root/ var/lib/asterisk/sounds/rpt/ srv/http/' > $FT
+ RVAL=$?
+
+ if [ $RVAL != 0 ]; then
+ echo "Error pulling down from $h"
+ rm $FT
+ FRVAL=1
+ else
+
+ bzip2 $FT
+ rclone --bind=44.70.48.34 copy $FT.bz2 nextcloud:/Backups/$hn/
+ RVAL=$?
+
+ if [ $RVAL != 0 ]; then
+ echo "Error rsyncing $FT.bz2 to nextcloud"
+ FRVAL=1
+ fi
+
+ rm $FT.bz2
+ fi
+
+done
+
+exit $FRVAL
+
+
diff --git a/backup2nextcloud-pistar b/backup2nextcloud-pistar
new file mode 100755
index 0000000..abac569
--- /dev/null
+++ b/backup2nextcloud-pistar
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+PATH=/usr/bin:/bin:/usr/sbin:/sbin
+
+FRVAL=0
+
+AUTH='pi-star:wtfwtfwtf!'
+
+for h in `cat /etc/backup-pistar | tr '\n' ' ' 2> /dev/null`
+do
+ hn=`echo $h | perl -pe 's/^([^\.]+)\..*$/$1/g'`
+
+ FT="/tmp/$hn.zip"
+
+ if [ -f $FT ]; then
+ echo "File $FT exists - incomplete run?"
+ exit 1
+ fi
+
+ F=`mktemp`
+
+ mv $F $FT
+
+ curl -s -d "action=download" -X POST --user $AUTH --output $FT http://$h/admin/config_backup.php
+ RVAL=$?
+
+ if [ $RVAL != 0 ]; then
+ echo "Error pulling down from $h"
+ rm $FT
+ FRVAL=1
+ else
+
+ rclone --bind=44.70.48.34 copy $FT nextcloud:/Backups/$hn/
+ RVAL=$?
+
+ if [ $RVAL != 0 ]; then
+ echo "Error rsyncing $FT to nextcloud"
+ FRVAL=1
+ fi
+
+ rm $FT
+ fi
+
+done
+
+exit $FRVAL
+
+
diff --git a/backup2nextcloud.cron b/backup2nextcloud.cron
new file mode 100755
index 0000000..083007a
--- /dev/null
+++ b/backup2nextcloud.cron
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [ -f /var/lib/mysql/ib_logfile0 ] && [ -d /var/lib/mysql-backup ]; then
+ /usr/bin/mysqldump -u root --all-databases > /var/lib/mysql-backup
+fi
+
+sleep $(( $RANDOM % 15 + 1 ))m
+/usr/local/sbin/backup2nextcloud
+
diff --git a/control b/control
new file mode 100644
index 0000000..b10f9ba
--- /dev/null
+++ b/control
@@ -0,0 +1,9 @@
+Package: backup2nextcloud
+Version: 2.0-1
+Section: base
+Priority: optional
+Architecture: all
+Maintainer: Jason McCormick <jason@mfamily.org>
+Depends: rclone, tar, bzip2
+Description: Backup a system to Nextcloud using rclone
+