diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8438213 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +backup.env diff --git a/backup.env.example b/backup.env.example new file mode 100644 index 0000000..89caf11 --- /dev/null +++ b/backup.env.example @@ -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" diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..dc82814 --- /dev/null +++ b/backup.sh @@ -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 diff --git a/gitea.sh b/gitea.sh index 25b8652..790a2af 100755 --- a/gitea.sh +++ b/gitea.sh @@ -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é !" diff --git a/miniflux.sh b/miniflux.sh index 2dca6b9..124ae05 100755 --- a/miniflux.sh +++ b/miniflux.sh @@ -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 !" diff --git a/nextcloud.sh b/nextcloud.sh index 2e5bd82..fe6e72e 100755 --- a/nextcloud.sh +++ b/nextcloud.sh @@ -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 !" diff --git a/privatebin.sh b/privatebin.sh index c6619a8..3ecff60 100755 --- a/privatebin.sh +++ b/privatebin.sh @@ -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 !"