initial commit for restic.sh, change DATEFMT for backup-yunohost.sh

This commit is contained in:
bilbo baggins 2024-06-25 17:11:55 +02:00
parent 97e4087cbf
commit cbc1a4ef4a
2 changed files with 12 additions and 5 deletions

View File

@ -6,15 +6,16 @@ TARGET=/yunohost-backups
HOST=yunohost HOST=yunohost
TODAY_DATE=$(date '+%F') TODAY_DATE=$(date '+%F')
LOGFILE=${TARGET}/$TODAY_DATE.$$.log LOGFILE=${TARGET}/$TODAY_DATE.$$.log
DATEFMT="+%d.%m.%y %H:%M:%S"
ERR=0 ERR=0
NUMRETAINBACKUPS=10 NUMRETAINBACKUPS=10
echo "yunohost backup begin $(date):" >$LOGFILE echo "yunohost backup begin $(date "${DATEFMT}"):" >$LOGFILE
#date >>$LOGFILE #date >>$LOGFILE
# delete max. 3 old backups per run # delete max. 3 old backups per run
for i in 1 2 3 for i in 1 2 3
do do
NUMBACKUPS=$(ssh ${HOST} sudo yunohost backup list | grep -- '-' | wc -l) || { echo yunohost could not list backups $(date) >>$LOGFILE ; exit 1; } NUMBACKUPS=$(ssh ${HOST} sudo yunohost backup list | grep -- '-' | wc -l) || { echo yunohost could not list backups $(date "${DATEFMT}") >>$LOGFILE ; exit 1; }
# ERR=$? # ERR=$?
# if [ ${ERR} -ne 0 ] # if [ ${ERR} -ne 0 ]
# then # then
@ -49,14 +50,14 @@ echo "starting gitea service on ${HOST}" &>>$LOGFILE
ssh ${HOST} sudo systemctl start gitea.service &>>$LOGFILE ssh ${HOST} sudo systemctl start gitea.service &>>$LOGFILE
echo "yunohost backup ended:" >>$LOGFILE echo "yunohost backup ended:" >>$LOGFILE
date >>$LOGFILE date "${DATEFMT}" >>$LOGFILE
BACKUPFILE=$(ssh ${HOST} sudo yunohost backup list --with-info -H | grep -A 3 $TODAY_DATE | grep 'path:' | cut -d":" -f2 | tr -d " " | tail -1) BACKUPFILE=$(ssh ${HOST} sudo yunohost backup list --with-info -H | grep -A 3 $TODAY_DATE | grep 'path:' | cut -d":" -f2 | tr -d " " | tail -1)
scp ${HOST}:${BACKUPFILE} ${TARGET} && echo "${BACKUPFILE} successfully copied to ${TARGET}!" &>>$LOGFILE || echo "error when trying to scp ${BACKUPFILE} to ${TARGET}!" &>>$LOGFILE scp ${HOST}:${BACKUPFILE} ${TARGET} && echo "${BACKUPFILE} successfully copied to ${TARGET}!" &>>$LOGFILE || echo "error when trying to scp ${BACKUPFILE} to ${TARGET}!" &>>$LOGFILE
ls -lisah ${TARGET}/`basename ${BACKUPFILE}` >>$LOGFILE ls -lisah ${TARGET}/`basename ${BACKUPFILE}` >>$LOGFILE
gzip -9 ${TARGET}/`basename ${BACKUPFILE}` &>>$LOGFILE gzip -9 ${TARGET}/`basename ${BACKUPFILE}` &>>$LOGFILE
ls -lisah ${TARGET}/`basename ${BACKUPFILE}`.gz &>>$LOGFILE ls -lisah ${TARGET}/`basename ${BACKUPFILE}`.gz &>>$LOGFILE
source /root/.bashrc source /root/.bashrc
echo restic backup on ${HOST} at $(date) &>>${LOGFILE} echo restic backup on ${HOST} at $(date "${DATEFMT}") &>>${LOGFILE}
#ssh ${HOST} sudo { source /root/.bashrc ; /usr/bin/restic backup /home/yunohost.backup/archives ; } &>>$LOGFILE #ssh ${HOST} sudo { source /root/.bashrc ; /usr/bin/restic backup /home/yunohost.backup/archives ; } &>>$LOGFILE
ssh ${HOST} "sudo /root/bin/restic.sh" &>>$LOGFILE ssh ${HOST} "sudo /root/bin/restic.sh" &>>$LOGFILE
restic check --read-data-subset 20% &>>$LOGFILE restic check --read-data-subset 20% &>>$LOGFILE
@ -108,7 +109,7 @@ echo space in filesys of ${TARGET} after pruning backups &>>$LOGFILE
df -h ${TARGET} &>>$LOGFILE df -h ${TARGET} &>>$LOGFILE
echo "$0 on `hostname` ended:" >>$LOGFILE echo "$0 on `hostname` ended:" >>$LOGFILE
date >>$LOGFILE date "${DATEFMT}">>$LOGFILE
# Achtung, hier wird es kompliziert :) nach diesem Kommando keine Umleitung in $LOGFILE mehr # Achtung, hier wird es kompliziert :) nach diesem Kommando keine Umleitung in $LOGFILE mehr
mv ${LOGFILE} ${TARGET}/`basename ${BACKUPFILE} .tar`.log mv ${LOGFILE} ${TARGET}/`basename ${BACKUPFILE} .tar`.log
gzip -9 ${TARGET}/`basename ${BACKUPFILE} .tar`.log gzip -9 ${TARGET}/`basename ${BACKUPFILE} .tar`.log

6
restic.sh Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
#LOGFILE=/home/admi/restic.log
DATEFMT="+%d.%m.%y %H:%M:%S"
source /root/.bashrc
echo restic backup on $(hostname) at $(date "${DATEFMT}")
/usr/bin/restic backup /home/yunohost.backup/archives