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. |
Index
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.
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!"
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:
48 Kommentaren, loosst ären
Ugh ... e bëssen duerchernee.
fehlt den * / 30 (am Minuttefeld) deen all 30. Minutt leeft ...
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.
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.
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.
Hallo super nëtzlech d'Informatioun fir ze klären wéi Cron funktionnéiert.
Bytes
fir *
Exzellent, merci fir ze klären wéi Cron funktionnéiert .. loosst eis e bëssen Hand put
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
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!
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.
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
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.
De Bäitrag gëtt appréciéiert.
10 Punkten !!
soss 2 !!
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.
Monni villmools Merci, ech hunn d'Beispiller gelies an getest. villmols merci ... et ass ganz verständlech. Gréiss
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.
Exzellent, ganz nëtzlech !!!
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
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.
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
Ech wëll d'Modifikatiounsgeschicht vun dëser kontrolléieren
wéi kann ech et maachen
merci
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.
Sou ass. Merci!
Hug! Paul
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.
Merci fir d'Operatioun ze klären an d'Basisbefehle fir Cron, elo fir Iech e bëssen z'ënnerhalen.
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
Merci Sander! Eng Emarmung! Paul.
dom = Dag vum Mount
Dow = Dag vun der Woch
et ass méi einfach wann Dir associéiert
Villmools Merci, dëst ass ganz komplett a gutt erkläert.
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. -.
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.-
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.
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
et schéngt fir mech datt Dir 'Echo' benotze kënnt wat Dir wëllt addéieren '| Kaz >> 'cronotab Wee (/ etc / cronotab)' «
Wéi géif en Ausdrock all 3 Deeg exakt ausgefouert ginn
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?
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
Ech wousst net datt ech de Crond nei starten, ech hunn eng Zäit laang domat gekämpft
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 ...
Gudden Dag!!
Wéi stoppen ech de Prozess deen am Crontab ausgefouert gëtt?
Prozess * …………
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
Wéi géift Dir eng Aufgab setzen fir all leschten Dag vum Mount ze lafen (Deeg: 31-30-28)?
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?
A wann ech wëll ophalen?
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.
villmols Merci