Ha d’accord, je comprends mieux. Si ça peut vous aider le Unix Synology (DSM) est basé sur une BusyBox. C’est effectivement un Unix à minima mais il est quand même utilisable et peut être complété avec des dépôts spécifiques managés avec des dépôts, un peu comme APT. C’est OpenWrt un OS embarqué également présent sur certains pare-feux…
Nous utilisons ici des NAS Synology pour sauvegarder nos serveurs, d’autres pour sauvegarder les postes Windows avec leur logiciel « Active Backup for Business » et fournir aux Mac sous Mac OS X un service « Time Machine ». Mis à part la sauvegarde Windows qui est spécifique, tous les autres systèmes de sauvegarde sont basés sur RSync (RSnapShot pour les Linux et TimeMachine pour Mac OS X). Le principe pour avoir à peu près les mains libres avec les Synology est la suivante : • Activer les accès SSH • Créer un vrai compte « root » et y placer cos clés SSH • Installer le support OPKG via Entware-NG (https://entware.net) • Installer les commandes Unix dont on a besoin avec OPKG Vous avez une très bonne documentation pour savoir comment installer Entware-NG sur l’URL https://github.com/Entware/Entware-ng/wiki/Install-on-Synology-NAS. Vous aurez besoin de savoir quelle architecture processeur est sur votre Synology, allez sur https://www.synology.com/en-global/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have Il existe également une petite documentation en français. Elle est moins complète mais utilise des mécanismes qui prennent moins l’interface DSM de travers : https://www.skyminds.net/nas-synology-installer-entware-ipkg-applications/ Cela n’interfère pas avec le système DSM en place. Tout est installé sur l’un de vos volumes NAS, par défaut « /volume1/@entware-ng » qui contiendra le script d’installation et un répertoire « /volume1/@entware-ng/opt » qui contient toutes les commandes Unix spécifiques. Le principe suivant est de remonter « /volume1/@entware-ng/opt » sur « /opt » par un montage BIND. Le tout est de s’assurer que ces montages sont bien faits même en cas de mise-à-jour complète de DSM. Personnellement, j’ai préféré créé une tâche lancée au boot et gérée par l’interface Synology (« Panneau de configuration / Système / Planificateur de tâches »). Vous Créez une « Tache déclenchée » avec un « Script défini par l’utilisateur ». Cette tâche cron devra être exécutée avec les droits de « root ». Pour les paramètres de tâche, voici ce que j’ai mis dans la fenêtre « Script défini par l’utilisateur ces 3 lignes : [ -d /mtd ] || mkdir /mtd [ -d /volume1/@MTD/local ] && mount -o bind /volume1/@MTD/local /mtd [ -x /mtd/sbin/AjoutsOPKG-MTD.sh ] && /mtd/sbin/AjoutsOPKG-MTD.sh || echo "[ERREUR] le script /mtd/sbin/AjoutsOPKG-MTD.sh n'existe pas !" Comme vous l’aurez compris, j’ai créé un répertoire personnel sur « /volume1/@MTD/local » qui contient tout le set standard Unix (etc, bin, sbin, …) et tous les ajouts dont j’ai besoin. Voici le contenu du script « AjoutsOPKG-MTD.sh » (c’est Kdo) : ———————————————————————————————————— #!/bin/bash # Programme : AjoutsOPKG-MTD.sh # # Auteur : Pierre Malard - (c)2018 MTD # Date : 090/03/2018 07:13 # version : 1.0.0 Version="1.0.0" Contact="admin_ajoutsopkg-...@teledetection.fr" # Description : # ============= # Ajouts des paramètres OPKG/Entware et MTD lors des MAJ systèmes # Voir le cron lancé dans l'interface de gestion # JJ/MM/AAAA - (v.v.v - Qui) # Quoi #-- Commandes utilisées ------------------------------ #----------------------------------------------------- #-- PATH spécifique ---------------------------------- #----------------------------------------------------- #-- Répertoires et fichiers recquis ------------------ #----------------------------------------------------- #-- Variables ---------------------------------------- Verbeux= ModeTest= CodeRet=0 #----------------------------------------------------- #-- Fonctions ---------------------------------------- Echo() { if [ ${Verbeux} ] ; then echo "==> $@"; fi } Usage() { echo "Utilisation :" >&2 echo "$(basename $0) [-hV] | [-vt]" >&2 echo "" >&2 echo " Liste des options :" >&2 echo " -h, --help, --aide________ Cette aide" >&2 echo " -V, --version_____________ Affiche la version du script" >&2 echo " -v, --verbeux, --verbose__ Mode verbeux" >&2 echo " -t, --test________________ Affiche les commandes sans les exécuter" >&2 echo "" >&2 } #----------------------------------------------------- #----------------------------------------------------- ########## # main() # ########## export LANG='fr_FR.UTF-8'; export LC_ALL='en_US.UTF-8' # On utilise la commande "echo" de BASH shopt -s xpg_echo if [ $(id -u) -ne 0 ] ; then echo "VOUS DEVEZ AVOIR LES DROIT DE root" echo "Tentative par SUDO (donnez eventuellement votre mot de passe) ..." sudo $0 "$@" exit 0 fi progname="$(basename "$0")" #-- Traitement de la ligne de commande --------------- # Pré-positionnement des variables optionnelles # Test de présence de la commande "getopt" CmdGetOpt="$(which getopt)" if [ "$#" -gt 0 ] ; then SHORTOPTS="hVvt" LONGOPTS="help,version,verbeux,verbose,test" ${CmdGetOpt} --test > /dev/null 2>&1 if [ $? -eq 4 ] ; then # Version getopt avec longopts. OPTS=$(${CmdGetOpt} -o $SHORTOPTS --long $LONGOPTS -n "${progname}" -- "$@") else case $1 in --help) Usage; exit 0 ;; --version) echo "$(basename "$0") version ${Version} - Contact : ${Contact}" exit 0 ;; esac OPTS=$(${CmdGetOpt} $SHORTOPTS "$@") fi eval set -- "$OPTS" while [ $# -gt 0 ]; do case "$1" in -h|--help) Usage; exit 0 ;; -V|--version) echo "${progname} version ${Version} - Contact : ${Contact}" exit 0 ;; -v|--verbeux|--verbose) Verbeux=1; shift ;; -t|--test) ModeTest=1; shift ;; --) shift; break ;; *) echo "Internal error!" 1>&2 ; exit 1 ;; esac done fi # #-- Traitement --------------------------------------- if [ ${ModeTest} ] ; then DEBUG="Echo "; Verbeux=1 else DEBUG="" fi Echo "DEBUG = ${DEBUG}" # On test si /opt est monté Echo "Test si /opt est monté…" if ! eval "mount | grep -q ' on /opt '" ; then # Il n'y a rien on monte et on exécute le script Echo " - Création de /opt…" [ -d /opt ] || mkdir /opt Echo " - Montage de /opt…" if [ -d /volume1/@entware-ng/opt ] ; then Echo " o Montage de /volume1/@entware-ng/opt…" mount -o bind /volume1/@entware-ng/opt /opt Echo " o Lancement de /opt/etc/init.d/rc.unslung…" /opt/etc/init.d/rc.unslung start else echo "ERREUR ! Entware-NG n'est pas présent…" exit 1 fi else Echo " C'est déjà là." fi # On test si /mtd est mmonté Echo "Test si /mtd est monté…" if ! eval "mount | grep -q ' on /mtd '" ; then # Il n'est pas, on monte Echo " - Création de /mtd…" [ -d /mtd ] || mkdir /mtd Echo " - Montage de /mtd…" if [ -d /volume1/@MTD/local ] ; then Echo " o Montage de /volume1/@MTD/local…" mount -o bind /volume1/@MTD/local /mtd else echo "ERREUR ! Le paquet MTD n'est pas présent…" exit 1 fi fi # Reconfiguration de /etc/profile Echo "Reconfiguration de /etc/profile…" if [ -f /mtd/etc/profile-EntWare.ajout ] ; then Echo " - Test si l'ajout est présent…" if [ -z "$(grep '^# Ajouts MTD' /etc/profile)" ] ; then Echo " o NON, on ajoute et exécute…" cat /mtd/etc/profile-EntWare.ajout >> /etc/profile . /etc/profile else Echo " o OUI, on passe…" fi else echo "[ERREUR] le fichier /mtd/etc/profile-EntWare.ajout n'existe pas" exit 2 fi # Reconfiguration de /etc/bash.bashrc Echo "Reconfiguration de /etc/bash.bashrc…" if [ -f /mtd/etc/bash.bashrc-MTD.ajout ] ; then Echo " - Test si l'ajout est présent…" if [ -z "$(grep '^# Ajouts MTD' /etc/bash.bashrc)" ] ; then Echo " o NON, on ajoute et exécute…" cat /mtd/etc/bash.bashrc-MTD.ajout >> /etc/bash.bashrc . /etc/bash.bashrc else Echo " o OUI, on passe…" fi else echo "[ERREUR] le fichier /mtd/etc/bash.bashrc-MTD.ajout n'existe pas" exit 2 fi Echo "Sortie" exit 0 ———————————————————————————————————— Voici ce que peut contenir « profile-EntWare.ajout » ———————————————————————————————————— # Ajouts MTD # NE PAS SUPRIMER CES 2 LIGNES #===================================================# # Ajouts EntWare-ng #===================================================# if [ -r /opt/etc/profile ] ; then source /opt/etc/profile; fi #===================================================# # Ajouts PLM #===================================================# if [ -r /etc/bash.bashrc ] ; then source /etc/bash.bashrc ; fi ———————————————————————————————————— Voici ce que peut contenir « bash.bashrc-MTD.ajout » ———————————————————————————————————— # Ajouts MTD # NE PAS SUPRIMER CES 2 LIGNES [ -r "/mtd/etc/bashrc_MTD" ] && . "/mtd/etc/bashrc_MTD" ———————————————————————————————————— Le fichier « bashrc_MTD » contient les alias et valeurs spécifiques qu’on veut voir présentes. Une fois cela installé, vous avez accès à pas mal de dépôts (rsync plus moderne, Bash plus moderne, cron, rsnapshot, screen, mutt, …) que vous listez et installez via la commande « opkg ». Chez nous, nous avons cela depuis des années et les sauvegardes de *nix sont basées sur « RSnapShot » pour garantir des sauvegardes incrémentales. Les postes utilisateurs Linux qui le souhaitent peuvent également sauvegarder leur OS et données via « RSnapShot » dans la limite d’un quota pré-défini. Idem pour les Mac avec TimeMachine et les Windows avec « Active Backup dir Business » qui est fourni par Synology. C’était le cadeau du 1er mai ;-) > Le 1 mai 2020 à 13:39, Samy Mezani <samy.mez...@wanadoo.fr> a écrit : > > Bonjour, > > Le 01/05/2020 à 11:53, Pierre Malard a écrit : >> Pourquoi s’emm… à essayer de faire un rsync d’un FS Unix depuis un >> poste Unix sur un FS certainement Unix (Ext, XFS, …) qui est certainement >> également un poste tournant sous Unix en effectuant un montage CIFS ???? > > Cette remarque est tout à fait justifiée et je me suis même demandé comment > j'en étais arrivé là ! ;-) > > En fait, il s'agit d'une sauvegarde sur un NAS Synology dont le partage CIFS > est activé de longue date pour des postes Windows. Donc pour éviter de créer > d'autres partages, j'ai utilisé l'existant. Ce n'est pas parfait, mais je ne > voulais pas au départ activer SSH sur ce NAS, car je maîtrisais peu le > système Linux sur ce matériel (pas de /home, gestion des paquets différente, > etc.) > > Mais maintenant que j'ai activé SSH avec succès, effectivement ça peut tout > changer. Ça date de hier soir seulement, mais à voir si j'ai le temps de > revoir mes scripts. > > Et sinon, j'ai toujours mes processus rsync D et Z... Ce qui n'a pas empêché > ma sauvegarde automatique aujourd'hui. > > Merci en tous cas > > Samy > -- Pierre Malard « Il faut créer en même temps les élites et les débouchés, le syndica- lisme et les usines. Faire l'un sans l'autre, c'est travailler pour le malheur du peuple. » Romain Gary - "Les racines du ciel" |\ _,,,---,,_ /,`.-'`' -. ;-;;,_ |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) πr perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. ,\ ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'\_): 24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print' - --> Ce message n’engage que son auteur <--
signature.asc
Description: Message signed with OpenPGP