GNU/Linux >> Znalost Linux >  >> Linux

Jak spouštět Cronjobs častěji než jednou za minutu?

Zde je jednoduchý bash skript, který jsem napsal a který lze použít s crontabem, aby se spouštěl častěji než 1 minuta.

můžete jej uložit jako ~/bin/runEvery.shand, pak do crontab napište něco takového, abyste spouštěli otherScript.sh každých 5 sekund:

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

Toto je skript:

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

To musí být provedeno na úrovni skriptu.

// 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. Provést příkaz jednou na řádku se vstupem z potrubí?

  2. Jak rozdělit terminál na více než jeden „pohled“?

  3. Jak nastavím cron, aby spouštěl soubor pouze jednou v určitou dobu?

  1. Jak spustit více procesů Tor najednou s různými výstupními IP?

  2. Proč rand() opakuje čísla mnohem častěji na Linuxu než na Macu?

  3. Mohu spouštět úlohu cronu častěji než každou minutu?

  1. Jak zacházet s více než 10 parametry v shellu

  2. Jak spustit sbt jako démona?

  3. Jak spustit příkaz, jakmile se scrub ZFS *dokončí*?