iankelling.org
/
git
/
distro-setup
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix path, minor docs
[distro-setup]
/
bk-backup
diff --git
a/bk-backup
b/bk-backup
index cc25cecd3ac1bdc233614459b9f3c10f3bc2a9a0..b960e70562fedf76f3ef5bc5a9313bcfbf65a57a 100755
(executable)
--- a/
bk-backup
+++ b/
bk-backup
@@
-1,5
+1,7
@@
#!/bin/bash
#!/bin/bash
+# usage: $0 [restore]
+
if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi
shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4
set -eE -o pipefail
if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi
shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4
set -eE -o pipefail
@@
-19,37
+21,42
@@
case $1 in
;;
esac
;;
esac
+# last checked 2022-03 version 23
+# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html
if $restore; then
set -x
for ncdir in /var/www/ncexpertpath /var/www/ncninja; do
ncbase=${ncdir##*/}
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --on ||: # might not be running
if $restore; then
set -x
for ncdir in /var/www/ncexpertpath /var/www/ncninja; do
ncbase=${ncdir##*/}
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --on ||: # might not be running
- rsync -ra /p/bkbackup/$ncbase/ root@$host:$ncdir || ret=$?
+ rsync -ra
vhi --numeric-ids
/p/bkbackup/$ncbase/ root@$host:$ncdir || ret=$?
# https://docs.nextcloud.com/server/20/admin_manual/configuration_server/occ_command.html#maintenance-commands-label
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:data-fingerprint
# https://docs.nextcloud.com/server/20/admin_manual/configuration_server/occ_command.html#maintenance-commands-label
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:data-fingerprint
- ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --o
n
+ ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --o
ff
done
done
- rsync -ravi /p/bkbackup/m root@$host:/
+ # the dovecot thing is not needed afaik, just a good practice.
+ ssh root@$host systemctl stop dovecot
+ rsync -ravi --numeric-ids /p/bkbackup/m root@$host:/
+ ssh root@$host systemctl start dovecot
exit 0
fi
ret=0
exit 0
fi
ret=0
-if [[ $HOSTNAME ==
$MAIL_HOST
]]; then
+if [[ $HOSTNAME ==
"$MAIL_HOST"
]]; then
mkdir -p /p/bkbackup
for ncdir in /var/www/ncexpertpath /var/www/ncninja; do
mkdir -p /p/bkbackup
for ncdir in /var/www/ncexpertpath /var/www/ncninja; do
- if [[ ! -d $ncdir ]]; then
- continue
- fi
ncbase=${ncdir##*/}
mkdir -p /p/bkbackup/$ncbase
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --on
ncbase=${ncdir##*/}
mkdir -p /p/bkbackup/$ncbase
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --on
- rsync -
ra --exclude=testignore
--delete root@$host:$ncdir/{config,data,themes} /p/bkbackup/$ncbase || ret=$?
+ rsync -
-numeric-ids -ra
--delete root@$host:$ncdir/{config,data,themes} /p/bkbackup/$ncbase || ret=$?
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --off
if (( ret )); then
echo "$0: error: failed rsync $ncdir"
ret=1
fi
done
ssh root@$host sudo -u www-data php $ncdir/occ -q maintenance:mode --off
if (( ret )); then
echo "$0: error: failed rsync $ncdir"
ret=1
fi
done
- rsync -ra --delete root@$host:/m /p/bkbackup
+ rsync --numeric-ids -ra --delete \
+ --exclude md/expertpathologyreview.com/testignore \
+ --exclude md/amnimal.ninja/testignore \
+ root@$host:/m /p/bkbackup
fi
exit $ret
fi
exit $ret