Job Scheduling Hvert Sekund

/ 2 minutters læsning

Cron Sidekick til et infinite loop script ∞ Hvis det skal gå hurtigere.

🎛️ Script, der kører hvert sekund, og dens Cron-sidekick

Okay, så du er en Sonic, der ikke kan vente et helt minut på, at cron kører dit script? 😅🤣 Du har brug for, at det udføres hvert sekund! Desværre blev cron ikke bygget til at understøtte opgaver på sekund-niveau, men jeg har en løsning til jer hurtigløbere derude.

🎳 Scriptet, der looper

Først skal du lave et script, der kører en uendelig løkke med en sleep-kommando i ét sekund. Her er et simpelt eksempel i bash:

#!/bin/bash
while true; do
    echo "Dette kører hvert sekund" >> /sti/til/logfil.log
    sleep 1
done

Gør dit script eksekverbart:

chmod +x dit-script.sh

🏃‍♂️ Kør scriptet

Du kan køre dette script i baggrunden sådan her:

./dit-script.sh &

Eller du kan bruge nohup til at holde scriptet kørende, selv efter du logger ud:

nohup ./dit-script.sh &

🛠️ Crons sidekick-rolle

Selvom cron ikke kan køre et script hvert sekund, kan det sikre, at dit “hvert-sekund”-script kører, som det skal. Du kan lave et andet script, der tjekker, om det første script kører, og starter det, hvis det ikke gør.

Her er et eksempel:

#!/bin/bash
if pgrep -f "dit-script.sh" > /dev/null
then
    echo "Scriptet kører" >> /sti/til/status.log
else
    nohup /sti/til/dit-script.sh &
    echo "Scriptet kørte ikke. Starter det nu." >> /sti/til/status.log
fi

📆 Planlægning med Cron

Nu kan du planlægge dette tjek-script med cron til at køre hvert minut:

* * * * * /sti/til/dit-tjek-script.sh

Tadaa! Selvom cron måske ikke kan køre opgaver hvert sekund, kan det helt sikkert fungere som en trofast sidekick for at sikre, at dit speedster-script kører, som det skal. 🤓