Cron & crontab, erkläert

Lucaine publizéiert virun enger Zäitchen exzellent Tutorial op Cron a Crontab dat fannen ech derwäert ze deelen. Cron ass eng Aart gläichwäerteg mat geplangten Aufgaben am Windows, nëmmen datt et vum Terminal gehandhabt gëtt. Déi, déi léiwer eng visuell Interface hunn fir datselwecht Zil z'erreechen, kënnen dat gesinn aner Element.

Wat ass Cron?

Den Numm Cron kënnt vum griichesche Chronos wat "Zäit" heescht. Am Unix Betriebssystem ass Cron e reegelméissegen Hannergrondprozessmanager (Daemon) dee Prozesser oder Skripter a reegelméissegen Ofstänn leeft (zum Beispill all Minutt, Dag, Woch oder Mount). D'Prozesser déi ausgefouert musse ginn an d'Zäit zu där se ausgefouert musse ginn an der crontab Datei spezifizéiert.

Wéi et schafft

De Cron Daemon fänkt vun /etc/rc.d/ o /etc/init.d ofhängeg vun der Verdeelung. Cron leeft am Hannergrond, kontrolléiert d'Cronab Task Table all Minutt / etc / crontab oder a / var / spool / cron op der Sich no Aufgaben ze realiséieren. Als Benotzer kënne mir Kommandoen oder Skripte mat Aufgaben derbäi fir Cron fir e puer Prozesser ze automatiséieren. Dëst ass nëtzlech zum Beispill fir d'Aktualiséierung vun engem System oder e gudde Backup System ze automatiséieren.

Verbonnen Artikel:
Tutorial: Installéiert .tar.gz an .tar.bz2 Packages

Wat ass Crontab?

Crontab ass eng einfach Textdatei déi eng Lëscht vu Befehle speichert déi zu enger Zäit vum Benotzer spezifizéiert ginn. Crontab kontrolléiert den Datum an d'Zäit wéini de Skript oder de Kommando ausgefouert soll ginn, d'Ausféierungs Permissiounen an et mécht et am Hannergrond. All Benotzer kann seng eege Crontab Datei hunn, tatsächlech de / etc / crontab et gëtt ugeholl datt de Root Benotzer d'crontab Datei ass, wann normale Benotzer (a souguer root) hir eege Crontab Datei generéiere wëllen da benotze mir de crontab Kommando.

Crontab ass deen einfachste Wee fir Cron Aufgaben op Multi-User Systemer ze managen, entweder als einfachen Systembenutzer oder Rootbenutzer.

Benotzt Crontab

Mir fänke mat engem einfachen Beispill un.

Mir ginn d'Aktualiséierung vun engem System automatiséieren, fir dat lästegt ze eliminéieren "Ech muss ëmmer aktualiséieren an ech hunn dat net gär!"

Verbonnen Artikel:
Befehle fir de System ze kennen (Hardware z'identifizéieren an e puer Software Konfiguratiounen)

Als éischt maache mir e Skript. Dëst Skript gëtt vu Cron ugeruff a enthält all d'Instruktioune déi mir et maache wëllen, dofir ass et noutwendeg et a verschiddene Fäll ze testen an op verschidde Weeër ier Dir et an Cron enthält, en einfachen Update Skript wéi dëst:

#! / bin / bash #Skript Update Beispill #Wielt Är Verdeelung # debian-ubuntu # apt-get update & apt-get -y upgrade #fedora #yum -y update #Arch #pacman --noconfirm -Syu

Huelt den # aus Ärer Distro Linn. Am Fall ass et Ubuntu / Debian, et fänkt mat apt-get un.

Mir späicheren de Skript als update.sh (z. B. Skripteverzeichnis Ärem Heem). Mir änneren d'Ausféierungs Permissiounen vum genannte Skript mat:

chmod a + x ~ / Skripte / update.sh

Mir féieren de Skript e puer Mol fir ze kontrolléieren datt alles reibungslos leeft, mir änneren dat wat néideg ass (et däerf keng Feeler enthalen, soss widderhëlt Cron nëmmen e Feeler ëmmer erëm). Elo fir d'Aufgab op eise Crontab bäizefügen.

Füügt Aufgaben op Crontab bäi

Mir féieren d'Editioun vum Crontab mat Crontab -e aus, an e puer Distros (wéi Ubuntu) gëtt et eis d'Méiglechkeet den Texteditor ze wielen dee mir wëllen, de Rescht bleiwe mir mat vi. D'Crontab Datei wäert sou eppes ausgesinn.

# mh dom mon dow Benotzerkommando

wou:

  • m entsprécht der Minutt wéi de Skript ausgefouert gëtt, de Wäert reicht vun 0 op 59
  • h déi exakt Zäit, de 24-Stonne-Format gëtt gehandhabt, d'Wäerter reeche vun 0 op 23, mat 0 sinn 12:00 Mëtternuecht.
  • éiert bezitt sech op den Dag vum Mount, zum Beispill kënnt Dir 15 spezifizéieren wann Dir all 15. Deeg lafe wëllt
  • dow heescht den Dag vun der Woch, et kann numeresch sinn (0 bis 7, wou 0 a 7 Sonndeg sinn) oder déi éischt 3 Buschtawen vum Dag op Englesch: Mon, Di, Wed, Do, Fri, Sat, Sonn.
  • Benotzersäit definéiert de Benotzer deen de Kommando ausféiert, et ka root sinn, oder en anere Benotzer soulaang se Permissiounen hunn fir de Skript auszeféieren.
  • Kommando bezitt sech op de Kommando oder den absolute Wee vum Skript fir auszeféieren, Beispill: /home/usuario/scripts/update.sh, wann et e Skript nennt, muss et ausführbar sinn

Fir kloer e puer Beispiller vu Cron Aufgaben ze erklären:

15 10 * * * Benotzer /home/user/scripts/update.sh

Et leeft den update.sh Skript um 10:15 all Dag

15 22 * * * Benotzer /home/user/scripts/update.sh

Et féiert den Update.sh Skript um 10:15 all Dag

00 10 * * 0 root apt-get -y update Root Benotzer

Et wäert en Update all Sonndeg um 10h00 lafen

45 10 * * Sonn root apt-get -y Update

Root User fiert all Sonndeg (Sonn) um 10:45 en Update

30 7 20 11 * Benotzer /home/usuario/scripts/update.sh

Den 20. November um 7:30 leeft de Benotzer de Skript

30 7 11 11 Sonn Benotzer /home/usuario/scripts/pastel_con_velitas.sh

Den 11. November um 7:30 Auer an dat ass e Sonndeg, feiert de Benotzer säi Sysadmin (also ech)

01 * * * * Benotzer /home/usuario/scripts/molestorecordatorio.sh

Eng lästeg Erënnerung all Minutt vun all Stonn all Dag (NET recommandéiert).

Si kënnen nach ëmmer gehandhabt ginn Spezialberäicher:

30 17 * * 1,2,3,4,5

Um 5:30 de Mëtteg all Dag vu Méindes bis Freides.

00 12 1,15,28 * *

Um 12 Auer den éischten, fofzéngten an 28. vun all Mount (ideal fir Paieziedel)

Wann dëst konfus ass, crontab geréiert speziell Saiten fir dës Reegelen ze definéieren.

@reboot Lafen eemol, beim Starte
@yearly leeft nëmmen eemol d'Joer: 0 0 1 1 *
@ jäerlech d'selwecht wéi @ Joer
@monthly leeft eemol de Mount, den éischten Dag: 0 0 1 * *
@weekly Weekly déi éischt Minutt vun der éischter Stonn vun der Woch. 0 0 * * 0 ″.
@ all Dag all Dag, um 12:00 A.M. 0 0 * * *
@Midnight d'selwecht wéi @daily
@stonn an der éischter Minutt vun all Stonn: 0 * * * *

Seng Benotzung ass ganz einfach.

@hourly user /home/user/scripts/molestorecordatorio.sh @monthly user /home/user/scripts/backup.sh @daily root apt-get update && apt-get -y upgrade

Zu gudder Lescht:

Cron Jobmanagement

crontab Datei

Ersetzt déi existent Crontab Datei mat enger benotzerdefinéierter Datei

crontab -e

Ännert d'Crontab Datei vum Benotzer, all nei Zeil gëtt eng nei Crontab Task.

crontab -l

Lëscht all Crontab Aufgabe vum Benotzer

crontab -d

Läscht de Crontab vum Benotzer

crontab -c dir

Definéiert de Crontab Verzeechnes vum Benotzer (dëst muss de Benotzer d'Schreiwe hunn an d'Rechter ausféieren)

crontab -u Benotzer

Präfix fir de Crontab vun engem anere Benotzer ze behandelen, Beispiller:

$ sudo crontab -l -u root $ sudo crontab -e user2 #crontab -d -u Benotzer

Dëst Tool, wéi vill anerer, kann méi déif a méi detailléiert gesi ginn an:

Merci Lucain!

Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

48 Kommentaren, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn.

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   Alvaro Ortiz Plazhaler Bild sot

    Ugh ... e bëssen duerchernee.

  2.   Tonic sot

    fehlt den * / 30 (am Minuttefeld) deen all 30. Minutt leeft ...

    1.    erm 3nd sot

      Just dëst wollt ech kommentéieren bis ech beschloss hunn d'Kommentaren ze iwwerpréiwen 😀
      Dëse Modifikateur ass e ganz wichtegt Informatioun an eppes ganz nëtzlech.

      1.    Kika sot

        Hallo!
        Grad elo testen ech eng Konfiguratioun all 45 Minutten.

        * / 45 * * * *, an d'Instruktioun gëtt a 45 Minutte vun all Stonn AN all Stonn ausgefouert. Dat heescht:

        Et leeft um 3:45, da 4:00, 4:45, dann 5:00, 5:45, 6:00, 6:45, asw.

        Ech hunn eppes falsch? Wat kann ech maachen, datt et nëmmen all 45 Minutten ass, oder op d'mannst eemol op 45 Minutten all Stonn.

    2.    Kika sot

      Hallo!
      Grad elo testen ech eng Konfiguratioun all 45 Minutten.

      * / 45 * * * *, an d'Instruktioun gëtt a 45 Minutte vun all Stonn AN all Stonn ausgefouert. Dat heescht:

      Et leeft um 3:45, da 4:00, 4:45, dann 5:00, 5:45, 6:00, 6:45, asw.

      Ech hunn eppes falsch? Wat kann ech maachen, datt et nëmmen all 45 Minutten ass, oder op d'mannst eemol op 45 Minutten all Stonn.

  3.   D'Visiteuren haten et sot

    Hallo super nëtzlech d'Informatioun fir ze klären wéi Cron funktionnéiert.
    Bytes

  4.   D'Visiteuren haten et sot

    fir *

  5.   Jeeër sot

    Exzellent, merci fir ze klären wéi Cron funktionnéiert .. loosst eis e bëssen Hand put

  6.   Jacob sot

    Dës Linn wéi ech se verstinn gëtt um 10:15 ausgefouert, korrigéiert mech wann ech falsch sinn
    Gutt do steet 10:15 Auer
    15 22 * * * Benotzer /home/user/scripts/update.sh

  7.   agustine sot

    Hallo! ganz gutt Info.
    Fir e Skript all hallef Stonn auszeféieren, ass d'Linn déi zu CronTab derbäigesat gëtt: "30 * * * * root Scrip.sh" Richteg? Villmols merci!

  8.   loosst eis Linux benotzen sot

    Nee. Wann ech mech richteg erënneren, dofir musst Dir / 30 * * * * root Scrip.sh setzen.
    Dat ass, füügt den / virum 30 derbäi.
    Prost! Paul.

  9.   Jonathan sot

    Moien, ech hunn Äre Post gutt fonnt, et ass ganz komplett awer ech wollt Iech eppes froen.
    Ech hu Probleemer mat dësem Kommando an ee wéi "at".

    Ech wëll e Skript zu enger gewëssener Zäit lafen a setzen

    op -f /home/mi_user/Desk/script.sh 18:08 Beispill

    an de Skript gëtt net um Bildschierm ausgefouert, dat heescht am Terminal, gëtt et am Hannergrond ausgefouert?

    A mat Cron geschitt datselwecht mat mir, ech änneren d'Crontab Datei mat "crontab -e"

    um Enn fügen ech dës Zeil bäi:

    46 19 my_user /home/mi_user/Desk/script.sh

    an et mécht näischt, et weist de Skript net.

    All Virschlag? Villmools Merci an entschëllegt Iech fir all Onbequem

    1.    loosst eis Linux benotzen sot

      Fir datt den Terminal erscheint, musst Dir den Terminal lafen an de Skript als Parameter weiderginn.

      Zum Beispill:

      lxterminal -e "my_user /home/my_user/Desk/script.sh"

      De Parameter deen Dir benotzt ka variéieren baséiert op dem Terminalemulator deen Dir benotzt.

      Ech hoffen et funktionnéiert.

      Hug! Paul.

  10.   patrecas sot

    De Bäitrag gëtt appréciéiert.

    10 Punkten !!

    soss 2 !!

  11.   Rodolfo sot

    Villmools Merci, et huet mir vill gehollef e puer Saachen ze klären, total Merci, fir méi Detailer oder Froen ginn ech op de MAN PAGE, widderholl Gréiss.

  12.   jahir sot

    Monni villmools Merci, ech hunn d'Beispiller gelies an getest. villmols merci ... et ass ganz verständlech. Gréiss

  13.   Geovanni sot

    Ech hunn ubuntu Server 12.04.2 LTS benotzt, an d'Versioun vu crontab déi ech hunn, fir d'Lëscht vun den Aarbechter vum Benotzer ze läschen ass benotzt, crontab -r (an -l, wéi dësen Handbuch seet). Sécher ass et duerch Fro vu Versiounen.

    Op där anerer Säit hunn ech eemol nëmme crontab gerannt an dës Aart léisst mech meng eegen Exekutiounsdatei erstellen, awer dëst war net deen deen ausgefouert gouf. Dee dee leeft ass deen an / etc / crontab. vläicht benotzt een de Kommentar.

    PS (ech hu gesicht mat lokaliséieren a wou ass crontab awer et huet nëmmen déi genannte Adress an eng aner Datei verschlësselt déi verschlësselt ass, also wann deen deen ausgefouert gouf deen an / etc / crontab war, awer wann Dir de crontab -e Kommando ausféiert, da géif ech erschéngen mat all den Aarbechten déi ech definéiert hat) wou gouf dës Datei gespäichert '???? Gréiss. Ech loggen ëmmer mat root un.

  14.   Sebastian sot

    Exzellent, ganz nëtzlech !!!

  15.   Mmmh sot

    Moien, ech wéilt dat maachen ...……… «15 10 * * * root ifdown eth0»

    dat ass, zu enger gewësser Zäit gëtt d'Netzwierkkaart ausgeschalt ………… gutt, ech hunn et an de Crontab gesat an et huet net geschafft …… .. Wat leeft?

    Greetings a Merci

  16.   Miguel sot

    Dir hutt verpasst "Mon" ze definéieren nom Titel "Aufgaben derbäi zu crontab"

    Den Artikel ass nach ëmmer schéin, Cron ass extrem nëtzlech.

  17.   Oscar sot

    Wéi cool war dee gudde Post, frot mech
    Wann ech d'Aufgaben, déi vun der Ausféierung vun Aufgaben hannerlooss hunn, verfollegen, wou kann ech dat gesinn?

    ass decdir Ech wëll d'Geschicht vun den Aktiounen an der Vergaangenheet vun dëser Datei gesinn an ech wëll gesinn wien et geännert huet an den Datum

    merci

  18.   Oscar sot

    Ech wëll d'Modifikatiounsgeschicht vun dëser kontrolléieren

    wéi kann ech et maachen

    merci

  19.   Andres Ledo sot

    Gudde Moien,

    Ech denken datt Dir am Ubuntu Skript e Feeler gemaach hutt, Dir hutt ap-get -y Upgrade gesat amplaz apt-get -y Upgrade. (Dir hutt en t hannerlooss).

    A Begréissung.

    1.    loosst eis Linux benotzen sot

      Sou ass. Merci!
      Hug! Paul

  20.   Gabriel sot

    Ech wëll wëssen wéi eng Cron Datei erstellt fir d'Zäit ze spezifizéieren wann se ausgefouert gëtt, de Verzeechnes, etc.

  21.   Paralympics sot

    Merci fir d'Operatioun ze klären an d'Basisbefehle fir Cron, elo fir Iech e bëssen z'ënnerhalen.

  22.   Sander sot

    Wann ech no Informatiounen iwwer all Thema am Zesummenhang mat Gnu / Linux sichen, ginn ech ronderëm a ronderëm fir an 90% vun de Fäll de beschten Tutorial an dëser grousser Gemeinschaft ze fannen, ech denken vun elo un fänken ech hei un an dann soss anzwousch.

    Wat

    1.    loosst eis Linux benotzen sot

      Merci Sander! Eng Emarmung! Paul.

  23.   daryo sot

    dom = Dag vum Mount
    Dow = Dag vun der Woch
    et ass méi einfach wann Dir associéiert

  24.   Pascual sot

    Villmools Merci, dëst ass ganz komplett a gutt erkläert.

  25.   Maxillia sot

    Dëst ass datselwecht wat mäi Betribssystem Enseignant eis ginn huet, ech ännere näischt, elo gesinn ech firwat d'Klass sou schlecht ass. -.

  26.   Marcelo sot

    Geschätzte,

    Ufro, kann d'Dauerzäit vun enger Aufgab limitéiert sinn?
    Zum Beispill hunn ech eng Aufgab déi all 5. Minutte widderhëlt, bei der Widderhuelung wann dës Aufgab nach ëmmer aktiv ass, kill se a lafen erëm.

    merci,
    Marcelo.-

    1.    loosst eis Linux benotzen sot

      Moien, Marcelo!

      Ech mengen et wier besser wann Dir dës Fro an eiser Fro an Äntwert Service opgeruff hutt Frot FromLinux sou datt d'ganz Gemeinschaft Iech mat Ärem Problem hëllefe kann.

      En Aarm, Pablo.

  27.   aj sot

    gudde Post.
    Wat ass de Kommando pro Terminal fir Aufgaben op de Crontab bäizefügen (ouni de Crontab anzeginn an se manuell mat 'crontab -e' bäizefügen oder de Crontab duerch eng aner Crontab mat 'crontab Datei' z'ersetzen).
    D'Iddi ass en externen Skript ze kreéieren fir d'Aufgaben op de Crontab bäizefügen
    merci

    1.    david sot

      et schéngt fir mech datt Dir 'Echo' benotze kënnt wat Dir wëllt addéieren '| Kaz >> 'cronotab Wee (/ etc / cronotab)' «

  28.   Raphael Vera sot

    Wéi géif en Ausdrock all 3 Deeg exakt ausgefouert ginn

  29.   Jose Antonio sot

    Hallo.

    Ech hunn e Problem e Cron Job auszeféieren.

    Ech féieren déi folgend Aufgab mat cronta -e:

    01 * * * * root /home/user/script/mfile.sh

    awer d'Aufgab ass net gemaach. Ech hu kontrolléiert datt myfile.sh Ausféierungserlaabnis huet an datt de Benotzer deen et ausféiert root ass.

    Ech laafen déiselwecht Aufgab an / etc / crontab an nom Restart vum Service funktionnéiert et och net fir mech.
    Den Inhalt vu myfile.sh ass e Kommando dat eng DB aktualiséiert a wann ech se an der Konsol lafen funktionnéiert et.
    keng Ahnung wat de Problem ka sinn?

    1.    fredd sot

      Et ass wahrscheinlech datt den Datebank Benotzer net all Permissiounen huet an Dir musst d'Ëmfeldvariabelen aus Ärem Datebankmotor exportéieren.
      Zum Beispill an db2 dës Linn géif zum Ufank vum Skript goen
      . / doheem / db2inst1 / sqllib / db2profile

      Eng aner Ursaach kéint sinn datt de Skript Verbindung mat der Datebank erfuerdert, d'Verbindung mat der Datebank am Skript maacht

  30.   LA3 sot

    Ech wousst net datt ech de Crond nei starten, ech hunn eng Zäit laang domat gekämpft

  31.   Kenia sot

    Si wësse wéi se uginn datt d'Aufgab all Enn vum Mount leeft, zu der Zäit uginn .. den Detail ass datt ech net erreeche kann wéi ech weess datt et de leschten Dag vun all Mount dauert .. ??? Ech hu se missen eng fir eng opschreiwen awer wann Enn Februar de Mount kënnt datt et biciesto ass ass et komplizéiert ...

  32.   Jesus sot

    Gudden Dag!!

    Wéi stoppen ech de Prozess deen am Crontab ausgefouert gëtt?

  33.   Jesus sot

    Prozess * …………

  34.   Julianna sot

    Kann et sinn datt Dir mir hëllefe kënnt? eu tenho um script vum minha geschriwwen dat funktionnéiert kee crontab! Jб dei all Permissiounen, net e spezifesche Cron oder User deen et ausféiere kann - meescht geschitt näischt! Ech géif gären wëssen ob Dir mir hëllefe kënnt, e puer aner Saache funktionéiere kee Cron! Vlws

  35.   Anthox sot

    Wéi géift Dir eng Aufgab setzen fir all leschten Dag vum Mount ze lafen (Deeg: 31-30-28)?

  36.   tfercho sot

    Wéi Dir scho wësst, gëtt de su Kommando benotzt fir de Benotzer an enger Konsole z'änneren. Wann ech de Kommando su sou benotzen: "Äre Benotzer" ännert de Benotzer awer ouni déi richteg Astellunge vum "Benotzer", wann ech su lafen als: "su - Benotzer" ännert de Benotzer andeems Dir d'Benotzerastellungen lued. Mat Cron ginn ech de Benotzer un, awer wéi lueden ech d'Astellunge vun dësem Benotzer?

  37.   Rob sot

    A wann ech wëll ophalen?

  38.   regi sot

    Hallo,
    Ech weess net wat ech falsch maachen, awer ech befollegen d'Schrëtt an näischt gëtt ausgefouert. Ech hu probéiert:
    59 * * * * / usr / bin / gedit
    * * * * * / usr / bin / gedit
    * * * * * root / usr / bin / gedit
    * * * * * usr / bin / test.sh
    * * * * * root usr / bin / test.sh

    a guer näischt. Et féiert näischt aus. Ech hunn nei gestart an alles.

  39.   Ferqos sot

    villmols Merci

bool (richteg)