Com executar una tasca de Cron cada 10, 20 i 30 segons a Linux


Breu: el programador de tasques cron no admet la planificació de tasques per executar-se a intervals de segons. En aquest article, us mostrarem un truc senzill per ajudar-vos a executar una tasca de cron cada 30 segons o x segons a Linux.

Sou nou al programador de tasques cron i voleu executar una feina cada 30 segons? Malauradament, cron no ho permet. No podeu programar una tasca cron per executar-se cada x segons. Cron només admet un interval de temps d'almenys 60 segons (és a dir, 1 minut). Per executar un treball de cron cada 30 segons, heu d'utilitzar el truc que hem explicat a continuació.

En aquesta guia, també tractarem molts altres exemples per executar un treball o una ordre, o un script cada x segons. Però comencem per cobrir com executar un treball cron cada 30 segons a Linux.

Executeu Cron Job cada 30 segons a Linux

Per aconseguir la tasca anterior, creeu dues entrades al crontab. El primer treball executarà l'ordre de data després de cada minut (60 segons), després la segona entrada fa servir l'ordre de repòs per retardar un període de temps especificat (30 segons en aquest cas) i tornar a invocar l'ordre de data.

Heu d'afegir les entrades següents al crontab (taula cron) i obrir-lo per editar-lo amb l'ordre crontab següent (el senyalador -e permet l'edició):

# crontab -e

Afegiu les entrades cron següents al fitxer.

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

Ara, si comproveu el contingut del fitxer /tmp/date.log, hauríeu de veure que l'ordre date s'executa cada 30 segons. Podem utilitzar l'ordre cat per veure el fitxer i comprovar la columna d'hora per confirmar, de la manera següent:

$ cat /tmp/date.log

També podeu veure com s'actualitza el fitxer en temps real. Per fer-ho, utilitzeu l'ordre tail amb el senyalador -f.

$ tail -f /tmp/date.log

Executeu Cron Job cada 10 segons a Linux

Vegem més exemples. Aquest mostra com executar un treball cron cada 10 segons. El truc és simplement jugar amb el nombre de segons de l'ordre de son:

* * * * * 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

Una vegada més, si mirem el fitxer /tmp/date.log, s'hauria d'actualitzar cada 10 segons en funció de les entrades crontab anteriors:

$ tail -f  /tmp/date.log

Aquí teniu un altre exemple d'execució de l'ordre de data cada 15 segons:

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

Finalment, per executar un treball cron cada 20 segons, podeu tenir alguna cosa com això:

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

A més, aquí hi ha més articles perquè aprenguis la programació de treballs amb cron:

  • Com crear i gestionar tasques de Cron a Linux
  • Cron vs Anacron: com programar treballs amb Anacron a Linux

Ara ho saps! Us hem mostrat diferents exemples per executar un treball cron cada x segons a Linux. Llegiu les pàgines man de cron (executant les ordres man cron i man crontab) per obtenir més informació.

Si coneixeu consells o trucs útils per a les ordres de cron, compartiu-los als comentaris següents.