Com crear i afegir treballs Cron a Linux

Programació de tasques periòdiques mitjançant Cron a Linux

cron és un programa Linux que s'utilitza per programar una ordre o un script per executar-se en un moment posterior. També es pot utilitzar per programar ordres i scripts en execució periòdica. Els programes programats amb cron s'anomenen habitualment com Cron Jobs. El seu ús principal és per a tasques d'administració del sistema, com ara còpies de seguretat periòdiques, actualitzacions periòdiques de programari i altres tasques de manteniment similars.

Introducció

cron s'executa com a dimoni a Linux, és a dir, com a procés en segon pla. Permet als usuaris programar treballs directament amb l'ordre crontab, que obre un fitxer de configuració anomenat Cron File en un editor. Es creen fitxers Cron separats per a cada usuari.

Creació d'un fitxer Cron i sintaxi bàsica

El crontab l'ordre es pot executar amb -e marca per editar un fitxer Cron existent. Si el fitxer encara no existeix, es crearà. Si l'usuari crida a l'ordre per primera vegada i si hi ha diversos editors de fitxers instal·lats al sistema Linux, l'ordre demanarà a l'usuari que escolli un editor predeterminat d'una llista d'editors.

Després de triar l'editor, es crearà i obrirà un fitxer cron per a l'usuari. Ara podeu especificar treballs al fitxer.

La sintaxi general per especificar un treball Cron és:

Bàsicament, el s'executarà al "minut" especificat (0-59), "hora" (0-23), "dia del mes" (1-31), mes (1-12), dia de la setmana, (0-7, Per diumenge, es pot utilitzar 0 o 7) al Cron Job. Per simplificar, posem un exemple:

1 2 3 4 5 echo "Hola"

Això vol dir l'ordre echo "Hola" funcionarà cada cinquè dia de la setmana (divendres) i cada 3è dia del mes, cada 4t mes de l'any (abril), a les 02:01 (2a hora primer minut).

Si s'ha d'executar la mateixa ordre cada dia a les 02:01, la sintaxi serà així:

1 2 * * * echo "Hola"

El * significa "sempre" o "per a tots", p. ex. per a tots els mesos, per a tots els dies de la setmana, etc.

L'operador de comandament (,) es pot utilitzar per introduir una llista de valors quan s'ha de repetir la tasca. Per exemple:

0 2,3,4 * * * echo "Hola"

Aquest s'executarà el programa a les 2, 3 i 4 de la matinada, tots els dies.

De la mateixa manera, un guionet (-) operador es pot utilitzar per especificar un interval per al qual es repetirà la tasca. Per exemple:

0-20 2 * * * echo "Hola"

Això executarà el programa a les 02:00, 02:01, 02:02, i així successivament fins a les 02:20.

Finalment, tenim la barra ( / ) operador. Aquest operador s'utilitza per especificar un valor d'interval segons el qual es repetirà la tasca. Per exemple. */15 al camp minuts significa que la tasca s'ha de repetir cada 15 minuts. 2-10/2 al camp hores especifica que la tasca es repetirà entre les 2 i les 10 del matí després de cada interval de 2 hores (2:00, 4:00, 6:00, 8:00, 10:00).

*/15 2-10/2 * * * echo "Hola"

Després d'haver fet l'entrada al fitxer Cron, deseu el fitxer i sortiu de l'editor.

Hauries de veure a "instal·lació de crontab nou" missatge al terminal després de desar i sortir del fitxer crontab.

Macros

Algunes macros estan predefinides a Cron que especifiquen alguns intervals de temps habituals, com ara cada hora, cada dia, cada mes, etc.

Per executar una tasca cada dia a l'inici del dia, és a dir, a les 00:00, utilitzeu la macro @diari. Això és equivalent a 0 0 * * *.

Podeu posar-ho al fitxer Cron de la mateixa manera que s'ha descrit abans.

D'una manera similar, es poden utilitzar les altres macros, és a dir. @hora (Minut 0 de cada hora), @mensual (00:00 del primer dia del mes), @setmanal (00:00 del primer dia de la setmana, @anualment(00:00 del primer de gener de cada any), @reiniciar (a cada inici de l'ordinador).

Conclusió

En aquest article, hem après com afegir Cron Jobs per a una execució regular a Linux. L'ús adequat de Cron Jobs és útil fins i tot per a les tasques manuals més molestes a les quals s'enfronta l'usuari, per exemple. supressió periòdica de registres antics, arxivar tot tipus de dades fredes (dades a les quals s'accedeix rarament), etc.