GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter des Cronjobs plus d'une fois par minute ?

Voici un script bash simple que j'ai écrit et qui peut être utilisé avec crontab pour s'exécuter plus fréquemment qu'une minute.

vous pouvez l'enregistrer sous ~/bin/runEvery.shand puis dans crontab écrire quelque chose comme ceci pour exécuter otherScript.sh toutes les 5 secondes :

*/1 * * * * ~/bin/runEvery.sh 5 otherScript.sh

Voici le script :

#!/bin/bash

inputPeriod=$1
runCommand=$2
RUN_TIME=60
error="no"

if [ 'x'"$runCommand" != 'x' ]
then
    if [ 'x'$inputPeriod != 'x' ]
    then
        loops=$(( $RUN_TIME / $inputPeriod ))
        if [ $loops -eq 0 ]
        then
            loops=1
        fi

        for i in $(eval echo {1..$loops})
        do
            $runCommand
            sleep $inputPeriod
        done

    else
        error="yes"
    fi
else
    error="yes"
fi

if [ $error = "yes" ]
then
    echo "runEvery - runs a command every X seconds for a minute"
    echo "Usage: runEvery.sh <# in seconds < 60> <command to run>"
fi

Cela doit être fait au niveau du script.

// cron.php running every 10 seconds

<?php

$expireTime = time() + 60;
while (time() < $expireTime) {
     // my php logic here

     sleep(10); 
     // sleep for 10 seconds
     // you may change the sleep time to change frequency
}

Linux
  1. Comment diviser le terminal en plusieurs "vues" ?

  2. Comment gérer plus de 10 paramètres dans le shell

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

  4. Comment exécuter plusieurs processus Tor à la fois avec différentes adresses IP de sortie ?

  5. Pourquoi rand() répète-t-il beaucoup plus souvent les nombres sous Linux que sur Mac ?

Comment exécuter Windows 95 sous Linux

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

Comment exécuter un script bash

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Comment puis-je configurer plus de 10 périphériques de bouclage ?

Puis-je exécuter une tâche cron plus fréquemment que toutes les minutes ?