Par défaut, cron ne peut pas planifier l'exécution des travaux en quelques secondes. Le plus que vous pouvez faire est de l'exécuter chaque minute.
1) exécuter par un seul Cron
Pour exécuter par Cron, toutes les 30 secondes, vous pouvez créer une seule entrée cron comme ceci:
* * * * * /bin/bash -l -c "/path/to/script.sh; sleep 30 ; /path/to/script.sh"
2) l'exécuter en utilisant regarder
Exécutez le script en utilisant la montre ((vous pouvez démarrer un écran ou tmux) ou même en arrière-plan)
watch --interval 30 /path/to/script.sh
3) utiliser une boucle while comme ceci:
#!/bin/env bash
while [ true ]; do
sleep 30
/path/to/script.sh
done
Gardez à l'esprit que cette option est manque pas la preuve car tout dépend de ce que exactement votre Cron fait et combien de temps il faut pour le travail a été exécuté par cron à compléter. Avec l'exemple ci-dessus (3), si le cron prend 25 secondes pour s'exécuter, alors votre script sera retardé et ainsi de suite. Même à l'option (1), ainsi
4) en utilisant un Cron alternatif au Cron linux par défaut (utilisez fcron)
5) Des questions similaires ont déjà été posées sur SO donc vous pourriez voulez jeter un oeil à ceci: How to run Cronjobs more often than once per minute?
Que diriez-vous d'un travail de cron si chaque minute est bonne. Sinon, deux emplois cron, l'un avec «sommeil 30» avant la tâche principale? – sauerburger
@sauerburger, je pensais à ce sujet, mais il me semble un peu maladroit. N'y a-t-il pas une meilleure façon plus canonique de le faire? – IHaveAQuestion