Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 il y a 2 minutes, Zeus a dit : Oui c'est ça. La tout première fois d'ailleurs, il crée le fichier mais ensuite il ne fait que modifier l'IP a l'intérieur si besoin. OK. Ça te vas si je reprends ton script pour le tuto. Je le trouve plus élégant 😀 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Bien entendu, il est là pour ça. Et puis c'est pas le mien... Je n'ai fait que prendre plusieurs bouts par ci par là et les assembler. 1 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 @Zeus as tu un exemple de comment lancer un script au démarrage du SRM ou DSM ? Merci 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Non mais as-tu essayé de consulter crontab ? vim /etc/crontab 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 Non. Vraiment au demarrage. Je me souviens qu’il fallait placer un truc du genre dans le dossier rc.d 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Possible mais ça je sais pas. Et Synology change tellement de choses après leurs majs que c'est dure de suivre... Je suis en train d'essayer d'améliorer le script en ajoutant un fichier log pour mémoriser tous les changements d'adresses. 0 Citer
PPJP Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 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) 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Sur SRM, il n'y a pas de planificateur de tâches comme sur DSM 😉 J'étais justement en train de retravailler mon script en cherchant comment intégrer les logs.J'ai ça en gros à intégrer : # journal if [ "$old_ip" != "$current_ip" ]; then echo " " >> $journal 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 fi # Cible du fichier log (création automatique du fichier) journal=/volume1/administration/check_ip_wan/ip.log Merci par avance pour ton aide 🙂 Modifié le 22 juillet 2019 par Zeus 0 Citer
PPJP Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 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!!! 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Pour wildcard, on en reparle en MP si tu veux bien histoire de pas pourrir ce topic 😉 Pour ton script, ok je vais le tester, j'avais pas fait comme toi pour la partie log. Ça fonctionnait mais mon script me semblait bizarre... Dans ton dernier script, je constate une toute petite faute de frappe. Citation # fichier de memo de l'IP memoIP="/volume1/administration/check_ip_wan//ip.txt" Je vais le tester 🙂 EDIT 1 : je constate aussi qu'il ne faudrait pas que la ligne echo "Adresse IP non changée !" soit dans le fichier log. Pour un test toutes les minutes, c'est beaucoup de lignes inutiles dans le fichier log. EDIT 2 : j'ai oublié de te préciser mais oui moi aussi j'ai eu une perte du forum tout à l'heure. Ça merdouille pas mal ces dernières semaines... Modifié le 23 juillet 2019 par Zeus 0 Citer
unPixel Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 (modifié) J'ai testé ton script est il fonctionne. Comme je l'ai dit juste au dessus, j'ai le fichier log qui se remplit à vitesse grand V à cause de l'echo que j'ai cité. Voici le script que j'ai légèrement modifié : #!/bin/bash ### CONFIGURATION ### to="destinataire@ndd.tld" from="Serveur xxxx <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=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` # récupération de l'adresse ip sur un service d'Amazon if test -f "$memoIP"; then old_ip=`cat $memoIP` # lecture ancienne adresse IP si le 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} # enregistrement dans le journal echo " " >> $journal 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 fi exit 0 Modifié le 23 juillet 2019 par Zeus 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 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??? 0 Citer
unPixel Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 J'ai lancé ce script à des fins de tests toutes les minutes. Et pourtant, cette echo se retrouve bien dans le fichier log autant de fois que le script se lance et ne constate pas de changement d'ip. 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 (modifié) 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!!! Modifié le 23 juillet 2019 par PPJP 0 Citer
unPixel Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 Oui tout à fait, je parle bien de ip.log L'info se retrouve bien dedans si l'ip ne change pas. En modification, j'ai pas fait grand chose. J'ai surtout viré cette ligne echo. 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 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. 0 Citer
unPixel Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 Ok, bonne nuit également et merci à toi. 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 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. 0 Citer
Superthx Posté(e) le 23 juillet 2019 Auteur Posté(e) le 23 juillet 2019 Hey......Y'a du chagement depuis hier soir 😅 Je vais tester cela un peu plus tard. Merci pour le suivi je corrigerai cela un peu plus tard. il y a 7 minutes, PPJP a dit : Ce script avec suffixe .,sh permission 755 devra avoir les options start et stop Est-ce que tu as un exemple "simple" ? Car j'ai une idée en tête mais il me faut un exemple avec start et stop, Par exemple un fichier "boot.sh" en chmod 755 dans /usr/local/etc/rc.d. avec comme ceci à l'interieur : #!/bin/bash touch /volume1/test.txt 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 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 0 Citer
Superthx Posté(e) le 23 juillet 2019 Auteur Posté(e) le 23 juillet 2019 il y a 1 minute, PPJP a dit : 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 Merci 0 Citer
Superthx Posté(e) le 23 juillet 2019 Auteur Posté(e) le 23 juillet 2019 Bizarre @PPJP, quand je lance le script "./boot.sh start" en chmod 755 dans /usr/local/etc/rc.d pas de probleme. Mais au demarrage du routeur il fait que dalle. Que se passe t'il ? 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 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. 0 Citer
PPJP Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 il y a 29 minutes, Superthx a dit : Mais au demarrage du routeur il fait que dalle. 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 0 Citer
unPixel Posté(e) le 23 juillet 2019 Posté(e) le 23 juillet 2019 Ou un petit coup de vi sur le fichier ip.txt en changeant simplement un chiffre. Au prochain test, il fera son travail. C'est comme ça que je provoque l'envoi du mail et la génération du fichier log. 0 Citer
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.