Jump to content
XPEnology Community
  • 0

Réaliser un backup de la configuration du NAS


Alandil

Question

Bonjour à tous,

 

J'ai cherché un peu partout mais n'ai trouvé que des solutions de backup de données. Je souhaite mettre en place un backup de la configuration (et uniquement de la configuration : paquets (DSM & Docker), configuration des paquets (DSM & Docker), configuration du DSM, du pare-feu, ...) réalisée en automatique ainsi que, bien sûr, la marche à suivre pour remettre en place le backup.

 

Merci d'avance

 

Cordialement,

Edited by Alandil
Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0
à l’instant, Alandil a dit :

il me manque aussi la possibilité de sauvegarder en direct la configuration du DSM.

Pour ce point, je ne crois pas que cela soit possible en automatique 🤔

 

 

 

Link to comment
Share on other sites

  • 0

Ah ça c'est vraiment dommage ! 

La configuration du DSM, les paquets et leur propre configuration sont l'essentiel du NAS. C'est regrettable que cela ne puisse se faire.

Ta réponse est définitive sur le sujet ou tu aurais une piste éventuelle ?

Link to comment
Share on other sites

  • 0

Salut,

Pour la génération du .dds il semblerai qu'on puisse le faire avec un script bash dans une tache planifié :

https://www.reddit.com/r/synology/comments/eh4c4w/automatic_nas_backup_dss_file_creation/

 

#!/bin/sh
#
ARCHIVEDIR=/volume1/prod/backups/synology_dsm
ARCHIVE=${ARCHIVEDIR}/diskstation_backup.dss
rm $ARCHIVE
/usr/syno/bin/synoconfbkp export --filepath=$ARCHIVE

 

Edited by EVOTk
Link to comment
Share on other sites

  • 0
il y a 20 minutes, EVOTk a dit :

#!/bin/sh # ARCHIVEDIR=/volume1/prod/backups/synology_dsm ARCHIVE=${ARCHIVEDIR}/diskstation_backup.dss rm $ARCHIVE /usr/syno/bin/synoconfbkp export --filepath=$ARCHIVE

Je viens de tester la tâche en modifiant le répertoire de destination et elle n'a pas fonctionné.

Link to comment
Share on other sites

  • 0
il y a 18 minutes, Alandil a dit :

Et pour l'ensemble des paquets et leur configuration ? Tu vois une alternative ?

Non du tout, d’ailleurs j’évite au maximum l'utilisation des paquets syno.

 

il y a 3 minutes, Alandil a dit :

Je viens de tester la tâche en modifiant le répertoire de destination et elle n'a pas fonctionné.

 

Le script a 1 an, il n'est peut etre plus valable. Je n'ai pas acces a mon NAS pour le moment, j'essayerai quand cela sera possible a moins que d'ici la, quelqu'un apporte une idée/solution

Link to comment
Share on other sites

  • 0

Je viens de tester le script, en fait directement la ligne de commande, toutes les lignes au-dessus ne servent à qu'à construire le chemin vers l'archive et à l'effacer éventuellement et ça marche sans problème :

root@Maison:~# ls /volume2/archives/*.dss
ls: cannot access /volume2/archives/*.dss: No such file or directory
root@Maison:~# /usr/syno/bin/synoconfbkp export --filepath="/volume2/archives/test.dss"
Export confbkp file to : /volume2/archives/test.dss 
root@Maison:~# ls /volume2/archives/*.dss
/volume2/archives/test.dss
root@Maison:~# 

Le fichier .dss est bien une archive tar compressée contenant le fichier config_info indiquant la version de la sauvegarde et celle du DSM et la base de données avec les informations sauvegardées.

root@Maison:~# tar tvJf /volume2/archives/test.dss
drwx------ root/root         0 1970-01-01 00:00 ConfigBkp/
-rw-r--r-- root/root     45056 1970-01-01 00:00 ConfigBkp/_Syno_ConfBkp.db
-rw-r--r-- root/root       131 1970-01-01 00:00 ConfigBkp/config_info

Pour aller plus loin et la sauvegarde de la configuration des paquets, les infos ne sont pas vraiment claires...

Analyser les sources d'un paquet (en OpenSource) peut être instructif pour trouver l'arborescence utilisée réellement (peut-être aussi les recommandations de développement chez Synology pour la communauté).

Le paquet MediaServer par exemple à un répertoire conf dans /var/packages/MediaServer et aussi un répertoire etc (qui est lien) vers /usr/syno/etc/packages/MediaServer mais on trouve aussi un répertoire etc bien plus rempli dans le lien target de ce même dossier /var/packages/MediaServer (qui pointe lui vers le volume acceuillant le paquet (/volume1/@appstore/MediaServer), donc des fichiers un peu partout... Le premier lien etc est peut-être les modèles de configuration à utiliser pour le paquet ?? pas été voir.

root@Maison:~# cd /var/packages/MediaServer/
root@Maison:/var/packages/MediaServer# ls -l
total 108
drwxr-xr-x 2 root root   4096 Mar 26 21:26 conf
-rw-r--r-- 1 root root      0 Mar 19 15:59 enabled
lrwxrwxrwx 1 root root     34 Mar 19 15:59 etc -> /usr/syno/etc/packages/MediaServer
-rw-r--r-- 1 root root 100284 Mar 19 15:59 INFO
drwxr-xr-x 2 root root   4096 Feb 19 04:46 scripts
lrwxrwxrwx 1 root root     30 Mar 19 15:59 target -> /volume1/@appstore/MediaServer
root@Maison:/var/packages/MediaServer# ls -l etc/
total 44
-rw-r--r-- 1 MediaServer MediaServer 9477 Mar 30 23:41 client_list.json
-rw-r--r-- 1 MediaServer MediaServer  104 Dec 12  2017 codecs.conf
-rw-r--r-- 1 MediaServer MediaServer  603 Feb 19  2020 dmsinfo.conf
-rw-r--r-- 1 MediaServer MediaServer    3 Feb 17  2020 exposed_collection.json
-rw-r--r-- 1 MediaServer MediaServer 2860 Dec 12  2017 menu_custom1.xml
-rw-r--r-- 1 MediaServer MediaServer 5576 Dec 12  2017 menu_custom2.xml
-rw-r--r-- 1 MediaServer MediaServer 7117 Dec 12  2017 menu_custom3.xml
root@Maison:/var/packages/MediaServer# ls -l target/
total 0
drwxr-xr-x 1 MediaServer MediaServer 132 Feb 19 04:46 app
drwxr-xr-x 1 MediaServer MediaServer 290 Mar 19 16:00 apparmor
drwxr-xr-x 1 MediaServer MediaServer  88 Feb 19 04:46 bin
drwxr-xr-x 1 MediaServer MediaServer 842 Mar 19 16:00 etc
drwxr-xr-x 1 MediaServer MediaServer  42 Feb 19 04:46 indexdb
drwxr-xr-x 1 MediaServer MediaServer 444 Feb 19 04:46 lib
drwxr-xr-x 1 MediaServer MediaServer  46 Feb 19 04:46 log
drwxr-xr-x 1 MediaServer MediaServer  50 Feb 19 04:46 sbin
drwxr-xr-x 1 MediaServer MediaServer 532 Feb 19 04:46 scripts
drwxr-xr-x 1 MediaServer MediaServer 868 Feb 19 04:46 synovte
drwxr-xr-x 1 MediaServer MediaServer  84 Feb 19 04:46 user_data_collector
drwxr-xr-x 1 MediaServer MediaServer 170 Mar 26 21:26 webapi
drwxr-xr-x 1 MediaServer MediaServer  20 Feb 19 04:46 www_root
root@Maison:/var/packages/MediaServer# ls -l conf/
total 12
-rw-r--r-- 1 root root  973 Feb 19 04:46 privilege
-rw------- 1 root root 1100 Mar 19 15:59 resource
-rw------- 1 root root  802 Mar 26 21:26 resource.own
root@Maison:/var/packages/MediaServer# ls -l target/etc/
total 212
-rw-r--r-- 1 MediaServer MediaServer 10566 Feb 19 04:46 agent.conf
-rw-r--r-- 1 MediaServer MediaServer  2607 Feb 19 04:46 allservices.xml
-rw-r--r-- 1 MediaServer MediaServer  4124 Feb 19 04:46 cdsSCPD.xml
-rw-r--r-- 1 MediaServer MediaServer  5958 Feb 19 04:46 cdsxSCPD.xml
-rw-r--r-- 1 MediaServer MediaServer   104 Feb 19 04:46 codecs.conf
-rw-r--r-- 1 MediaServer MediaServer  4099 Feb 19 04:46 connmgrSCPD.xml
-rw-r--r-- 1 MediaServer MediaServer  7665 Feb 19 04:46 defcover.jpg
-rw-r--r-- 1 MediaServer MediaServer  2505 Feb 19 04:46 device_win.xml
-rw-r--r-- 1 MediaServer MediaServer  2513 Feb 19 04:46 device_xbox.xml
-rw-r--r-- 1 MediaServer MediaServer  2096 Feb 19 04:46 device.xml
-rw-r--r-- 1 MediaServer MediaServer  7119 Feb 19 04:46 dmsicon120.jpg
-rw-r--r-- 1 MediaServer MediaServer 15794 Feb 19 04:46 dmsicon120.png
-rw-r--r-- 1 MediaServer MediaServer  2394 Feb 19 04:46 dmsicon48.jpg
-rw-r--r-- 1 MediaServer MediaServer  3694 Feb 19 04:46 dmsicon48.png
drwxr-xr-x 1 MediaServer MediaServer     8 Feb 19 04:46 index
-rw-r--r-- 1 root        root         2692 Mar 26 21:26 initall.xml
-rw-r--r-- 1 MediaServer MediaServer  8742 Feb 19 04:46 lighttpd.conf
-rw-r--r-- 1 MediaServer MediaServer  8789 Feb 19 04:46 lighttpd.debug
-rw-r--r-- 1 MediaServer MediaServer   425 Feb 19 04:46 log_whitelist
-rw-r--r-- 1 MediaServer MediaServer  7188 Feb 19 04:46 menu_advance.xml
-rw-r--r-- 1 MediaServer MediaServer  2860 Feb 19 04:46 menu_custom1.xml
-rw-r--r-- 1 MediaServer MediaServer  5576 Feb 19 04:46 menu_custom2.xml
-rw-r--r-- 1 MediaServer MediaServer  7117 Feb 19 04:46 menu_custom3.xml
-rw-r--r-- 1 MediaServer MediaServer  5639 Feb 19 04:46 menu_ipod.xml
-rw-r--r-- 1 MediaServer MediaServer  2663 Feb 19 04:46 menu_local.xml
-rw-r--r-- 1 MediaServer MediaServer  4337 Feb 19 04:46 menu_simple.xml
-rw-r--r-- 1 MediaServer MediaServer  6628 Feb 19 04:46 menu_vs_template.xml
-rw-r--r-- 1 MediaServer MediaServer  2599 Feb 19 04:46 msrrSCPD.xml
drwxr-xr-x 1 MediaServer MediaServer  1158 Feb 19 04:46 radio
-rw-r--r-- 1 MediaServer MediaServer   425 Feb 19 04:46 registrar.xml
-rw-r--r-- 1 MediaServer MediaServer   394 Feb 19 04:46 synodms_port
-rw-r--r-- 1 MediaServer MediaServer  2096 Feb 19 04:46 uctt.xml
-rw-r--r-- 1 MediaServer MediaServer  9181 Feb 19 04:46 vcover.jpg
root@Maison:/var/packages/MediaServer# 

 

Pas très transparent... mais si on connait la structure du syno, ça doit pouvoir s'expliquer.

Jacques

Link to comment
Share on other sites

  • 0

En principe, dans la structure d'un paquet, on recrée un environnement spécifique pour maintenir le paquet (et ses programmes) dans ce dernier.

Donc le répertoire etc dans /volume1/@appstore/MediaServer doit être celui de la configuration en place.

 

Les liens suivants peuvent servir à comprendre je pense :

https://help.synology.com/developer-guide/index.html

https://www.synology.com/fr-fr/support/developer

Edited by JacquesF
Link to comment
Share on other sites

  • 0

 

à programmer dans le plannificateur de tâches :

 

synoconfbkp export --filepath=/volume1/tmp/bk_syno_conf_$(date +%y-%m-%d).dss

 

Avec ce paramétrage tu marques la date sur le nom de la sauvegarde sur chacune de tes sauvegardes.

 

le filepath est à adapter avec ton syno.

 

J'utilise ce genre de script pour sauvegarder les bdd de mes CMS

et tu peux compléter le script avec :

find /volume1/tmp/ -type f -mtime +30 -delete

 

cela permet de ne conserver que les 30 dernières sauvegardes- à adapter en fonction des tes besoins.

 

Bon usage

Fred

Link to comment
Share on other sites

  • 0

La 1ère ligne génère un export de la configuration (il faut l'exécuter sous le compte root (donc un sudo -i admin en principe, ou un login via SSH et une clef d'identification) qui se nommera bk_syno_conf_2020-04-14.dss (si on lance le job le 14 avril de cette année).

La seconde efface les fichiers qui ont été générés il y a plus de 10 jours.

Donc la première n'est peut-être pas lancée avec les bons droits (elle fonctionne, testée chez moi comme indiqué plus haut) et la seconde n'a probablement rien à effacer.

Jacques

Link to comment
Share on other sites

  • 0

MErci JacquesF pour ces précisions.

 

Dans le menu configuration il faut aller dans le planificateur de tâche, créer une nouvelle tâche, tâche planifiée, script défini par l'utilisateur

 

Dans l'écran général tu peux choisir le compte à utiliser pour exécuter la tâche (root, admin, xxx, ...)

Pour notre cas j'ai conservé le compte root ce qui fonctionne très bien.

 

 

 

 

Capture.thumb.JPG.b91becf48987361be298ac2b248771f1.JPG

 

Link to comment
Share on other sites

  • 0
il y a une heure, Alandil a dit :

@fbittoun

 

Ce sont des commandes que je peux exploiter avec le planificateur de tâche ? En fait, il s'appuie sur du langage linux ?

Oui c'est bien du Linux

 

Le planificateur de tâche est une interface qui s'appuie sur la commande cron de Linux (et qui simplifie grandement le paramétrage de la planification des tâches)

Dans le script développé par l'utilisateur il s'agit de Bash (acronyme de Bourne-Again shell) qui est un interpréteur en ligne de commande de type script. C'est le shell Unix du projet GNU. Fondé sur le Bourne shell

 

Certains paquets comme Hyperbackup inscrivent les opérations de backup dans le planificateur de tâche.

 

Perso j'utilise le planificateur de tâche pour sauvegarder mes bases de données (mysldump ........) : mariaDB utilise le même langage de commande que mySQL

 

Bon usage.

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...