Wizigje de Linux Crontab File To Schedule Jobs op te bewurkjen

Ynlieding

Der is in daemon yn Linux dy't cron neamd wurdt dy't brûkt wurdt om prosessen te begjinnen yn reguliere yntervallen.

De manier dat dit dwaan is om beskate mappen op jo systeem te kontrolearjen foar skripts om te fieren. Bygelyks is in map mei /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly en /etc/cron.monthly. Der is ek in triem neamd / etc / crontab.

Standert kinne jo ienfâldich de skripts yn 'e relevante mappen pleatse om se regelmjittich yntervallen te leven.

Bygelyks iepenje in terminalfinster (troch op CTRL, ALT en T te drukken en de folgjende ls kommando te fieren :

ls / etc / cron *

Jo sille de list fan programma 's of skripts sjen dy't tagelyk, deistich, wykein en moanne útfiere.

De problemen mei dizze mappen binne dat se in bytsje fag binne. Bygelyks deistich betsjuttet dat it skript ienris deis wurket, mar jo hawwe gjin kontrôle oer de tiid dat it skript yn dizze dei útfiert.

Dat is wêr't de crontab-bestân yn komt.

Mei it bewurkjen fan de crontab-triem kinne jo in skript of programma krije om te finnen op 'e krekte datum en tiid dat jo wolle dat it útfiert. Bygelyks, miskien wol jo jo bestannen elke nacht op 6 pm opslaan.

Permissions

It kommando krontab fereasket dat in brûker permissions is om in crontab-bestân te bewurkjen. Der binne mei-inoar twa bestannen dy't brûkt wurde foar it behearen fan crontab-tagongsrjochten:

As de triem /etc/cron.allow bestiet dan moat de brûker de crontab-bestân oanpasse moatte yn dat bestân wêze. As de cron.allow bestiet net bestiet, mar der is in triem /etc/cron.deny dan kin de brûker net yn dizze bestân bestiet.

As beide bestannen bestiet dan bewarje de /etc/cron.allow de triem /etc/cron.deny.

As der gjin bestân bestiet dan is it hinget fan 'e systemkonfiguraasje oft in brûker de crontab oanpasse kin.

De root-brûker kin altyd de crontab-bestân bewurkje. Jo kinne it su kommando brûke om te wikseljen nei de root brûker of it sudo kommando om it kommando crontab út te fieren.

De Crontab-bestân bewurkje

Elke brûker dy't tagong hat tagong kin in eigen crontab bestân meitsje. It kommando cron sjocht yn 't gefal nei it bestean fan meardere crontab-bestannen en rint allinich troch.

Om te kontrolearjen oft jo in crontab-bestân hawwe, kinne jo it folgjende kommando útfiere:

crontab -l

As jo ​​gjin crontab-triem hawwe, dan sil it berjocht "gjin crontab foar " ferskine, oars sil jo crontab-bestân werjûn wurde (dizze funksjonaliteit ferskilt fan systeem nei systeem, somtiden is it hielendal neat te sjen en oare kearen toant it " Dit bestân net bewurkje ").

Om in crontab-bestân te meitsjen of te bewurkjen, fiere it folgjende kommando:

crontab -e

Standert as jo gjin standert bewurker binne, dan wurde jo frege om in standertredakteur te selektearjen. Persoanlik wol ik graach brûke as it frijwat streekrjocht nei gebrûk is en it rint fan it terminal.

De triem dat iepenet hat in soad ynformaasje, mar it toetseboerd is it foarbyld just foardat it ein fan 'e kommentaar is (kommentaren wurde oanjûn mei linen begjin mei #).

# mh dom mon dow kommando

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

Der binne 6 stikken ynformaasje te passen op elke line fan de crontab-bestân:

Foar elke item (útsein foar it kommando) kinne jo in karfak karakter oanjaan. Sjoch op it folgjende foarbyld crontab line:

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

Wat de boppesteande kommando seit, is by 30 minuten, 18 oere en elke dei, moanne en dei fan 'e wike, in kommando útfiere om te rinnen en te tarjen de thússide foar de map / var / backups.

Om in kommando te krijen om elke oere nei 30 minuten te rinnen, kin ik it folgjende kommando útfiere:

30 * * * * kommando

Om in kommando te krijen om elke minuut 6 oere hinne te rinnen, kin ik it folgjende kommando útfiere:

* 18 * * * kommando

Jo moatte dêrom foarsichtich wêze om jo crontab kommando's op te stellen.

Bygelyks:

* * * 1 * kommando

It boppesteande kommando soe elke minuut fan elke oere fan elke dei fan elke wike yn jannewaris útfiere. Ik twifelje dat is wat jo wolle.

Om in kommando te begjinnen om 5 oere op 1 jannewaris moatte jo op it folgjende kommando nei de crontab bestân:

0 5 1 1 * kommando

Hoe kinne jo in Crontab-bestân fuortsmite

Meast fan 'e tiid wolle jo de crontab-bestân net fuortsmite, mar jo kinne guon rigen fan' e crontab-bestân fuortsmite.

Wannear't jo de crontab-bestân fan jo brûker fuortsmite wolle, brûke jo it folgjende kommando:

crontab -r

In feilige manier om dit te dwaan is it folgjende kommando te fieren:

crontab -i

Dit freget de fraach "binne jo wis?" foardat de krontab bestiet.