Change from remote backup to local backup and make config easier

This commit is contained in:
Romain de Laage 2020-07-27 18:36:02 +02:00
parent 8af6ef361f
commit 71b4a12010
Signed by: rdelaage
GPG Key ID: 534845FADDF0C329
7 changed files with 71 additions and 75 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
backup.env

16
backup.env.example Normal file
View File

@ -0,0 +1,16 @@
BACKUP_LOCATION="CHANGEME"
SCRIPT_LOCATION="CHANGEME"
GITEA_EXE="CHANGEME"
MF_DBHOST="CHANGEME"
MF_DBPORT=5432
MF_DBNAME="CHANGEME"
MF_DBUSER="CHANGEME"
MF_DBPASSWD="CHANGEME"
NC_DBHOST="CHANGEME"
NC_DBPORT=5432
NC_DBNAME="CHANGEME"
NC_DBUSER="CHANGEME"
NC_DBPASSWD="CHANGEME"
NC_DIR="CHANGEME"
PB_DIR="CHANGEME"
LOG="CHANGEME"

28
backup.sh Executable file
View File

@ -0,0 +1,28 @@
#! /bin/bash
DATE=$(date +%m-%d-%Y)
if [ -f dyndns.env ]
then
export $(cat backup.env | sed 's/#.*//g' | xargs)
else
echo "Error, backup.env doesn't exist"
exit 1
fi
if [ -z "$DATE" ] || [ -z "$SCRIPT_LOCATION" ] || [ -z "$GITEA_EXE" ] || [ -z "$MF_DBHOST" ] || [ -z "$MF_DBPORT" ] || \
[ -z "$BACKUP_LOCATION" ] || [ -z "$MF_DBNAME" ] || [ -z "$MF_DBUSER" ] || [ -z "$MF_DBPASSWD" ] || [ -z "$NC_DBHOST" ] || \
[ -z "$NC_DIR" ] || [ -z "$NC_DBPORT" ] || [ -z "$NC_DBNAME" ] || [ -z "$NC_DBUSER" ] || [ -z "$NC_DBPASSWD" ] || \
[ -z "$LOG" ] || [ -z "$PB_DIR" ]
then
echo "Error, please check your configuration in backup.env"
exit 2
fi
echo "" >> $LOG
echo "===== $DATE =====" >> $LOG
source $SCRIPT_LOCATION/gitea.sh >> $LOG
source $SCRIPT_LOCATION/miniflux.sh >> $LOG
source $SCRIPT_LOCATION/nextcloud.sh >> $LOG
source $SCRIPT_LOCATION/privatebin.sh >> $LOG

View File

@ -1,20 +1,10 @@
#! /bin/sh
DATE=`date +%m-%d-%Y`
SSH_HOST="CHANGEME"
echo "Sauvegarde de Gitea le "$DATE
echo ""
echo "Sauvegarde de Gitea"
#Exécution du backup de Gitea
echo "Exécution du backup de Gitea"
ssh $SSH_HOST sudo -u git /DATA/gitea/gitea-latest dump -f /tmp/gitea-$DATE.zip
#Copie du fichier de backup distant en local
echo "Copie du fichier de backup distant en local"
rsync -z $SSH_HOST:/tmp/gitea-$DATE.zip $HOME
#Supprission du fichier de backup distant
echo "Suppression du fichier de backup distant"
ssh $SSH_HOST rm /tmp/gitea-$DATE.zip
sudo -u git $GITEA_EXE dump -f $BACKUP_LOCATION/gitea-$DATE.zip
echo "Backup effectué !"

View File

@ -1,25 +1,15 @@
#! /bin/sh
#===============#
# Configuration #
#===============#
DATE=`date +%m-%d-%Y`
DBHOST="CHANGEME"
DBPORT=5432
DBNAME="CHANGEME"
DBUSER="CHANGEME"
DBPASSWD="CHANGEME"
SSH_HOST="CHANGEME"
echo "Sauvegarde de miniflux le "$DATE
echo ""
echo "Sauvegarde de miniflux"
# Backup the database
echo "Dump de la base de données"
ssh $SSH_HOST PGPASSWORD=$DBPASSWD pg_dump -h $DBHOST -d $DBNAME -p $DBPORT -U $DBUSER > $HOME/miniflux-$DATE
PGPASSWORD=$MF_DBPASSWD pg_dump -h $MF_DBHOST -d $MF_DBNAME -p $MF_DBPORT -U $MF_DBUSER > $BACKUP_LOCATION/miniflux-$DATE
# Compress backup
echo "Compression de la sauvegarde"
gzip $HOME/miniflux-$DATE
echo "Fichier enregistré dans dans "$HOME"/miniflux-"$DATE".gz"
gzip -f $BACKUP_LOCATION/miniflux-$DATE
echo "Fichier enregistré dans dans $BACKUP_LOCATION/miniflux-$DATE.gz"
echo "Sauvegarde terminée !"

View File

@ -1,45 +1,31 @@
#! /bin/sh
#===============#
# Configuration #
#===============#
DATE=`date +%m-%d-%Y`
TMPDIR=`mktemp -d`
DBHOST="CHANGEME"
DBPORT=5432
DBNAME="CHANGEME"
DBUSER="CHANGEME"
DBPASSWD="CHANGEME"
SERVICEDIR="CHANGEME"
SSH_HOST="CHANGEME"
TMP_DIR=$(mktemp -d)
echo "Sauvegarde de nextcloud le "$DATE
echo ""
echo "Sauvegarde de nextcloud"
# Stop the service
echo "Mise en maintenance du service Nextcloud"
ssh $SSH_HOST sudo -u www-data php $SERVICEDIR/occ maintenance:mode --on
sudo -u www-data php $NC_DIR/occ maintenance:mode --on
# Backup the database
echo "Dump de la base de données"
ssh $SSH_HOST PGPASSWORD=$DBPASSWD pg_dump -h $DBHOST -d $DBNAME -p $DBPORT -U $DBUSER > $TMPDIR/db.pgsql
PGPASSWORD=$NC_DBPASSWD pg_dump -h $NC_DBHOST -d $NC_DBNAME -p $NC_DBPORT -U $NC_DBUSER > $TMP_DIR/db.pgsql
# Backup config data and theme folder
echo "Synchronisation des données"
rsync -axz --delete $SSH_HOST:$SERVICEDIR/data $TMPDIR
echo "Synchronisation des thèmes"
rsync -axz --delete $SSH_HOST:$SERVICEDIR/themes $TMPDIR
echo "Synchronisation de la configuration"
rsync -axz --delete $SSH_HOST:$SERVICEDIR/config $TMPDIR
# Create archive file
echo "Mise en archive des données"
tar -C $NC_DIR -cf $BACKUP_LOCATION/nextcloud-$DATE.tar data themes config
echo "Mise en archive du dump de la base de données"
tar -rf $BACKUP_LOCATION/nextcloud-$DATE.tar -C $TMP_DIR db.pgsql
echo "Compression de la sauvegarde"
gzip -f $BACKUP_LOCATION/nextcloud-$DATE.tar
echo "Fichier enregistré dans dans $BACKUP_LOCATION/nextcloud-$DATE.tar.gz"
# Restart the service
echo "Remise en fonctionnement du service Nextcloud"
ssh $SSH_HOST sudo -u www-data php $SERVICEDIR/occ maintenance:mode --off
sudo -u www-data php $NC_DIR/occ maintenance:mode --off
# Create archive file
echo "Compression de la sauvegarde"
tar -C $TMPDIR -czf ~/nextcloud-$DATE.tar.gz data themes config db.pgsql
echo "Fichier enregistré dans dans "$HOME"/nextcloud-"$DATE".tar.gz"
rm -rf $TMP_DIR
echo "Sauvegarde terminée !"

View File

@ -1,26 +1,11 @@
#! /bin/sh
#===============#
# Configuration #
#===============#
DATE=`date +%m-%d-%Y`
TMPDIR=`mktemp -d`
SERVICEDIR="CHANGEME"
SSH_HOST="CHANGEME"
BACKUP_LOCATION="CHANGEME"
echo "Sauvegarde de privatebin le "$DATE
# Backup config and data folder
echo "Synchronisation des données"
rsync -axz --delete $SSH_HOST:$SERVICEDIR/data $TMPDIR
echo "Synchronisation de la configuration"
rsync -axz --delete $SSH_HOST:$SERVICEDIR/cfg $TMPDIR
echo ""
echo "Sauvegarde de privatebin"
# Create archive file
echo "Compression de la sauvegarde"
tar -C $TMPDIR -czf $BACKUP_LOCATION/nextcloud-$DATE.tar.gz cfg data
tar -C $PB_DIR -czf $BACKUP_LOCATION/privatebin-$DATE.tar.gz cfg data
echo "Fichier enregistré dans dans "$BACKUP_LOCATION"/privatebin-"$DATE".tar.gz"
echo "Sauvegarde terminée !"