Koozali.org: home of the SME Server

SVP, un coup de pouce pour utiliser cron (lancer un script mensuellement)

Offline lurey

  • *
  • 78
  • +0/-0
Bonjour,
je bricole à nouveau dans mon serveur, je suis sur une bonne piste, et comme souvent... il me manque quelque connaissance de base pour aboutir proprement !

La problématique:
- J'ai une adresse chez no-ip , mon adresse IP étant susceptible de changer, j'ai installé le programme <noip2> fourni par no-ip pour upgrader mon adresse sur leur serveur lorsqu'elle change chez moi.
- Mon fournisseur d'accès me change assez rarement d'adresse, la même peut rester plus d'un mois...
- No-IP prétexte de ce que mon adresse n'est pas renouvelée pendant un mois pour tenter - sous la menace d'une interruption du service et de perdre mon nom d'hôte - de me convaincre d'acheter un service payant ; sinon - pour rester gratuit - il faut que j'aille cliquer sur leur site pour renouveler chaque Hostname de mon groupe, en recopiant chaque fois un nouveau captcha ... Bref, c'est désagréable, menaçant, et fastidieux de devoir faire ça chaque fois à la main.
- je cherche donc à renouveler automatiquement l'inscription de mon adresse sur les serveurs de No-IP, au moins une fois par mois.

Le début de solution :
- à l'aide de la notice fournie avec le client <noip2>, j'ai écrit et expérimenté le script suivant :
Code: [Select]
#! /bin/sh
# Script pour renouveler chaque mois l'inscription chez no-ip
# première écriture par Lurey le 1/03/2014
# on arrête le client en cours...
echo "Arrêt du client noip2..."
for i in `noip2 -S 2>&1 | grep Process | awk '{print $2}' | tr -d ','`
do
noip2 -K $i
done
# on envoie une adresse IP bidon...
noip2 -i 0.0.0.0
echo "Envoi de l'adresse IP 0.0.0.0"
sleep 10
# on relance le client pour qu'il renvoie l'adresse IP réelle :
noip2
# on affiche les infos sur le client en cours :
sleep 10
echo "affichage des infos du client en cours"
noip2 -S
Bon. Lancé en ligne de commande, ce script fait l'affaire : pendant 10 secondes, No-IP considère que mon adresse est 0.0.0.0, puis je lui redonne l'IP courante, "ils" devraient considérer qu'elle a été renouvelée. (la dernière partie sert juste à vérifier, pour l'instant, que ça repart normalement en redonnant la bonne adresse)
> L'idéal serait de le lancer une fois par mois - dans la nuit, vers 3h du matin par exemple...
Là, je sais qu'il existe Monsieur Cron et Madame Crontab...
Plus sérieusement, j'ai trouvé cette dernière (crontab) dans /etc et je crois comprendre qu'elle est "templatisée"
Je trouve aussi les répertoires /etc/cron.daily , /etc/cron.weekly et /etc/cron.monthly ...
 
Ma question :
- Suffirait-il de mettre mon script dans /etc/cron.monthly ? Sachant que  crontab commence par :
Code: [Select]
(...)
# run-parts

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
- Y a-t-il un moyen de "templatiser" de manière plus orthodoxe en utilisant les "templates-custom" ?
du genre mettre le script dans /etc/e-smith/templates-custom/etc/crontab et régénérer ensuite crontab (...faut que je retrouve comment)

Merci de vos lumière !
Bricoleur informatique, qui speak très mal english... merci de votre indulgence !

Offline stephdl

  • *
  • 1,523
  • +0/-0
    • Linux et Geekeries
et sinon cela devrait faire l'affaire

Code: [Select]
yum install smeserver-crontab_manager --enablerepo=smecontribs
ou cela si tu tiens à le faire a la main

http://wiki.contribs.org/Cron_entry

« Last Edit: March 02, 2014, 09:01:58 PM by stephdl »
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline lurey

  • *
  • 78
  • +0/-0
Oups...  :oops: Merci Stéphane! je suis confus de cette question, je n'avais pas bien cherché !
 ...la page sur Cron-entry répondait exactement à ce que je cherchais !
je fais, j'essaie, et je reviens dire quoi !
Bricoleur informatique, qui speak très mal english... merci de votre indulgence !

Offline stephdl

  • *
  • 1,523
  • +0/-0
    • Linux et Geekeries
si tu penses que le besoin se fait sentir d'ameliorer la page en apportant des precisions, tu peux demander a ouvrir un compte sur le wiki....la connaissance n'a d'interet que si elle est partagée
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline lurey

  • *
  • 78
  • +0/-0
bonjour !

En fait, cette page donne clairement les indications qui me manquaient, y compris la raison (que je pressentais) pour plutôt passer par un "custom-template". Malgré mon malaise avec l'anglais, ça m'a paru clair (c'est dire !)
Voilà, après quelques tâtonnements et péripéties, mon bidouillage marche ; je peaufine, je vérifie, et je prépare un "howto" clair à mettre ici (quitte à modifier le titre de départ) au cas où quelqu'un en aurait besoin...  ;)
Bricoleur informatique, qui speak très mal english... merci de votre indulgence !

Offline stephdl

  • *
  • 1,523
  • +0/-0
    • Linux et Geekeries
en fait le top serait de faire un howto soit en français, ou mieux d’améliorer celui qui est en anglais, mais toujours dans le wiki.
En effet ce n'est pas tiptop de disséminer la doc.

Si tu n'as pas de compte wiki tu peux en demander un : http://wiki.contribs.org/Help:Contents#How_to_get_a_wiki_account.3F

pour la syntaxe wiki, il te suffit de faire un "modifier" et tu verras comment cela est ecris.
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline lurey

  • *
  • 78
  • +0/-0
en fait le top serait de faire un howto soit en français, ou mieux d’améliorer celui qui est en anglais (...)
Mon propos n'est pas d'améliorer ce qui est expliqué sur les entrées dans Cron, puisque ça m'est apparu clair. (Peut-être, en guise de contribution, proposer une version française de cette page, pour ceux, comme moi, à qui l'anglais rend  plus difficile de mettre les mains dans la mécanique, voire même moins attrayant d'expérimenter SME : imaginez-vous, les mains noires de cambouis, devoir déchiffrer la revue technique de votre Toyota en japonais, ou de votre Lada en russe...)

... le howto que je concocte traiterait de l'utilisation du deamon No-IP sur SME en contournant le risque de perte du nom d'hôte après 30 jours "d'inactivité" sans avoir à payer un service supplémentaire.
Si cela le mérite, on pourra toujours envisager de le mettre dans le wiki, y compris... en japonais, en russe et en anglais !
Pour l'instant, il faut que je vérifie que c'est bien fonctionnel : le site de No-IP précise
Quote
Free hostnames are deleted after 30 days of inactivity.  Inactivity is defined as when a host has not been updated or 'touched' via the web interface or a dynamic update client.
(...)When a host is deleted due to inactivity it's not immediately removed from our system. Recently deleted free hostnames are moved into a 30 day redemption period where they cannot be re registered.
... et je m'inquiète pour les mois de 31 jours : je ne sais pas, au cas ou ça coupe juste au 30ème jour, si l'update par le client permet de restaurer pendant la "période de rédemption" (..!) sans avoir à se connecter à son compte sur le site... J'hésite à faire faire la manip deux fois par mois, et j'ai rien trouvé qui me laisse penser que cron puisse compter les jours sans se référer à la date (pour lancer tous les 29 jours !)

[EDIT] ah, mais, je découvre (... les initiés vont rire) un cousin, anacron, qui pourrait peut-être mieux faire l'affaire ! une soirée de recherche en perspective...
« Last Edit: March 03, 2014, 08:08:06 PM by lurey »
Bricoleur informatique, qui speak très mal english... merci de votre indulgence !

Offline stephdl

  • *
  • 1,523
  • +0/-0
    • Linux et Geekeries
indeed :)
http://geekeries.de-labrusse.fr/?p=1777 la version francaise du howto :) (Bon j'ai pas osé te la mettre, hein c'est chez moi)

concernant le cron si tu desires mettre un cron tous les 15 jours

* * */15 * *

je ne penses pas qu'il y ait des limites de renouvellement hormis vraiment rapproché, donc 2 renouvellements par mois me semble plausibles pour noip
« Last Edit: March 03, 2014, 09:17:03 PM by stephdl »
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline lurey

  • *
  • 78
  • +0/-0
Oh, ben alors, c'est tellement bien fait... j'ai vraiment rien de mieux à proposer !

...par contre, entre temps, je me suis "amusé" avec la piste anacron :
- appris que anacron peut lancer mon script si 27 jours sont passés depuis la précédente exécution, par exemple
- découvert que anacrontab n'est pas templatisé par SME... mais peut l'être, de la même manière que crontab (ce que je fis)
- cru repérer que anacron ne semble lancé par cron que pour mettre à jour les dates butoir des tâches programmées en cron-daily, weekly ou monthly ? (et imaginé que ce doit être pour lancer lesdites tâches si la périodicité a été dépassée - par arrêt du serveur, par exemple ? mais pas encore trouvé qui d'autre lance anacron et quand, puisqu'il ne s'agit pas d'un deamon... peut-être au démarrage ?)

... et au final :
un template-custom ajoute à anacrontab le "job" noip-renew, à faire après 27 jours.
un template-custom ajoute à  crontab de lancer chaque semaine anacron sur le "job" noip-renew.
... normalement à la quatrième semaine (28j), l'échéance des 27 est passée, ça devrait lancer le script qui force le renouvellement de l'enregistrement par No-IP !
Première expérimentation cette nuit, après avoir effacé toute trace de noip-renew dans /var/spool/anacron/ (là où sont gardées les dates de précédents lancements par anacron)

...pffffff je vais me coucher, l'exploration était passionnante !
Bricoleur informatique, qui speak très mal english... merci de votre indulgence !