crontab et gestion des evenements

edited août 2015 in Questions
bonjour,
sur mon installation, le lancement de évènements est très aléatoire.(parler sur le client (android) par exemple).
le message n'est pas délivré tous les jours.
pour insérer la ligne tel qu'indiqué dans le guide, doit-on composer sudo crontab -e ou sudo /etc/crontab -e ?
merci d'avance

Commentaires

  • edited août 2015
    La commande pour éditer du crontab c'est bien "crontab -e" avec un sudo si nécessaire.

    Pour lister les crontab existant c'est "crontab -l"

    Après, et c'est une difficulté sous linux, on peut mettre du crontab à plein d'endroits : /etc/crontab, /etc/cron.d ... D'où probablement ton interrogation. Mais dans ce cas, il faut éditer directement le fichier. Ex : sudo vim /etc/crontab

    Donc si tu n'es pas sur de ton coup, le "sudo crontab -e" est une bonne solution ;)
  • merci pour ces éclaircissements.

    le problème c'est que sous raspbian, il existe d'entrée de jeu un crontab dans /etc (c'est celui que j'utilise ailleurs qu'avec Yana) et je n'en vois pas d'autre ailleurs.
    je me demandais si le plugin de gestion des évènements qui marche un coup sur deux (ou trois) allait récupérer un crontab spécifique.
    mais en même temps ma question est idiote puisque ça marche quand même de temps en temps...
    bizarre autant qu'étrange!


  • Je pose ma question différemment: quelqu'un utilise-t-il la gestion des évènements sans rencontrer de difficultés?
    Question subsidiaire: de quels types d'évènements s'agit-il?
    Merci d'avance

  • regardes dans /var/log/syslog et vérifies que ta commande y passe, du genre :
    Aug 22 11:45:01 raspberrypi /USR/SBIN/CRON[22833]: (root) CMD (wget "http://localhost/yana...

    si oui, exécutes à la main cette commande en spécifiant un fichier de sortie comme ça :
    wget "http://localhost/yana............................" -O "resultat_`date`" 2>&1
    et regardes ce que tu trouves dans ce fichier, logiquement en temps "normal" tu dois avoir "{"responses":[]}" puisqu'il n'y a rien à faire.

    Si tout semble normal, il faudra surveiller sur la durée.
    Sinon tu es sûr que ta commande en elle même marche bien? si par exemple il s'agit d'envoyer un signal radio et que ça capte mal, c'est normal...

  • merci pour cette réponse.

    dans /var/logs/cron j'ai bien ceci:
    /USR/SBIN/CRON[20017]: (root) CMD (wget http://localhost/yana-server/action.php?action=GET_EVENT&checker=server -O /dev/null 2>&1)
    toutes les minutes
    c'est conforme à ce que l'auteur préconise dans la notice technique.

    ensuite, j'ai ceci:
    /USR/SBIN/CRON[20016]: (CRON) info (No MTA installed, discarding output)
    normal: pas de serveur de messagerie

    la commande marche bien ... aléatoirement
    ce matin j'ai reçu le message souhaité sur le smartphone a une heure fantaisiste (commande=talk) et il était daté du 13-08-2015 (a l'heure exacte) dans la zone "dernier lancement"
    :o\


  • C'est bien pour moi, merci les réponse
  • C'est bien pour moi, merci les réponse
  • remplaces le -O /dev/null par un autre fichier ou par exemple
    -O "/home/pi/resultat_wget_`date`" pour générer un fichier à chaque appel
    et regardes le contenu de ce fichier.
  • edited août 2015
    j'ai paramétré une tâche toutes les heures.
    Le fichier resultat_xxxxx n'est pas généré.

    j'ai testé sur un autre Pi avec apache
    je vois bien la trace dans /var/log/syslog mais pas de fichier resultat_xxxx !

    ce n'est donc pas un problème de cron (2 Pi différents, deux serveurs http différents)

    je sèche...
  • edited août 2015
    Voilà les dernières nouvelles:
    message de 14h, de 15h, de 16h: rien
    message de 17h: reçu!
     c'est le premier depuis que j'ai mis en place un évènement toutes les heures.
    aucun fichier resultat_wget... dans /home/pi...

    serais-je le premier à utiliser les évènements???
    merci d'avance pour vos retours


  • edited août 2015
    Attention le process n'a peut être pas les droits pour écrire dans /home/pi ... dans le doute essaie d'écrire un fichier dans /tmp

    Pour ma part afin d'utiliser les évènements j'ai du modifier la ligne à insérer dans le crontab (par rapport à l'indication en bas de page") par :

    */1 * * * * wget -O /dev/null "http://localhost/yana-server/action.php?action=GET_EVENT&checker=server&token=IciMonTokenPresentSurLeDashboard"  2>&1
  • merci gzot
    content de savoir que ça peut marcher.
    je modifie crontab en conséquence.

  • C'était bien un problème d'ajout du token dans la commande!
    ça marche.
    merci gzot


  • edited août 2015
    Quelques tests plus tard: c'est plutôt décevant!

    j'ai paramétré un "talk" sur le client android toutes les heures et quart.
    résultat ce matin:
    de 1h15 à 4h15 : OK
    a 5h15, 8h15, 9h15, 10h15, 11h15: RIEN...
    le dernier écho est bien à 7h15 dans le gestionnaire d'événements.

    Dans ces conditions, je ne vois pas l'utilité de ce truc.
    Je serais ravi de lire que je suis le seul à connaître ces déboires.

    merci d'avance.
  • Bonjour.
    Je raccroche un peu les wagons.
    J'utilise les événements pour allumer/éteindre les lampes et n'ai pas constaté de de défaillances particulières.... après avoir ajouté le token dans la ligne du crontab.
    Je vais essayer d'envoyer un talk comme toi pour voir.
  • Question peut-être stupide : Tu es toujours au même endroit quand tu reçois les messages ? Wifi ou 3g  sur le tél ?
  • bonjour,

    oui. je fais des tests à domicile et je constate que l'heure d'émission indiquée dans la table pour cette commande est synchrone avec ce que je reçois sur le htc. par exemple hier, rien entre 8h15 et 16h15 inclus et la date est bien restée a 7.15 dans l'enreg. Ensuite ça a repris une ou deux fois dans la soirée. totalement irrégulier car la veille ça marchait plutôt bien l'après-midi...

    je vais tester de mon côté avec un autre Pi fraîchement installé et la même version de yana (qui bouge régulièrement tout en restant officiellement en 3.0.6)

    question subsidiaire: il est logé où le crontab quand je fais "sudo crontab -e" ?
    je voudrais ajouter à la même heure une autre commande comme écrire un fichier chronodaté pour voir.

    merci d'avance

  • Pour retrouver la crontab propre à ton utilisateur vas dans le répertoire "/var/spool/cron/crontabs/".
    Normalement ce fichier ne se modifie pas manuellement mais tu peux toujours essayer.<br><br>
  • edited septembre 2015
    ok merci. je passerai par la commande normale.

  • bien vu gzot. il est bien dans /var/spool/cron/crontabs/root.
    Je viens de tester le même événement talk toutes les heures et cela fonctionne.
    Tu n'as pas un autre process qui tourne en même temps sur le raspi et te bouffe de la ressource ?
  • Jette un oeil dans /root
    soit tu as des fichiers résultats du cron soit un truc dead.letter qui contient les messages du cron (c'est la première fois que je le vois)
    Attention sudo su avant d'aller fouiller dans /root sinon tu n'as aucun droit.
  • edited septembre 2015
    je ne pense pas que ce soit un process gourmand: voir ici

    jusqu'au 25/08 j'ai des fichiers contenant {"error":"invalid or missing token"}
    mais depuis plus rien. normal donc.

    si le talk marche correctement chez toi, je suis rassuré. je finirai bien par trouver quitte à tout réinstaller en désespoir de cause. ce n'est pas la mer à boire.

    pour le moment, je me heurte à un autre problème: un script sh qui s'éxécute correctement via la commande vocale et qui ne fait rien avec la gestion des évènements en version commande sur le serveur...

    je ferais mieux d'aller réparer mon vélosolex...
     
  • Slt verdosapiens,

    Est tu sur que Yana tourne correctement sur le client ?
    Coté serveur c'est le cron qui lance les taches.
    Coté client c'est le client qui lance les taches en l'activant et en paramétrant la fréquence de rafraichissement (j'ai mis 5 secondes pour mes tests mais on ne peut lancer une tache que toutes les minutes).

    Tu peux vérifier le bon fonctionnement du client en regardant les logs de ton serveur (pour ma part les logs apache).

    Si le client est stoppé il n'y a plus d'événement.

    Pour la ligne de commande tu peux ajouter en fin de commande ">> commande.log 2>&1" pour loguer l'exécution de la commande.
    Ex: "cd /un/dossier && ./lancer_ma_commande >> ~/commande.log 2>&1"
  • slt ptitkev

    chez moi, c'est pas aussi binaire!
    exemple: je paramètre un "talk" toutes les heures 30 et un autre toutes les heures 35. résultat ce matin:
    0.30
    0.35
    1.30
    1.35 jusque là ok!
    3.35 ah il en manque!
    4.30
    5.30 encore un trou (des fois c'est des .30 et d'autres fois c'est des .35)
    5.35 tiens, ça remarche..
    et depuis plus rien (il est 8heures)

    d'autres jours, pas grand chose le matin mais ça va mieux l'après-midi.

    donc, rien de rationnel. la dernière heure d'exécution stockée en table est synchrone avec les réceptions sur le mobile: quand le mobile ne reçoit rien, la date du dernier événement ne change pas non plus.

    alors que pendant ce temps là, la gestion des commandes sur le serveur (bash ou commande directe) fonctionne correctement et régulièrement.

    le dysfonctionnement ne touche que les "talk"!

    :-w
  • bonjour je n’arrive pas a crée un événement.
    exemple exécuter mai deux relais avec une commende vocal.
    je crée l’événement.
    quand je vais sur mon client, je vois que il y a une commende vocal qui apparais dans les commende disponible il y a juste Yana  mai le reste de la Command n’apparais pas.

    pouvez vous m'aider merci.
Sign In or Register to comment.