Solution 1 :
J'ai eu une tâche similaire la semaine dernière. Mes solutions consistaient à multiplier les entrées cron standard à la fréquence souhaitée. Ma crontab ressemble à :
* * * * * /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php
Si vous voulez vérifier les résultats de myscript.php, par ex. pour le débogage, ajoutez simplement
&> /tmp/myscipt.log
à chaque ligne dans la crontab ci-dessus. Ensuite, stderr et stdout sont redirigés vers le fichier journal.
Solution 2 :
Vous ne pouvez pas programmer le travail toutes les dix secondes, mais je suppose que vous pouvez programmer le travail pour qu'il s'exécute toutes les minutes et dorme en boucle par intervalles de 10 secondes. Cela serait basé sur le fait que votre commande soit terminée avant l'expiration de l'intervalle de dix secondes, ou vous obtiendrez un chevauchement lors de l'exécution de la commande suivante. Cela ressemble à une solution précaire, mais si vous pouvez garantir une exécution très courte de la commande principale du script, cela fonctionnera.
#!/bin/bash
i=0
while [ $i -lt 6 ]; do
/run/your/command &
sleep 10
i=$(( i + 1 ))
done