summaryrefslogtreecommitdiff
path: root/backupz/gitbackup
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-03-14 19:17:15 -0700
committerKai Stevenson <kai@kaistevenson.com>2023-03-14 19:17:15 -0700
commitd9d76072b30829992429a14f7454b3543a6ddb3f (patch)
tree511991d863b09d851a41b9ac92cd22ce659e8e16 /backupz/gitbackup
parentd25bfbc4b61da3e905750ae9eb70b5c8983135be (diff)
changed gitbackup implementation to be much more effiicent
Diffstat (limited to 'backupz/gitbackup')
-rwxr-xr-xbackupz/gitbackup22
1 files changed, 10 insertions, 12 deletions
diff --git a/backupz/gitbackup b/backupz/gitbackup
index 7ddce88..88e5db2 100755
--- a/backupz/gitbackup
+++ b/backupz/gitbackup
@@ -1,20 +1,18 @@
#!/bin/sh
-CDIR=/tmp/backupz-gitbackup.commands
-REMOTE=covalent.aberrantflux.xyz
-rm $CDIR
+REMOTEDIR=root@covalent.aberrantflux.xyz:/mnt/blockstorage/backup/git/
+TEMPDIR=/tmp/backupz-gitbackup/
+echo "cloning repos"
for DIR in /srv/git/public /srv/git/private ; do
DNAME=$(basename "$DIR")
- echo "mkdir -p /srv/backup/git/new/$DNAME /srv/backup/git/old/$DNAME" >> $CDIR
+ mkdir -p /tmp/backupz-gitbackup/"$DNAME"
for REPO in "$DIR"/*.git ; do
RNAME=$(basename "$REPO")
echo "backing up $DNAME repo $RNAME"
- SRC=root@canonical.aberrantflux.xyz:$REPO
- TDEST=/srv/backup/git/new/$DNAME/$RNAME
- FDEST=/srv/backup/git/old/$DNAME/$RNAME
- echo "rm -rf $FDEST ; mv $TDEST $FDEST ; git clone --mirror $SRC $TDEST" >> $CDIR
+ git clone --mirror $REPO "$TEMPDIR"/"$DNAME"/"$RNAME"
done
done
-echo "wrote commands"
-cat $CDIR | ssh $REMOTE
-rm $CDIR
-echo "sent commands & finished clean-up"
+
+echo "syncing to remote"
+rsync -az --delete $TEMPDIR/* $REMOTEDIR/
+echo "cleaning up"
+rm -rf $TEMPDIR