server.scheduling
Avec cron
* * * * * command to be executed
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of week (0 - 7) (0 or 7 are Sunday, or use names)
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)
Les commandes
sudo crontab -e # pour éditer les tâches cron
sudo crontab -l # pour lister les tâches
sudo crontab -r # ACHTUNG ! ça supprime toutes les tâches
Exemples
Exemple de base, on lance une tâche toutes les minutes
* * * * * . /home/toto/scripts/the_script.sh
Une petite tâche au reboot ?
@reboot . /home/toto/scripts/startup_task.sh
Avec atd
sudo apt install at
at 12:24 11.09.20 -f /path/to/script.sh
ou, pour envoyer dans deux mois
at now + 8 weeks -f /path/to/script.sh
Pour voir les tâches
atq
# résultat
6 Fri Nov 6 12:39:00 2020 a debian
5 Fri Sep 11 12:40:00 2020 a debian
Pour supprimer une tâche
atrm 6 # la commande atrm suivi du numéro de la tâche, obtenu avec atq
atq
# résultat
5 Fri Sep 11 12:40:00 2020 a debian
Lancer une notification dans 13 minutes
echo "notify-send 'ok' 'la glace coco'" > /tmp/quick.sh && at now + 13 minutes -f /tmp/quick.sh