diff options
| author | Jason D. McCormick <jason@mfamily.org> | 2022-11-04 22:27:10 -0400 |
|---|---|---|
| committer | Jason D. McCormick <jason@mfamily.org> | 2022-11-04 22:27:10 -0400 |
| commit | 2594d09fb175bcdc916c87731bf98144be99159c (patch) | |
| tree | 93dfa307b2789f9f60d8d0130acad82a6602c84c | |
initial
| -rw-r--r-- | Makefile | 42 | ||||
| -rw-r--r-- | backup-dirs | 4 | ||||
| -rwxr-xr-x | backup2nextcloud | 28 | ||||
| -rw-r--r-- | backup2nextcloud-2.0_1.deb | bin | 0 -> 1236 bytes | |||
| -rwxr-xr-x | backup2nextcloud-hamvoip | 50 | ||||
| -rwxr-xr-x | backup2nextcloud-pistar | 48 | ||||
| -rwxr-xr-x | backup2nextcloud.cron | 9 | ||||
| -rw-r--r-- | control | 9 |
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 Binary files differnew file mode 100644 index 0000000..d27cdfc --- /dev/null +++ b/backup2nextcloud-2.0_1.deb 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 + @@ -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 + |
