Hur man kör ett Cron-jobb var 10:e, 20:e och 30:e sekund i Linux


Kort: Cron jobbschemaläggaren stöder inte schemaläggning av jobb som körs med ett intervall på sekunder. I den här artikeln kommer vi att visa dig ett enkelt knep som hjälper dig att köra ett cron-jobb var 30:e sekund eller x sekund i Linux.

Är du ny på cron jobbschemaläggaren och vill köra ett jobb var 30:e sekund? Tyvärr tillåter inte cron det. Du kan inte schemalägga ett cron-jobb att köra var x sekund. Cron stöder endast ett tidsintervall på minst 60 sekunder (dvs. 1 minut). För att köra ett cron-jobb var 30:e sekund måste du använda tricket som vi har förklarat nedan.

I den här guiden kommer vi också att täcka många andra exempel för att köra ett jobb eller kommando, eller skript var x sekund. Men låt oss börja med att täcka hur man kör ett cron-jobb var 30:e sekund i Linux.

Kör Cron Job var 30:e sekund i Linux

För att uppnå ovanstående uppgift, skapa två poster i crontab. Det första jobbet kör datumkommandot efter varje minut (60 sekunder), sedan använder den andra posten sovkommandot för att fördröja en viss tid (30 sekunder i detta fall) och anropa datumkommandot igen.

Du måste lägga till följande poster i crontab (cron-tabell) och öppna den för redigering med följande crontab-kommando (flaggan -e möjliggör redigering):

# crontab -e

Lägg till följande cron-poster till filen.

* * * * * date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log 

Om du nu kontrollerar innehållet i filen /tmp/date.log bör du se att kommandot date körs var 30:e sekund. Vi kan använda kommandot cat för att visa filen och kontrollera tidskolumnen för att bekräfta, enligt följande:

$ cat /tmp/date.log

Du kan också se filen uppdateras i realtid. För att göra det, använd tail-kommandot med flaggan -f.

$ tail -f /tmp/date.log

Kör Cron Job var 10:e sekund i Linux

Låt oss titta på fler exempel. Den här visar hur man kör ett cron-jobb var tionde sekund. Tricket är att helt enkelt leka med sömnkommandot antal sekunder:

* * * * * date>> /tmp/date.log
* * * * * sleep 10; date>> /tmp/date.log
* * * * * sleep 20; date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log
* * * * * sleep 40; date>> /tmp/date.log
* * * * * sleep 50; date>> /tmp/date.log

Återigen om vi tittar på filen /tmp/date.log, bör den uppdateras var tionde sekund baserat på ovanstående crontab-poster:

$ tail -f  /tmp/date.log

Här är ett annat exempel på att utföra datumkommandot efter var 15:e sekund:

* * * * * date>> /tmp/date.log
* * * * * sleep 15; date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log
* * * * * sleep 45; date>> /tmp/date.log

Slutligen, för att köra ett cron-jobb var 20:e sekund, kan du ha något så här:

* * * * * date>> /tmp/date.log
* * * * * sleep 20; date>> /tmp/date.log
* * * * * sleep 40; date>> /tmp/date.log

Här är också fler artiklar för dig att lära dig schemaläggning av jobb med cron:

  • Hur man skapar och hanterar Cron-jobb på Linux
  • Cron vs Anacron: Hur man schemalägger jobb med Anacron på Linux

Nu vet du det! Vi har visat dig olika exempel för att köra ett cron-jobb var x sekund i Linux. Läs man-sidorna för cron (genom att köra kommandona man cron och man crontab) för mer information.

Om du känner till några användbara cron-kommandotips eller tricks, vänligen dela dem i kommentarerna nedan.