Planifier une tâche sur le Pi (ex: redémarrage et mise à l’heure)

Planifier une tâche sur le Pi (ex: redémarrage et mise à l’heure)

20 mai 2016 0 Par Benoit

Planification d’une tâche. (redémarrage)

Pour commencer, connectez-vous à votre Raspberry-Pi en SSH. Une fois connectée, lancer la commande ci-dessous qui va nous permet d’éditer le fichier contenant la liste des tâches.

sudo nano /etc/crontab -e

Les lignes se décomposent comme suit :

mm hh jj MMM JJJ tâche utilisateur commande

Soit la définition suivante :

  • mm : pour les minutes (de 0 à 59).
  • hh : pour l’heure (de 0 à 23).
  • jj : pour le numéro du jour du mois (de 1 à 31).
  • MMM : pour le nom du mois (jan, feb, …)/le numéro du mois (de 1 à 12).
  • JJJ : pour le nom du jour/le numéro du jour dans la semaine. (0=Dimanche, 1=Lundi, …)

Pour spécifier que la tâche s’applique tous les jours, on utilisera le caractère étoile (*).

Par exemple si l’on souhaite redémarrer notre machine tous les jours à 2 heures 30, il suffit d’ajouter la ligne suivante :

30 2 * * * root reboot

Enfin pour valider la commande quitter l’application en cliquant simultanément sur « CTRL+X » et valider.

Pour tout savoir de la commande et des options possibles Wikipedia : Cron

Source

Planifier une mise à l’heure.

J’ai remarqué que mon Raspberry Pi se désynchronise très rapidement, de l’ordre de plusieurs dizaines de secondes par jour. C’est énorme !

Dans le cadre de mon projet de station météo connectée, je vais collecter des données des capteurs. Seulement si mon Raspberry n’est pas à l’heure, les relevés seront associés à un mauvais index de temps…

 Pourquoi ?

Mais comment se fait-il que le Raspberry Pi se désynchronise si vite ?
La réponse est simple, je l’ai trouvée sur Wikipédia :

« Le Raspberry Pi ne comprend pas d‘horloge matérielle, dit composant HTR (Le terme anglais est RTC : Real Time Clock). La fondation justifie ce choix par le coût excessif du composant par rapport au budget initial très serré. La fondation suggère d’utiliser par exemple un composant GPS, qui contient une HTR très précise. Ce composant peut être branché via la prise GPIO. Il est aussi possible de synchroniser le temps du système grâce au protocole de réseau NTP, ce qui implique de se connecter via un réseau à un service NTP qui fonctionne soit sur un ordinateur sur Internet, soit sur un ordinateur d’un réseau local, ce dernier ordinateur devant être capable de se synchroniser avec une référence NTP sur Internet »

 Fin du mystère ! Tout est de suite plus clair…

La Solution → planifier une tâche de mise à l’heure

Afin de palier à ce petit problème, je vais simplement synchroniser mon Raspberry Pi avec un serveur de temps de référence sur le net via le protocole NTP :
  • Installer l’utilitaire ntpdate :
sudo apt-get install ntpdate
  • Choisir un serveur de temps de référence de votre choix, par exemple « pool.ntp.org« 
  • Ajouter dans la crontab la commande de mise à jour:
    • Editer la crontab en tant qu’utilisateur root :
sudo nano /etc/crontab -e
    • Ajouter la ligne suivante à la fin du fichier pour que la commande soit exécutée tous les jours à 1h00 :
0 1 * * * root ntpdate -u pool.ntp.org
    • Enregistrer le fichier puis quitter

Source