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

Ressources