Installation de Cron

Cron est installé par défaut sur Raspbian 8 Jessie, mais il est possible d’obtenir une version graphique en installant gnome-schedule :

sudo apt-get install gnome-schedule

Utiliser Cron

Afin de planifier des taches, il faut editer la cron table :

crontab -e

Si vous souhaitez que Cron execute le script /home/pi/backup.sh toutes les minutes, on écrira à la fin du fichier :

#execution du backup de la base historique toutes les 5 minutes

*/5 * * * *  /home/pi/backup.sh >>/home/pi/backupLog/backup.log 2>&1

ou bien encore toutes les minutes ( sans append ) :

#execution du backup de la base historique toutes les minutes

* * * * *  /home/pi/backup.sh >/home/pi/backupLog/backup.log 

Remarques :

  • La deuxième partie permet d'enregistrer dans un fichier l'historique des sauvegardes. Si vous avez mis en place un service de mail sur votre Raspberry, cette option est necessaire, car Cron va essayer de vous envoyer les logs par mail et "par defaut". Voir -> https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=66165
  • Veiller à ce que le script soit executable : sudo chmod +x backup.sh
  • Si les synchronisations sont trop peu espacées dans le temps, un nouveau job peut démarrer avant que l'ancien soit terminé,et cela peut provoquer des conflits et un comportement hasardeux de cron. Une solution est de conditionner le lancement de l'application associée au script. Si cette derniere est déja en marche, l'application ne se lancera pas. Prenons l'exemple d'un backup avec rsync, du dossier Documents d'un Raspberry PI vers un dosser PI/backup d'un serveur distant. backup.sh s'écrira :
    pgrep -c rsync || rsync -ssh -avz /home/pi/Documents user@IP.ADRESS:"PI/backup/"
  • Pour que la connexion soit automatique sans que la rpi redemande le mot de passe, il est essentiel d'utiliser les clefs SSH
    ssh-keygen -t dsa
    ssh-copy-id nom@monserveur

Sources :