Com editar el fitxer Linux Crontab per programar els treballs

Introducció

Hi ha un dimoni a Linux anomenat cron que s'utilitza per executar processos a intervals regulars.

La forma en què ho fa és comprovar certes carpetes del vostre sistema per executar les seqüències d'ordres. Per exemple, hi ha una carpeta anomenada /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly. També hi ha un fitxer anomenat / etc / crontab.

De manera predeterminada, simplement podeu posar scripts a les carpetes corresponents per tal que s'executin de forma regular.

Per exemple, obriu una finestra de terminal (prement CTRL, ALT i T) i executeu l' ordre ls següent:

ls / etc / cron *

Veureu la llista de programes o scripts que s'executen cada hora, diàriament, setmanalment i mensualment.

El problema amb aquestes carpetes és que són una mica vagues. Per exemple, diàriament significa que el script s'executarà un cop al dia, però no té cap control sobre el temps que l'script s'executarà durant aquest dia.

Aquí és on entra el fitxer crontab.

Si editeu el fitxer crontab, podeu obtenir un script o programa per executar-se a la data exacta i l'hora que voleu que s'executi. Per exemple, potser vulgueu fer còpia de seguretat dels vostres fitxers cada nit a les 6 de la tarda.

Permisos

L'ordre crontab requereix que un usuari tingui permisos per editar un fitxer crontab. Hi ha bàsicament dos fitxers que s'utilitzen per gestionar els permisos de crontab:

Si el fitxer /etc/cron.allow existeix, l'usuari que vulgui editar el fitxer crontab ha d'estar en aquest fitxer. Si el fitxer cron.allow no existeix però hi ha un fitxer /etc/cron.deny, l'usuari no ha d'existir en aquest fitxer.

Si els dos fitxers existeixen, el /etc/cron.allow anul·larà el fitxer /etc/cron.deny.

Si no existeix cap fitxer, depèn de la configuració del sistema si un usuari pot editar la crontab.

L'usuari arrel sempre pot editar el fitxer crontab. Podeu utilitzar la seva ordre per canviar a l'usuari arrel o l'ordre sudo per executar l'ordre crontab.

S'està editant el fitxer Crontab

Cada usuari que té permisos pot crear el seu propi fitxer crontab. L'ordre cron bàsicament busca l'existència de múltiples fitxers crontab i s'executa a través de tots.

Per comprovar si teniu un fitxer crontab, executeu el següent comandament:

crontab -l

Si no teniu un fitxer crontab, apareixerà el missatge "no hi ha cap crontab per a

Per crear o editar un fitxer crontab, executeu el següent comandament:

crontab -e

Per defecte, si no hi ha cap editor predeterminat seleccionat, se us demanarà que seleccioneu un editor predeterminat per utilitzar-lo. Personalment, m'agrada utilitzar nano ja que és bastant senzill d'utilitzar i s'executa des del terminal.

El fitxer que s'obre té molta informació, però la part clau és l'exemple just abans del final de la secció de comentaris (els comentaris es denoten per línies que comencen per #).

# mh dom mon dow comanda

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Hi ha 6 peces d'informació per adaptar-se a cada línia del fitxer crontab:

Per a cada element (excepte l'ordre), podeu especificar un caràcter comodí. Mireu la següent línia de crontab d'exemple:

30 18 * * * tar-zcf /var/backups/home.tgz / home /

El que diu l'ordre anterior és a 30 minuts, 18 hores i qualsevol dia, mes i dia de la setmana, executeu una ordre per comprimir i tancar el directori d'inici a la carpeta / var / backups.

Per obtenir una ordre per executar a 30 minuts passades cada hora, puc executar el següent comandament:

30 * * * * comanda

Per obtenir una ordre per executar cada minut després de les 6 de la tarda, puc executar el següent comandament:

* 18 * * * comanda

Per tant, cal tenir cura amb la configuració de les ordres de crontab.

Per exemple:

* * * 1 * comanda

L'ordre anterior s'executaria cada minut de cada hora de cada dia de cada setmana al gener. Dubto que això sigui el que vulguis.

Per executar un comandament a les 5 del matí de l'1 de gener, feu el següent comandament al fitxer crontab:

0 5 1 1 * comanda

Com treure un fitxer de crontab

La majoria de les vegades no voleu eliminar el fitxer crontab, però és possible que vulgueu eliminar algunes files del fitxer crontab.

Tanmateix, si voleu eliminar el fitxer crontab del vostre usuari, executeu el següent comandament:

crontab -r

Una forma més segura de fer-ho és executar el següent comandament:

crontab -i

Això fa la pregunta "estàs segur?" abans d'eliminar el fitxer crontab.