eukamoon Posté(e) le 12 mars 2013 Partager Posté(e) le 12 mars 2013 Bonjour les gens ! Je cherche un petit coup de main pour mettre en place un script, que je souhaite placer dans mon rc.local, de façon à être executé à charge démarrage du syno. L'idée est la suivante : 1- Vérifier que "/etc/ddns_provider.conf" et "/etc.defaults/ddns_provider.conf" sont identiques 2- Si ils ne sont pas identiques, copier le fichier "/etc/ddns_provider.conf" et le coller dans "/etc.defaults/ddns_provider.conf" en écrasant l'ancien 3- Si la 2ème étape a eu besoin d'être effectuée, rebooter le syno Voilà, rien de bien méchant je suppose, mais hors de mes compétences. Quelqu'un pour m'aider ? Merci par avance! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 12 mars 2013 Partager Posté(e) le 12 mars 2013 1) diff "fichier 1" "fichier 2" 2) if xxxx cp -e force /path/to/file1 /path/to/file2 3) command "reboot" Tout ceci doit être exécuté en root T'as les grande ligne 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eukamoon Posté(e) le 12 mars 2013 Auteur Partager Posté(e) le 12 mars 2013 Hello Bud77, Merci pour ta réponse et pour ton éclairage ! J'ai effectivement les grandes lignes .. mais je suis toujours loin d'avoir un script fonctionnel même avec ça ! C'est vraiment hors de mes compétences. J'ai rarement l'habitude de demander du pré maché .. mais .. dans ce cas .. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 12 mars 2013 Partager Posté(e) le 12 mars 2013 J'ai rien pour tester au boulot, mais y'a surement CoolRaoul qui va passer par là 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eukamoon Posté(e) le 12 mars 2013 Auteur Partager Posté(e) le 12 mars 2013 Pas de soucis ! Merci beaucoup tout de même tu m'as déjà fourni les bonnes pistes. Si tu te sens motivé, dès que tu as le temps, je suis vraiment preneur de ces quelques lignes au propre! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 12 mars 2013 Partager Posté(e) le 12 mars 2013 J'ai rien pour tester au boulot, mais y'a surement CoolRaoul qui va passer par là Voila, voila ... Théoriquement, pour respecter strictement ta spec ceci devrait faire l'affaire (à mettre dans un script autonome, lui même invoque par /etc/rc.local #!/bin/sh # 1- Vérifier que "/etc/ddns_provider.conf" et # "/etc.defaults/ddns_provider.conf"sont identiques # # 2- Si ils ne sont pas identiques, copier le fichier # "/etc/ddns_provider.conf" et le coller dans # "/etc.defaults/ddns_provider.conf" en écrasant l'ancien # 3- Si la 2ème étape a eu besoin d'être effectuée, rebooter le syno PATH=/bin:/usr/bin A_FILE="/etc/ddns_provider.conf" D_FILE="/etc.defaults/ddns_provider.conf" cmp -s $A_FILE $D_FILE && exit # fichier identiques: rien a faire cp $A_FILE $D_FILE reboot Mais attention, faire un "reboot" lors de la séquence de startup (puisque appelé par rc.local), je ne pense pas que ce soit une très bonne idée. Le boot DSM exécute certaines parties en parallèle, ton reboot va arriver comme un poisson dans l'eau en plein milieu de cette séquence tandis que d'autre opérations sont en train de se dérouler (démarrage des packages par exemple) et ca risque de mettre un joyeux souk. Déja, a la place du reboot peut-être se contenter d'un simple /usr/syno/etc/rc.d//S09DDNS.sh restart serai moins violent Mais meme dans ce cas, et a cause du parallellisme du démarrage, ton rc.local peut tres bien être exécuté avant ou apres le démarrage DDNS, ou pire ... simultanément! Tu vois, c'est pas si simple. Je vais essayer de trouver une solution plus robuste Stay tuned... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 12 mars 2013 Partager Posté(e) le 12 mars 2013 (modifié) Ceci devrait être plus robuste: #!/bin/sh PATH=/bin:/usr/bin logfile=/tmp/$(basename $0).log if [ "$1" == "" ] ; then # on se relance mais cette fois en se detachant nohup $0 "CALLBACK" </dev/null >$logfile 2>&1 & exit 0 fi # a partir d'ici on s'execute de facon autonome MY_DDNS_CONF="/usr/local/etc/ddns_provider.conf" DDNS_CONF="/etc/ddns_provider.conf" cmp -s $MY_DDNS_CONF $DDNS_CONF && exit # fichier identiques: rien a faire # attente active que DDNS soit demarré, 5 minutes au total tries=30 # nombre de tentatives delay=10 # secondes until killall -q -0 ddnsd ; do sleep $delay tries=$(expr $tries - 1) if [ $tries -eq 0 ] ; then # toujours pas de DDNS, on laisse tomber echo "service DDNS inactif" >&2 exit 1 fi done cp $MY_DDNS_CONF $DDNS_CONF /usr/syno/etc/rc.d/S09DDNS.sh restart remarques: J'ai cru comprendre que ce que tu souhaitais étais simplement de maîtriser la config ddns, donc mieux vaut utiliser comme référence un fichier non touché par DSM, j'ai pris "/usr/local/etc/ddns_provider.conf" Ceci constitue un script autonome (le mettre par exemple dans "/usr/local/bin/fix_ddns_conf"), qui doit être appelé au boot, à partir de /etc/rc.local ou d'une autre manière. des qu'il est invoqué, il se relance lui-même en mode détaché et attend que ddns soit démarré pour faire la manip au moment opportun. ne pas hésiter à me corriger si je n'ai pas bien compris l'effet souhaité **EDIT*** Attention a bien éditer "/usr/local/etc/ddns_provider.conf" avant de lancer le script la 1ère fois! **EDIT#2** fixé grammaire et orthographe Modifié le 12 mars 2013 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eukamoon Posté(e) le 12 mars 2013 Auteur Partager Posté(e) le 12 mars 2013 (modifié) Hello @CoolRaoul, Merci beaucoup d'avoir pris le temps de me pondre ce petit script. Tu as parfaitement compris mon besoin ! Pour détailler ma demande, cela fait référence à : http://blog.isorez.fr/index.php?post/2011/03/28/IP-Dynamique-NAS-Synology-et-OVH En fait le but est d'utiliser OVH et mon nom de domaine .fr comme service DDNS. Le problème est qu'à chaque reboot du syno, la modification est supprimée et remplacé par le fichier ddns_provider.conf de base du syno. Je vais donc tester installer ton script, attendre une mise à jour du DSM et .. serrer les fesses ! Encore une fois, merci, je suis un grand lecteur de l'ombre de ce forum et c'est vraiment agréable de voir qu'on peut y trouver rapidement de l'aide. Bonne journée à vous ! Modifié le 12 mars 2013 par eukamoon 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.