-
Compteur de contenus
362 -
Inscription
-
Dernière visite
-
Jours gagnés
5
Tout ce qui a été posté par PPJP
-
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Bonjour Zeus, Désolé, hier soir j'ai raté ta réponse. Comme je te l'ai déjà dit le tutoiement n'est pas naturel chez moi. J'essaie de m'en souvenir quand je t'écrit, mais il y a des oublis (l'âge!!!) Excuse moi pour les prochains possibles oublis. Bon courage, personnellement cela ne me tente pas, c'est trop indigeste. Je t'avais prévenu que le script n'était pas testé, mais que c'était pour consultation pour savoir si le pricipe te convenait. Le tester était à tes risques et périls. Je viens de le tester rapidement, il y avait quelques petites erreurs. Dont notamment une boucle for mal maitrisée. Il semble dégrossi maintenant et tu peux le tester à ton tour. J'ai edité mon précédent message pour y mettre le script corrigé. S'il te convient il faudra le finaliser pour qu'il tourne en permanence en tache de fond. Par exemple mon script Python est lancé journellement par le gestionnaire de tâche à 00H00 et au boot. Il s’arrête quand il n'a plus le temps de réaliser une nouvelle boucle. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Bonjour ZEUS, Comme vous passez beaucoup de temps à aider les autres, je vais essayer de vous en faire gagner un petit peu. L’ébauche de script,ci-dessous, correspondrait-elle à ce que vous envisagez? Attention, je viens de l’écrire et je ne l'ai pas encore testé! Pour consultation ou lancement à vos risques et périls!!! #!/bin/bash ##################### ### CONFIGURATION ### ##################### DESTINATAIRE="destinataire@ndd.tld" EMETTEUR="Serveur xxx <expediteur@ndd.tld>" # listes de sites retournant l'IP WAN SITES=("http://checkip.amazonaws.com" "https://api.ipify.org/" "http://ipecho.net/plain" "http://icanhazip.com/" "http://ipinfo.io/ip" "https://wtfismyip.com/text" "http://whatismyip.akamai.com/" "https://ipv4bot.whatismyipaddress.com" "https://www.dsfc.net/ipinfo.php" "http://api.ipaddress.com/myip") CONFIRMATION=(" " " ") # fichier de memo de l'IP MEMOIPFILE="/volume1/administration/check_ip_wan/ip.txt" # fichier de log LOGFILE="/volume1/administration/check_ip_wan/ip.log" # Fichier teeporaire poor messagerie MSGFILE="/volume1/administration/check_ip_wan/message.txt" CYCLESURVEY=10 #300 # périodicité de vérification de l'IP WAN RECONFIRMTEMPO=5 #tempo avant nouvel essai si pas 3 nouvelles IP identiques de suite REVALIDTEMPO=2 #tempo avant nouvel essai si IP lue est invalide DUREESCRIPT=60 #Solution temporaire pour MAP ################# ### FONCTIONS ### ################# memoriser_IP() { echo $new_ip > $MEMOIPFILE } lire_old_ip() { if test -f "$MEMOIPFILE"; then old_ip=`cat $MEMOIPFILE` #lecture ancienne IP si fichier ip.txt existe fi } lire_ip_wan() { nbTest=0 ip_lue_valide=1 until [[ $ip_lue_valide -eq 0 || $nbTest -eq 3 ]];do ip_lue=`curl -silent -L ${SITES[($[($1 + $nbTest) % $nbSites])]}|tail -n 1` if [[ $ip_lue =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then ip_lue_valide=0 else ((nbTest++)) sleep 2 fi idSite=($[($1 + $nbTest) % $nbSites]) done } confirmer_new_ip() { ip_confirmee=1 bcl=0 while [[ $bcl -lt 2 ]];do sleep 1 ((idSite++)) lire_ip_wan $idSite if [ $ip_lue_valide -eq 0 ]; then CONFIRMATION[$bcl]=$ip_lue else CONFIRMATION[$bcl]=" " fi ((bcl++)) done if [[ $new_ip=CONFIRMATION[0] && $new_ip=CONFIRMATION[1] ]];then ip_confirmee=0 fi } envoi_mail() { # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $new_ip\r\n\r\nCordialement..."` echo -e "to:${DESTINATAIRE}">${MSGFILE}; echo -e "from:${EMETTEUR}">>${MSGFILE}; echo -e "subject:${sujet} ">>${MSGFILE}; echo -e "${body}" >> ${MSGFILE}; ssmtp -v ${DESTINATAIRE} < ${MSGFILE}; rm ${MSGFILE} } inscription_log() { echo "----------------------" >> $LOGFILE echo $(date +"%d/%m/%Y à %H:%M:%S") >> $LOGFILE echo "----------------------" >> $LOGFILE echo ${sujet} >> $LOGFILE echo "Votre ancienne adresse IP était : $old_ip" >> $LOGFILE echo "Votre nouvelle adresse IP est : $new_ip" >> $LOGFILE } ############### ### SCRIPT ### ############### nbSites=${#SITES[@]} idSite=$(( $RANDOM % $nbSites )) lire_old_ip while [[ $SECONDS -lt $DUREESCRIPT ]];do lire_ip_wan $idSite tempo=$CYCLESURVEY if [ $ip_lue_valide -eq 0 ]; then if [ "${old_ip}" != "${ip_lue}" ]; then new_ip=$ip_lue confirmer_new_ip if [ $ip_confirmee -eq 0 ]; then memoriser_IP sujet="Votre adresse IP publique (IPv4) a changé !" inscription_log envoi_mail lire_old_ip else tempo=$RECONFIRMTEMPO fi fi else tempo=$REVALIDTEMPO fi sleep $tempo done exit 0 -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Et encore ce n'etait qu'un aperçu! Il faut dire que ma spécialité et mon plaisir sont de modifier, compléter des scripts qui fonctionnent bien pour en faire des scripts qui bug.. C'est comme cela que j'apprends! -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
C'est un ensemble de plusieurs scripts Python3 qui, entre autre, tiennent à jour mon DNS chez Gandi via leur API. Dans ce cadre je surveille toutes les 5 minutes (paramétrable) mon IP externe. Cette partie est similaire à votre script. Il se sert d'une douzaine de sites retournant l'IP. A chaque boucle il interroge un site et si pas de réponse, il passe au suivant avec maxi 3 sites par boucle. A la boucle suivante, il sollicite d'autres sites. Et comme j'aime bien me compliquer la vie je trace pas mal de choses: historique des IP fournies, sites n'ayant pas répondu avec motif, adresse lue toutes les 5Mn et site ayant fournit cette IP.... Autant dire qu'il n'est pas exploitable par quelqu'un d'autre! Mais il est certainement possible de réaliser en shell une boucle sur le même principe ou approchant. Enfin je précise que ce script est lancé journellement à 00H00at et se stoppe lorsqu’il n'a plus le temps de réaliser une nouvelle boucle. Il est également lancé au boot. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
SFR ne fournit pas d'API pour gérer le DNS? Pour ma part je tiens mon DNS à jour chez Gandi grâce à leur API ( ils ne fournissent pas de DDNS à ma connaissance). Le script qui surveille l'adresse tourne sur environ une douzaine de site interrogés successivement. Si l'un ne répond pas on passe au suivant (cycle de 5mn; 3 sites maxi testés à chaque boucle). -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Pour Superthx Avez-vous essayé avec le script dans /usr/local/etc/rc.d ? Car ii me semble que le dossier /usr/syno/etc/rc.d peut être écrasé lors de mises à jour du SRM. Ce qui ne doit pas être le cas pour le dossier /usr/local/etc/rc.d Pour Zeus J'ai installé le script sur mon NAS (j'ai poussé le vice jusqu'à reproduire votre arborescence /volume1/administration/check_ip_wan) Et jamais l'info "Adresse IP non changée !" ne s'est retrouvée dans le fichier ip.log; malgré de très nombreux essais! Pour vous deux Ce script est-il destiné uniquement à envoyer un Mail ou l'IP detectée est-elle destinée à d'autres utilisations? Car si l'IP fournie par Amazon ne peut être obtenue( site HS, pb DNS, perte connexion...): current_ip sera nul donc changement d'IP décrété et le fichiet ip.txt sera vide un envoi de Mail sera tenté Une ébauche de solution possible pour remédier à ce pb; #!/bin/bash ##################### ### CONFIGURATION ### ##################### #to="destinataire@ndd.tld" #from="Serveur xxx <expediteur@ndd.tld>" #subject="Votre adresse IP publique (IPv4) a changé !" # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" # fichier de memo de l'IP memoIP="/volume1/administration/check_ip_wan/ip.txt" # fichier de log journal="/volume1/administration/check_ip_wan/ip.log" ########## ### SCRIPT ### ############## current_ip_valide=1 nbTest=5 until [[ $current_ip_valide -eq 0 || $nbTest -eq 0 ]];do current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` if [[ $current_ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then current_ip_valide=0 else sleep 10 let nbTest-- fi done if [ $current_ip_valide -eq 0 ]; then if test -f "$memoIP"; then old_ip=`cat $memoIP` #lecture ancienne IP si fichier ip.txt existe fi if [ "${old_ip}" != "${current_ip}" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations echo $current_ip > $memoIP # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject} ">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < ${messageFile}; rm ${messageFile} echo "----------------------" >> $journal echo $(date +"%d/%m/%Y à %H:%M:%S") >> $journal echo "----------------------" >> $journal echo ${subject} >> $journal echo "Votre ancienne adresse IP était : $old_ip" >> $journal echo "Votre nouvelle adresse IP est : $current_ip" >> $journal else echo "Adresse IP non changée !" exit 0 fi else echo -e "Ip incorrecte: $current_ip" echo "Impossible d'acquerir l'IP WAN !" # on peut prévoir l'envoi d'un mail (inutile si la connexion internet est tombée!) # on peut prévoir une inscription dans le fichier log exit 1 fi -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Attention mon précédent message a été édité! -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Pour ma part j'aurais tout mis dans /usr/local/etc/rc.d Mais avec des numérotations différentes S95XXX.sh, S96XXX.sh, S97XXX.sh... Le chiffre sert à définir l'ordre d'exécution qui peut être important. Si ce n'est pas vous qui avez implanté ces script laissz les en place! -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Comment le savez_vous? S'il n'y a pas de changement d'IP aucun fichier n'est modifié ni mail d'expédié. Pour faire un test laissant des traces supprimez le fichier /volume1/administration/check_ip_wan/ip.txt avant reboot du routeur -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Je ne sais pas et ne possède pas de routeur syno pour tester. A tout hasard essayez de changer le nom du fichier boot.sh en S97boot.sh. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Bonjour, Si votre script est nommé check_ip_wan.sh et situé dans le dossier /volume1/administration/check_ip_wan, vous pouvez tester avec le fichier boot.sh contenant: case $1 in start) /volume1/administration/check_ip_wan/check_ip_wan.sh ;; stop) ;; *) echo "Usages: $0 [start|stop]" ;; esac -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Bonjour, Dans SRM, il devrait être possible de lancer ce script par un script à créer dans /usr/local/etc/rc.d. Ce script avec suffixe .,sh permission 755 devra avoir les options start et stop. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Quand j'aurais un peu de temps j'installerai ce script sur mon NAS, pour pouvoir le lancer. Car la, je ne comprends vraiment pas. Je vais pouvoir revenir un peu au débogage de shell (pouahh!). Mais ce ne sera probablement que dans quelque temps, car comme cette instruction est supprimée, cela n'a aucun caractère d'urgence. Je ferai un retour de mes test. Je vais quitter, bonne nuit. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Ce que tu appelles fichier de log c'est bien /volume1/administration/check_ip_wan/ip.log? Si c'est bien cela, je ne comprend vraiment pas comment cette info puisse s'y retrouver!!! Elle ne devrait qu'apparaitre dans le terminal et donc visible que si le script est lancé en SSH. J'avais les yeux bouchés car je ne trouvais les modifs de fichier!!! -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Je n'ai rien compris! L'info "Adresse IP non changée !" n'a aucune raison d'aller dans le fichier de log (/volume1/administration/check_ip_wan/ip.log) Ce script est lancé toutes les minutes? Pourquoi??? -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Je ne parviens que tres difficilement à naviguer sur ce forum, qu'en est-il pour vous? Pouvez-vous tester cette nouvelle version du script? #!/bin/bash ##################### ### CONFIGURATION ### ##################### to="destinataire@ndd.tld" from="Serveur xxx <expediteur@ndd.tld>" subject="Votre adresse IP publique (IPv4) a changé !\r\n" # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" # fichier de memo de l'IP memoIP="/volume1/administration/check_ip_wan//ip.txt" # fichier de log journal="/volume1/administration/check_ip_wan/ip.log" ########## ### SCRIPT ### ############## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` if test -f "$memoIP"; then old_ip=`cat $memoIP` #lecture ancienne IP si fichier ip.txt existe fi if [ "${old_ip}" != "${current_ip}" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations echo $current_ip > $memoIP # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < ${messageFile}; rm ${messageFile} echo "----------------------" >> $journal echo $(date +"%d/%m/%Y à %H:%M:%S") >> $journal echo "----------------------" >> $journal echo $subject >> $journal echo "Votre ancienne adresse IP était : $old_ip" >> $journal echo "Votre nouvelle adresse IP est : $current_ip" >> $journal else echo "Adresse IP non changée !" fi exit 0 PS PS pour @Zeus Concernant le script wilscard , on peut passer un paramètre(pour test) pour avoir un renouvellement plus fréquent. Déboguer en faisant un test tous les 85 jours n'est pas optimal!!! -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
J'ai été obligé de m'absenter rapidement cet après-midi. Je vous ai donc lâchement quitté en plein milieu d’échanges. Je vous présente mes excuses. Pour me faire pardonner une nouvelle version de votre script (il restait quelques bugs) #!/bin/bash ##################### ### CONFIGURATION ### ##################### to="destinataire@ndd.tld" from="Serveur xxx <expediteur@ndd.tld>" subject="Votre adresse IP publique (IPv4) a changé !\r\n" # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" # fichier de memo de l'IP memoIP="/volume1/administration/check_ip_wan/ip.txt" ############## ### SCRIPT ### ############## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` if test -f "$memoIP"; then old_ip=`cat $memoIP` #lecture ancienne IP si fichier ip.txt existe fi if [ "${old_ip}" != "${current_ip}" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations echo $current_ip > $memoIP # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < ${messageFile}; rm ${messageFile} else echo "Adresse IP non changée !" fi exit 0 Pour ce qui concerne le lancement du script au démarrage, au moins pour DSM (je n'ai pas de routeur Syno), il suffit de le lancer par le planificateur de tâches. Faire créer puis choisir tâche déclenchée. (cela est sans doute similaire sur le SRM) -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Non, Ce n'est pas le script pour le wildcard. D'ailleurs ou en est-il? Il y a longtemps que je n'ai pas de retour de votre part. L'envoi de mail est chez moi programmé dans un modulePython3 qui est appelé par plusieurs scripts. En particulier un qui tiens à jour mon IP dans les DNS de mes domaines. En effet GANDI ne propose pas de DDNS. -
[TUTO] Envoi de mail de changement de IP pour DSM et SRM
PPJP a répondu à un(e) sujet de Superthx dans Tutoriels et Astuces
Bonjour; Juste une remarque. Ne trouvez vous pas qu'il y ai un risque a transmettre son adresse IP en clair par mail? Pour ma part j'ai un script ( pour Zeus: en python bien sur!) qui envoie également cette info de changement d'IP. Mais dans celui-ci cette IP est codée (à ma sauce!!!). Je sais, je suis très parano!!! -
Bonjour, C'est mon tour donc voici mon expérience: Depuis le 26/6 des reboot intempestifs de mon 1815+ apparaissent dans le journal. Jusqu'à 14 le 04/07. J'ai créé un ticket hier soir tard, réponse ce matin. Après quelques rapides échanges RMA établie pour ce nas acheté en 04/2016. Donc SAV Synology efficace.
-
Conseil Migration DS115 (1x1To) vers DS218+ (2x2To)
PPJP a répondu à un(e) sujet de init2 dans Installation, Configuration et Stockage
Ce n'était qu'un raccourci, pour indiiquer où se situait le problème, sans entrer dans les détails!