Sauvegardes et restaurations

Une fonction de sauvegarde est présente dans le logiciel dans "Administration" et "Sauvegardes", vous permettant de télécharger une archive de vos fichiers et de la base de données.
Cependant nous vous recommandons grandement d'automatiser ces sauvegardes en suivant l'une des procédures suivantes :
A noter : Il est possible que la fonction intégrée à l'application, ne puisse fonctionner si vous vous avez un volume trop important de données à sauvegarder, utiliser alors les procédures de sauvegardes automatiques

Sauvegarde Automatique Linux en local

Créer un fichier "save.sh" avec un éditeur de texte
Intégrer les lignes suivantes :

#!/bin/sh
mkdir /backup
mkdir /temp/backup
mysqldump --databases nombasegestsup --user=root --password=PASS --lock-tables | gzip -c > /temp/backup/`date +%F`.sql.gz
cp -R /var/www/html/* /temp/backup
zip -r /backup/backup_gs_`date +%F`.zip /temp/backup/*
rm -R /temp/backup/*
cd  /backup
#remove old backup
rm `ls -t backup*.zip | awk 'NR>7'`

Créer une tâche planifiée pour exécuter ce script :

nano /etc/crontab

Ajouter la ligne:

0 0 * * * root sh /mon_repertoire/save.sh

Pour une sauvegarde tous les jours à minuit.

Sauvegarde Manuelle Linux

Connectez-vous en root sur le serveur GestSup
Créer un répertoire de sauvegarde :

mkdir /backup

Copier les fichiers dans un répertoire de sauvegarde:

cp -R /var/www/html/gestsup/* /backup

Copier la base de données dans un répertoire de sauvegarde:

mysqldump --all-databases --user=root --password=PASS --lock-tables | gzip -c > /backup/DB_bkp.sql.gz

Sauvegarde Automatique Linux vers un serveur FTP

Installer les paquets suivants :

 apt install zip && apt install ftp

Créer un fichier "save.sh" avec un éditeur de texte
Intégrer les lignes suivantes :

#!/bin/sh
mkdir /backup
mysqldump --user=root --password=PASS --lock-tables --databases nombasegestsup | gzip -c > /backup/`date +%F`.sql.gz
cp -R /var/www/html/gestsup/* /backup
zip -r /backup/backup`date +%F`.zip /backup/*
cd /backup
HOST='FTPSERVER'
USER='anonymous'
PASSWD=''
FILE=backup`date +%F`.zip
ftp -n $HOST <       quote USER $USER
quote PASS $PASSWD
binary
cd /DIRECTORY FTPSERVER
put $FILE
quit
END_SCRIPT
rm -R /backup/*

Créer une tâche planifiée pour exécuter ce script nano /etc/crontab Ajouter la ligne :

0 0 * * * root sh /mon_repertoire/save.sh

pour une sauvegarde tous les jours à minuit.

Sauvegarde Automatique Windows

Créer un fichier "save.bat" avec un éditeur de texte
Intégrer les lignes suivantes :

@echo off
rem sauvegarde de la base de données nommée bsup
"C:\wamp64\bin\mariadb\mariadb10.2.14\bin\mysqldump.exe" -u root --opt bsup -h localhost > c:\wamp64\www\%DATE:~6,4%_%DATE:~3,2%_%DATE:~0,2%_bak_gestsup.sql
rem sauvegarde des fichiers sur un autre serveur ayant un répertoire partagé 
xcopy C:\wamp64\www\*.* \\serveur\Backups\GestSup /s/e/y >NUL 2>&1

Créer une tâche planifiée pour exécuter ce script.

Sauvegarde Manuel Windows

  • Depuis votre serveur, accédez à http://localhost/phpmyadmin
  • DSélectionner votre base de données
  • DCliquez sur l'onglet exporter puis exécuter
  • DEnregistrer le fichier sur votre emplacement de sauvegarde
  • DCopiez tous les fichiers du répertoire "c:\wamp\www\gestsup" sur votre emplacement de sauvegarde

Restauration complète

  • Récupérer votre sauvegarde, fichier et base de données (fichier .sql)
  • Connectez-vous sur PhpMyAdmin sur votre serveur (http://monserveur/phpmyadmin), depuis l'onglet base de données, créer une base de données nommée "bsup", puis sélectionner l'onglet "importer" et sélectionner le fichier de sauvegarde de la base de données (Fichier SQL).
  • Si vous rencontrez des difficultés avec l'import via PhpMyAdmin avec WAMP, vous pouvez utiliser la ligne de commande suivante : C:\wamp64\bin\mysql\mysql5.7.17\bin\mysql.exe -p db_name -u root < "my_sql_file.sql"
  • Si lors de l'import vous obtenez un message d'erreur "MySQL server has gone away", modifier votre my.cnf et passer la valeur "max_allowed_packet" à 100M.
  • Recopier l'ensemble des fichiers de l'application sur le serveur.
  • Vérifier sur le fichier connect.php que les informations de connexion à la base de données sont correctes.
  • Vider le cache de votre navigateur, puis connectez-vous à l'application, via l'URL https//monserveur.

Restauration d'une table

Si vous avez fait une erreur en supprimant un élément d'une liste par erreur et que vous souhaitez restaurer juste cette liste, et non pas toute l'application. Dans notre exemple nous verrons comment restaurer la liste des sociétés, on imagine que l'une d'entre elles a été supprimée par erreur.

  • Récupérer depuis votre sauvegarde le fichier SQL contenant votre base de données. (Fichier .sql)
  • Connectez-vous sur l'interface PhpMyAdmin de votre serveur GestSup (généralement http://monserveur/phpmyadmin )
  • Depuis l'onglet "Base de données" créez une nouvelle base de données nommée "bsup_restore" par exemple.
  • Depuis l'onglet "Base de données" sélectionnez la base de données nommée "bsup_restore".
  • Depuis l'onglet "Import" sélectionner le fichier de votre sauvegarde finissant par .sql, vérifier le jeu de caractères UTF-8, puis cliquer sur "Exécuter".
  • Vos données sont actuellement restaurées dans une base temporaire, nous allons en extraire la table qui nous intéresse.
  • Dans la liste des tables, sélectionner la table "tcompany" contenant la liste des sociétés.
  • Une fois sur la table, sélectionner l'onglet "Export" puis cliquer sur "Exécuter" et sauvegarder le fichier tcompany.sql.
  • Depuis l'onglet "Base de données" sélectionner la base de données de production nommée "bsup" par exemple, puis sélectionner la table "tcompany".
  • Depuis l'onglet "Opération" supprimez la table actuelle en sélectionnant l'option "Supprimer la table (DROP)".
  • Une fois la table supprimée, aller sur l'onglet "Import" puis sélectionner votre fichier "tcompany.sql" vérifier que vous êtes en UTF-8 puis "Exécuter".
  • Votre table est désormais restaurée.

Pour les autres listes, voici les correspondances avec les tables (Catégorie=tcategory, Sous-Catégorie=tsubcat, Criticité=tcriticality, État des tickets=tstates, Lieux=tplaces, Modèle de ticket=tmodels, Priorité=tpriority, Service=tservices, Temps=ttime, Types des tickets, ttypes, Type des matériels=tassets_types, Fabricant des matériels=tassets_manufacturer, Modèle de matériel=tassets_model, État des matériels=tassets_states, Réseau des matériels=tassets_network).