GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar Cronjobs más de una vez por minuto?

Aquí hay un script bash simple que he escrito que se puede usar con crontab para ejecutarse con más frecuencia de 1 minuto.

puede guardarlo como ~/bin/runEvery.shand y luego en crontab escribir algo como esto para ejecutar otherScript.sh cada 5 segundos:

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

Este es el guión:

#!/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

Esto tiene que hacerse a nivel de 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. Cómo manejar más de 10 parámetros en shell

  2. ¿Cómo configuro cron para ejecutar un archivo solo una vez en un momento específico?

  3. ¿Cómo ejecutar múltiples procesos Tor a la vez con diferentes direcciones IP de salida?

  4. ¿Por qué rand() repite números con mucha más frecuencia en Linux que en Mac?

  5. ¿Cómo configuro más de 10 dispositivos de loopback?

Cómo ejecutar Windows 95 en Linux

Cómo ejecutar comandos de archivo .sh todo a la vez en Linux

Cómo ejecutar un script Bash

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

cómo insertar una nueva línea si una línea tiene más de 60 caracteres

¿Cómo vincular el servidor MySQL a más de una dirección IP?