at
a une interface plus simple pour ce type de but si at
est installé, la machine est en marche atd
et l'utilisateur est autorisé à utiliser la commande.
Par exemple (vérifiez la syntaxe exacte avec man at
ou info at
),
at -f
fichier now + 53 minutes
ou
at -f
fichier now + 2 hours
exécutera les commandes dans le fichier spécifié en 53 minutes ou 2 heures, respectivement.
at
peut ensuite être réexécuté au début du travail planifié avec des unités de démarrage, de comptage et de temps appropriées (aléatoires ou non).
Éditer
Comme Arjan le souligne utilement ci-dessous, si vous l'utilisez pour une application autre qu'un jouet, vous devez penser à des problèmes tels que ce qui se passe
si la prochaine exécution commence avant la fin de la précédente (par exemple, le script est-il réentrant?) ou
si une exécution ne se termine pas correctement ou
si le cycle suivant ne démarre pas du tout ou à temps (par exemple, que se passe-t-il si la machine est éteinte au moment du démarrage du cycle suivant) et
sur la journalisation et le rapport des exécutions échouées ou réussies.
file
contient la prochaineat
exécution, n'est -ce pas?at
commande-est la première ligne et si le script s'exécute pendant une longue période (ou si les intervalles sont courts), alors méfiez-vous de l'exécution simultanée de plusieurs instances. Mais quand seat
trouve à la dernière ligne du script, alors évidemment aucune nouvelle programmation ne sera effectuée si le script échoue. De plus, l'exécution du script à partir de la ligne de commande le fera (re) planifier lui-même (et: plusieurs planifications pourraient alors exister simultanément). Etcron
prend en charge l'envoi de toute erreur (ou: sortie en général) par e-mail; Je ne sais pas siat
a aussi quelque chose comme ça?J'ai de nombreuses commandes dans / etc / crontab faisant toutes sortes de choses et certaines ont besoin de précision en quelques secondes. Maintenant, cron peut avoir une résolution plus fine tout en gardant tous les temps visibles et centralisés.
Cet exemple obtient et analyse une page Web entre 10 et 50 secondes avant toutes les 5 minutes:
Il n'a pas besoin d'avoir une heure exacte car les données sont lentes, mais cela aide à maintenir le temps d'exécution des nœuds munin aussi bas que possible en évitant d'attendre les pages Web. (Le plugin met en cache la page pendant 30 minutes pour réduire les accès inutiles, mais doit mettre à jour une base de données toutes les 5 minutes).
Notez que \% - cron remplace% par "\ n" - utile pour garder le texte du courrier sur une seule ligne.
la source
En interne
cron
, je ne pense pas qu'une telle fonctionnalité existe. Je pense que la meilleure solution serait de placer votre commande dans un script shell, de placer unsleep
intervalle aléatoire en haut du script et d'utiliser la$RANDOM
variable. Exécutez ensuite le script une fois par jour dans une tâche cron régulière.la source
Cela dépendra du type d'intervalle que vous recherchez. mais supposons que vous souhaitiez que le script s'exécute de manière aléatoire avec une probabilité de 1h30 (une fois toutes les 30 minutes)
Construisez votre script cron pour une périodicité de, disons, 10 minutes. Il se déclenchera 3 fois toutes les 30 minutes.
Dans le script, utilisez rand comme condition pour une instruction if . Vous voulez que rand renvoie un nombre compris entre 0 et 2. S'il vaut 0, exécutez le contenu de l'instruction if.
Essentiellement, votre script se déclenche toujours à un intervalle défini. Mais n'exécutera que la commande qui vous intéresse au hasard. Votre fournisseur de services vous en remerciera.
la source