GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man Cronjobs öfter als einmal pro Minute ausführen?

Hier ist ein einfaches Bash-Skript, das ich geschrieben habe und das mit crontab verwendet werden kann, um häufiger als 1 Minute ausgeführt zu werden.

Sie können es als ~/bin/runEvery.shand speichern und dann in crontab so etwas schreiben, um otherScript.sh alle 5 Sekunden auszuführen:

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

Dies ist das 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

Dies muss auf Skriptebene erfolgen.

// 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. Wie führe ich sbt als Daemon aus?

  2. Warum wiederholt rand() Zahlen viel öfter unter Linux als auf Mac?

  3. Warum läuft mein cron.d-Job nicht pro Minute?

  4. Wie richte ich mehr als 10 Loopback-Geräte ein?

  5. wie man eine neue Zeile einfügt, wenn eine Zeile mehr als 60 Zeichen hat

So führen Sie Windows 95 unter Linux aus

So führen Sie .sh-Dateibefehle auf einmal in Linux aus

So führen Sie ein Bash-Skript aus

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Kann ich einen Cronjob häufiger als jede Minute ausführen?

Wie binde ich den MySQL-Server an mehr als eine IP-Adresse?