Vous voulez vraiment utiliser at
. Il est exactement fait dans ce but.
echo /usr/bin/the_command options | at now + 1 day
Cependant, si vous n'avez pas at
, ou si votre société d'hébergement n'y donne pas accès, vous pouvez créer une entrée cron à suppression automatique.
Malheureusement, cela supprimera toutes vos entrées cron. Cependant, si vous n'en avez qu'un, c'est très bien.
0 0 2 12 * crontab -r ; /home/adm/bin/the_command options
La commande crontab -r
supprime votre entrée crontab. Heureusement, le reste de la ligne de commande s'exécutera toujours.
ATTENTION :C'est dangereux ! Il supprime TOUTES les entrées cron. Si vous en avez plusieurs, cela les supprimera tous, pas seulement celui qui a la ligne "crontab -r" !
Vous voulez vraiment utiliser at
. Il est exactement fait dans ce but.
echo /usr/bin/the_command options | at now + 1 day
Cependant, si vous n'avez pas at
, ou si votre société d'hébergement n'y donne pas accès, vous pouvez faire en sorte qu'une tâche cron inclue du code qui s'assure qu'elle ne s'exécute qu'une seule fois.
Configurez une entrée cron avec une heure très précise :
0 0 2 12 * /home/adm/bin/the_command options
Ensuite, /home/adm/bin/the_command doit s'assurer qu'il ne s'exécute qu'une seule fois.
#! /bin/bash
COMMAND=/home/adm/bin/the_command
DONEYET="${COMMAND}.alreadyrun"
export PATH=/usr/bin:$PATH
if [[ -f $DONEYET ]]; then
exit 1
fi
touch "$DONEYET"
# Put the command you want to run exactly once here:
echo 'You will only get this once!' | mail -s 'Greetings!' [email protected]
Essayez ceci pour exécuter une commande le 30 mars 2011 à minuit :
0 0 30 3 ? 2011 /command
AVERTISSEMENT :Comme indiqué dans les commentaires, l'année La colonne n'est pas prise en charge dans les implémentations standard/par défaut de cron. Veuillez vous référer à la réponse TomOnTime ci-dessous pour savoir comment exécuter correctement un script à un moment précis dans le futur dans les implémentations standard de cron.