Aller au contenu

PPJP

Membres
  • Compteur de contenus

    362
  • Inscription

  • Dernière visite

  • Jours gagnés

    5

Tout ce qui a été posté par PPJP

  1. 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.
  2. 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
  3. 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!
  4. 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.
  5. 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).
  6. 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
  7. Attention mon précédent message a été édité!
  8. 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!
  9. 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
  10. 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.
  11. 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
  12. 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.
  13. 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.
  14. 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!!!
  15. 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???
  16. 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!!!
  17. 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)
  18. 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.
  19. 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!!!
  20. Je n'ai jamais acheté ce genre de produit d’occasion, donc je ne sais pas. Il faudrait lire les conditions de garantie Synology dans le détail. Cependant je ne serais très surpris que cela puisse fonctionner sans la facture initiale.
  21. Les garanties initiales sont consultables à https://www.synology.com/fr-fr/products/status
  22. La durée de garantie dépend du modèle de Nas. De base c'est 3 ans pour un 1815+
  23. Suite au problème des processeurs, Synology a prolongé la garantie d'un an pour les produits concernés.
  24. 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.
  25. Ce n'était qu'un raccourci, pour indiiquer où se situait le problème, sans entrer dans les détails!
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.