GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer cron pour exécuter un fichier une seule fois à un moment précis ?

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.


Linux
  1. Comment définir ou modifier le fuseau horaire sous Linux

  2. Comment se souvenir des options de commande ? ?

  3. Comment exécuter une application pendant une durée définie dans Shell ?

  4. Comment définir ou modifier le fuseau horaire sur Debain 11

  5. Comment planifier l'exécution de tcpdump pendant une période de temps spécifique ?

Comment configurer une tâche Cron sous Linux

Comment exécuter des tâches Cron toutes les 5, 10 ou 15 minutes

Comment exécuter une commande pendant une durée spécifique sous Linux

Comment exécuter les commandes de fichier .sh tout en une fois sous Linux

Comment définir la date et l'heure sous Linux

Comment configurer et exécuter un Cron dans cPanel