Cron & crontab, eksplike

Lucain pibliye yon ti tan de sa ekselan leson patikilye sou cron ak crontab ke mwen panse ki vo pataje. Cron se yon kalite ekivalan a Travay pwograme nan Windows, se sèlman ke li se okipe soti nan tèminal la. Moun ki ta pito yon koòdone vizyèl pou reyalize menm objektif la, ka wè sa yon lòt atik.

Ki sa ki cron?

Non cron la soti nan chronos grèk la ki vle di "tan." Nan sistèm opere Unix, cron se yon manadjè regilye pwosesis background (saten) ki kouri pwosesis oswa Scripts nan entèval regilye (pou egzanp, chak minit, jou, semèn, oswa mwa). Pwosesis yo ki dwe egzekite ak tan an nan kote yo dwe egzekite yo espesifye nan dosye a crontab.

Ki jan li fonksyone

Demon cron la kòmanse nan /etc/rc.d/ o /etc/init.d depann de distribisyon an. Cron kouri nan background nan, tcheke tab la travay crontab chak minit / elatriye / crontab a nan / var / bobin / cron nan rechèch nan travay yo dwe akonpli. Kòm yon itilizatè nou ka ajoute kòmandman oswa Scripts ak travay nan cron otomatize kèk pwosesis. Sa a se itil pou egzanp otomatize aktyalizasyon a nan yon sistèm oswa yon sistèm backup bon.

Atik ki gen rapò ak:
Leson patikilye: Enstale .tar.gz ak .tar.bz2 Pakè

Ki sa ki Crontab?

Crontab se yon dosye tèks ki senp ki estoke yon lis kòmandman yo dwe egzekite nan yon tan espesifye pa itilizatè a. Crontab ap tcheke dat ak lè lè script la oswa lòd yo ta dwe egzekite, otorizasyon yo ekzekisyon epi li pral fè l 'nan background nan. Chak itilizatè ka gen pwòp dosye crontab yo, an reyalite a / elatriye / crontab li sipoze dosye krontab itilizatè rasin lan, lè itilizatè nòmal (e menm rasin) vle jenere pwòp dosye crontab yo lè sa a nou pral sèvi ak kòmand crontab la.

Crontab se fason ki pi fasil nan jere travay cron sou sistèm milti-itilizatè, swa kòm yon itilizatè sistèm senp oswa itilizatè rasin.

Sèvi ak crontab

Nou ap kòmanse ak yon egzanp ki senp.

Nou pral otomatize aktyalizasyon yon sistèm, pou elimine anmèdan nan "Mwen toujou gen aktyalizasyon e mwen pa renmen sa!"

Atik ki gen rapò ak:
Kòmand pou konnen sistèm lan (idantifye pyès ki nan konpitè ak kèk konfigirasyon lojisyèl)

Premye a tout nou pral fè yon script. Script sa a pral rele pa cron epi li pral gen ladan tout enstriksyon nou vle li fè, Se poutèt sa li nesesè teste li nan plizyè ka ak nan plizyè fason anvan ki gen ladan li nan cron, yon senp script aktyalizasyon tankou sa a:

#! / bin / bash #script update example #choose your distribution # debian-ubuntu # apt-get update & apt-get -y upgrade #fedora #yum -y update #Arch #pacman --noconfirm -Syu

Retire # la nan liy distro ou an. Nan ka li nan Ubuntu / Debian, li kòmanse ak apt-jwenn.

Nou sove script la kòm update.sh (egzanp Scripts anyè lakay ou). Nou chanje otorizasyon yo ekzekisyon nan script la te di ak:

chmod a + x ~ / Scripts / update.sh

Nou kouri script la yon koup de fwa yo verifye ke tout bagay kouri fèt san pwoblèm, nou modifye sa ki nesesè (li pa dwe gen ladan erè, otreman cron pral sèlman repete yon erè sou yo ak sou ankò). Koulye a, ajoute travay la nan crontab nou an.

Ajoute travay nan crontab

Nou egzekite edisyon crontab la ak crontab -e, nan kèk distribisyon (tankou Ubuntu) li ban nou opsyon pou chwazi editè tèks nou vle a, rès la nou rete ak vi. Dosye a crontab ap gade yon bagay tankou sa a.

# mh dom mon itilizatè kòmand dow

kote:

  • m koresponn ak minit yo pral script la dwe egzekite, valè a chenn nan 0 a 59
  • h tan egzak la, fòma a 24 èdtan okipe, valè yo varye ant 0 a 23, ak 0 ke yo te 12:00 minwi.
  • kado refere a jou a nan mwa a, pou egzanp ou ka presize 15 si ou vle kouri chak 15 jou
  • dow vle di jou a nan semèn nan, li ka nimerik (0 a 7, kote 0 ak 7 yo Dimanch) oswa premye 3 lèt yo nan jounen an nan lang angle: lun, mar, marye, jedi, fri, sat, solèy
  • itilizatè defini itilizatè a ki moun ki pral egzekite lòd la, li kapab rasin, oswa yon itilizatè diferan osi lontan ke yo gen otorizasyon egzekite script la.
  • lòd refere a lòd la oswa chemen absoli nan script la egzekite, egzanp: /home/usuario/scripts/update.sh, si li rele yon script li dwe ègzèkutabl

Yo dwe klè kèk egzanp nan travay cron eksplike:

15 10 * * * itilizatè /home/user/scripts/update.sh

Li pral kouri script la update.sh nan 10:15 am chak jou

15 22 * * * itilizatè /home/user/scripts/update.sh

Li pral kouri script la update.sh nan 10:15 pm chak jou

00 10 * * 0 rasin apt-get -y aktyalizasyon Rasin itilizatè

Li pral kouri yon ajou chak dimanch nan 10:00 am

45 10 * * solèy rasin apt-get -y aktyalizasyon

Rasin itilizatè pral kouri yon ajou chak dimanch (Solèy) nan 10:45 am

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

20 novanm nan 7:30 itilizatè a pral kouri script la

30 7 11 11 solèy itilizatè /home/usuario/scripts/pastel_con_velitas.sh

Sou Novanm 11 nan 7:30 am e ke se Dimanch, itilizatè a ap selebre sysadmin l '(ki se, m')

01 * * * * itilizatè /home/usuario/scripts/molestorecordatorio.sh

Yon rapèl anmèdan chak minit nan chak èdtan chak jou (PA rekòmande).

Yo ka toujou okipe yo chenn espesyal:

30 * * 17

Nan 5:30 nan apremidi a chak jou soti nan Lendi a Vandredi.

00 12 1,15,28 * *

Nan 12 midi nan premye, kenzyèm ak 28th nan chak mwa (ideyal pou pewòl)

Si sa a se konfizyon, manch crontab strings espesyal yo defini chenn sa yo.

@reboot Kouri yon fwa, nan demaraj
@yearly kouri sèlman yon fwa chak ane: 0 0 1 1 *
@ chak ane menm jan ak @yearly
@ chak mwa kouri yon fwa chak mwa, premye jou a: 0 0 1 * *
@weekly chak semèn premye minit nan premye èdtan nan semèn nan. 0 0 * * 0 ″.
@ chak jou, nan 12:00 A.M. 0 0 * * *
@midnight menm jan ak @ chak jou
@hourly nan premye minit nan chak èdtan: 0 * * * *

Itilizasyon li trè senp.

@hourly user /home/user/scripts/molestorecordatorio.sh @monthly user /home/user/scripts/backup.sh @ chak jou rasin apt-get update && apt-get -y ajou

Denye men pa pi piti:

Jesyon travay Cron

dosye crontab

Ranplase dosye a ki deja egziste crontab ak yon dosye itilizatè-defini

crontab -e

Edite dosye crontab itilizatè a, chak nouvo liy pral yon nouvo travay crontab.

crontab -l

Lis tout travay crontab itilizatè a

crontab -d

Efase crontab itilizatè a

crontab -c dir

Defini anyè crontab itilizatè a (sa a dwe gen ekri itilizatè a ak egzekite autorisations)

crontab -u itilizatè

prefiks okipe crontab yon lòt itilizatè a, egzanp:

$ sudo crontab -l -u rasin $ sudo crontab -e user2 #crontab -d -u user

Zouti sa a, tankou anpil lòt moun, ka wè nan plis pwofondè ak nan plis detay nan:

Mèsi Lucain!

Kontni an nan atik la respekte prensip nou yo nan etik editoryal. Pou rapòte yon erè klike sou isit la.

48 kòmantè, kite ou

Kite kòmantè ou

Adrès imèl ou pa pral dwe pibliye. Jaden obligatwa yo make ak *

*

*

  1. Responsab pou done yo: Miguel Ángel Gatón
  2. Objektif done yo: Kontwòl SPAM, jesyon kòmantè.
  3. Lejitimasyon: konsantman ou
  4. Kominikasyon nan done yo: done yo pa pral kominike bay twazyèm pati eksepte pa obligasyon legal.
  5. Done depo: baz done anime pa rezo Occentus (Inyon Ewopeyen)
  6. Dwa: Nenpòt ki lè ou ka limite, refè ak efase enfòmasyon ou yo.

  1.   Alvaro Ortiz imaj placeholder diro

    Ugh ... yon ti jan konfizyon.

  2.   Tonik diro

    * / 30 ki manke (nan jaden minit) ki kouri chak 30 minit ...

    1.    erm3nda diro

      Jis sa a mwen te pral fè kòmantè jiskaske mwen deside revize kòmantè yo 😀
      Modifikatè sa a se yon moso enfòmasyon ki enpòtan anpil ak yon bagay ki itil anpil.

      1.    KIKA diro

        Hello!
        Kounye a mwen teste yon konfigirasyon chak 45 minit.

        * / 45 * * * *, ak enstriksyon an egzekite nan 45 minit nan chak èdtan AK chak èdtan. Sa vle di:

        Li kouri nan 3:45, Lè sa a, 4:00, 4:45, Lè sa a, 5:00, 5:45, 6:00, 6:45, ak sou sa.

        Mwen gen yon bagay ki mal? Kisa mwen ka fè pou ke li se sèlman chak 45 minit, oswa omwen yon fwa a 45 minit chak èdtan.

    2.    KIKA diro

      Hello!
      Kounye a mwen teste yon konfigirasyon chak 45 minit.

      * / 45 * * * *, ak enstriksyon an egzekite nan 45 minit nan chak èdtan AK chak èdtan. Sa vle di:

      Li kouri nan 3:45, Lè sa a, 4:00, 4:45, Lè sa a, 5:00, 5:45, 6:00, 6:45, ak sou sa.

      Mwen gen yon bagay ki mal? Kisa mwen ka fè pou ke li se sèlman chak 45 minit, oswa omwen yon fwa a 45 minit chak èdtan.

  3.   Kanson diro

    Bonjou super itil enfòmasyon an klarifye ki jan cron travay.
    Bytes

  4.   Kanson diro

    pou *

  5.   Chasè diro

    Ekselan, mèsi pou klarifye ki jan cron ap travay .. kite a mete yon ti men 🙂

  6.   Jakòb diro

    Liy sa a jan mwen konprann li pral egzekite nan 10:15 pm, korije m 'si mwen mal
    Oke gen li di 10:15 am
    15 22 * * * itilizatè /home/user/scripts/update.sh

  7.   Agustin diro

    Bonjou! trè bon enfòmasyon.
    Pou egzekite yon Script chak demi èdtan, liy lan ki ta dwe ajoute nan CronTab ta dwe: "30 * * * * rasin Scrip.sh" Kòrèk? Mèsi anpil!

  8.   kite a itilize Linux diro

    Non. Si mwen sonje kòrèkteman, pou sa ou dwe mete / 30 * * * * rasin Scrip.sh.
    Sa se, ajoute / anvan 30 la.
    Cheers! Pòl.

  9.   Jonatan diro

    Bonjou, mwen te renmen pòs ou, li trè konplè men mwen te vle mande ou yon bagay.
    Mwen gen pwoblèm ak lòd sa a ak yon sèl tankou "nan".

    Mwen vle kouri yon script nan yon sèten tan, li mete

    nan -f /home/mi_user/Desk/script.sh 18:08 egzanp

    epi script la pa egzekite sou ekran an, se sa ki, nan tèminal la, èske li egzekite nan background nan?

    Ak cron menm bagay la rive m ', mwen edite dosye a crontab ak "crontab -e"

    nan fen a mwen ajoute liy sa a:

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

    epi li pa fè anyen, li pa montre script la.

    Nenpòt sijesyon? Mèsi anpil epi eskize nou pou nenpòt deranjman

    1.    kite a itilize Linux diro

      Pou tèminal la parèt, ou ka oblije kouri tèminal la epi pase script la kòm yon paramèt.

      Pou egzanp:

      lxterminal -e "my_user /home/mi_user/Desktop/script.sh"

      Paramèt la yo sèvi ak ka varye ki baze sou Emulation nan tèminal ou itilize yo.

      Mwen espere ke li travay.

      Anbrase! Pòl.

  10.   patretcas diro

    Se kontribisyon an apresye.

    10 pwen !!

    salut2 !!

  11.   Rodolfo diro

    Mèsi anpil, li te ede m 'anpil klarifye kèk bagay, mèsi total, pou plis detay oswa dout mwen pral ale nan paj la MAN, repete bonjou.

  12.   jou diro

    monchè mèsi anpil, mwen te li ak tès egzanp yo. mèsi anpil ... li trè konprann. Cheers

  13.   Geovanni diro

    Mwen te itilize ubuntu sèvè 12.04.2 LTS, ak vèsyon an nan crontab ke mwen genyen, efase lis la nan travay itilizatè a yo itilize, crontab -r (ak -l, tankou manyèl sa a di). Asire w li se pa kesyon de vèsyon.

    Nan lòt men an, mwen yon fwa kouri sèlman crontab ak sa a kalite kite m 'kreye pwòp dosye ekzekisyon mwen, men sa a pa t' yon sèl la ki te ke yo te egzekite. Yon sèl la ki kouri se youn nan / elatriye / crontab. petèt yon moun ap itilize kòmantè a.

    PS (Mwen fouye ak lokalize ak ki kote crontab men li sèlman retounen adrès la susmansyone ak yon lòt dosye ki chiffres, kidonk si yon sèl la ki te egzekite te youn nan / elatriye / crontab, men lè egzekite lòd la crontab -e, mwen ta parèt ak tout travay ke mwen te defini) kote yo te sere dosye sa a '???? Salitasyon. Mwen toujou ouvri sesyon an ak rasin.

  14.   Sebastian diro

    Ekselan, trè itil !!!

  15.   mmm diro

    Bonjou, mwen ta renmen fè sa ………… «15 10 * * * rasin ifdown eth0»

    sa vle di ke nan yon sèten tan se rezo kat la etenn ......... byen, mwen mete l 'nan crontab la epi li pa t' travay ...... .. sa ki nan moute?

    Bonjou ak mèsi

  16.   Miguel diro

    Ou rate defini "mon" apre tit la "Add travay nan crontab"

    Atik la toujou bèl, cron trè itil.

  17.   OScar diro

    Kouman fre te bon pòs sa a, mande m '
    Si mwen vle kenbe tras nan dosye yo kite nan ekzekisyon an nan travay, ki kote mwen ka wè li?

    se decdir mwen vle wè istwa a nan aksyon yo te fè nan tan lontan an nan dosye sa a epi mwen vle wè ki moun ki te modifye li ak dat la

    mèsi

  18.   Oscar diro

    Mwen vle tcheke istwa modifikasyon sa a

    ki jan mwen ka fè li

    mèsi

  19.   Andres Ledo diro

    Bon maten,

    Mwen panse ke nan script la ubuntu ou te fè yon erè, ou te mete ap-jwenn -y ajou olye pou yo apt-jwenn -y ajou. (Ou kite yon t).

    Yon salitasyon.

    1.    kite a itilize Linux diro

      Se konsa, se. Mèsi!
      Anbrase! Pòl

  20.   Gabriel diro

    Mwen vle konnen ki jan yo kreye yon dosye cron pou kapab presize tan an chak lè li egzekite, anyè a, elatriye.

  21.   Valentin diro

    Mèsi pou klarifye operasyon an ak kòmandman debaz yo pou cron, kounye a amize tèt ou pou yon ti jan.

  22.   Saunders diro

    Chak fwa mwen gade pou enfòmasyon sou nenpòt sijè ki gen rapò ak Gnu / Linux mwen ale wonn ak wonn nan fen a toujou jwenn nan 90% nan ka yo leson patikilye a pi bon nan kominote sa a gwo, mwen panse ke depi koulye a mwen pral kòmanse isit la ak Lè sa a, yon lòt kote .

    Concerne

    1.    kite a itilize Linux diro

      Mèsi Sander! Yon akolad! Pòl.

  23.   daryo diro

    dom = jou nan mwa
    dow = jou nan semèn
    li pi fasil si ou asosye

  24.   Pascual diro

    Mèsi anpil, sa trè konplè e byen eksplike.

  25.   Maxillia diro

    Sa a se menm bagay la ke pwofesè eksplwatasyon m 'te ban nou, mwen pa chanje anyen, kounye a mwen wè poukisa klas la se konsa move .-. Oke, sa a se menm bagay la tou kòm devwa xD

  26.   Marcelo diro

    Estime,

    Rekèt, ka dire a nan yon travay limite?
    Pou egzanp mwen gen yon travay ki repete chak 5 minit, sou repetisyon si travay sa a toujou aktif, touye l ', li kouri ankò.

    Mèsi,
    Marcelo.-

    1.    kite a itilize Linux diro

      Bonjou, Marcelo!

      Mwen panse ke li ta pi bon si ou poze kesyon sa a nan kesyon nou yo ak sèvis repons yo rele Mande FromLinux pou tout kominote a ka ede ou ak pwoblèm ou an.

      Yon akolad, Pablo.

  27.   aj diro

    bon pòs.
    Ki sa ki lòd la pou chak tèminal yo ajoute travay crontab la (san yo pa antre nan crontab la epi ajoute yo manyèlman ak 'crontab -e' oswa ranplase crontab la ak yon lòt crontab ak 'dosye crontab').
    Lide a se kreye yon script ekstèn ajoute travay yo nan crontab la
    Mèsi

    1.    David diro

      li sanble m 'ke ou ta ka itilize' eko 'tou sa ou vle ajoute' | chat >> 'chemen cronotab (/ etc / cronotab)' «

  28.   Rafael Vera diro

    Kouman ta yon ekspresyon kouri chak 3 jou egzakteman

  29.   José Antonio diro

    Hey.

    Mwen gen yon pwoblèm egzekite yon travay cron.

    Mwen kouri travay sa a ak cronta -e:

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

    men travay la pa fèt. Mwen te verifye ke myfile.sh gen pèmisyon ekzekisyon e ke itilizatè ki egzekite li se rasin.

    Mwen kouri travay la menm nan / elatriye / crontab ak apre rekòmanse sèvis la, li pa travay pou mwen swa.
    Kontni an nan myfile.sh se yon lòd ki mete ajou yon DB epi si mwen kouri l 'nan konsole a li travay.
    nenpòt lide ki pwoblèm lan ka ye?

    1.    Fredd diro

      Itilizatè baz done a pa ka gen tout otorizasyon yo epi ou pral premye gen ekspòtasyon varyab anviwònman yo soti nan motè baz done ou.
      Pou egzanp nan DB2 liy sa a ta ale nan kòmansman an nan script la
      . / lakay / db2inst1 / sqllib / db2profile

      Yon lòt kòz ta ka ke script la mande pou koneksyon nan baz done a, fè koneksyon an nan baz done a nan script la

  30.   LA3 diro

    Mwen pa t 'konnen ke mwen te rekòmanse crond a, mwen te goumen ak sa a pou yon ti tan

  31.   Kenya diro

    Yo pral konnen ki jan yo endike ke se travay la kouri chak fen nan mwa a, nan moman sa a endike .. detay a se ke mwen pa ka reyalize ki jan mwen konnen ke li pran dènye jou a nan chak mwa .. ??? Mwen te gen yo ekri yo youn pa youn, men lè nan fen mwa a nan mwa fevriye vini ke li se biciesto li se konplike pou mwen ..

  32.   Jezi diro

    Bonjou!!

    Kouman pou mwen sispann pwosesis la ke yo te egzekite nan crontab la?

  33.   Jezi diro

    pwosesis * …………

  34.   Julianna diro

    Èske li ka ke ou ka ede m '? eu tenho um script pa minha otè ki pa travay pa gen okenn crontab! JB dei tout permissхes yo, pa gen okenn prive prive espesifik oswa itilizatè ki ka egzekite li-pa gen anyen k ap pase! Mwen ta renmen konnen si ou ka ede m ', kèk lòt bagay travay pa cron! Vlws

  35.   Anthox diro

    Ki jan ou ta mete yon travay nan kouri chak dènye jou nan mwa a (jou: 31-30-28)?

  36.   tfercho diro

    Kòm ou konnen, se lòd la su itilize chanje itilizatè nan yon konsole. Si mwen sèvi ak lòd la su konsa: "itilizatè ou an" chanje itilizatè men san yo pa anviwònman yo apwopriye nan "itilizatè", si mwen kouri su kòm: "su - itilizatè" chanje itilizatè pa chaje anviwònman yo itilizatè. Avèk cron mwen endike itilizatè a, men ki jan mwen chaje konfigirasyon itilizatè sa a?

  37.   Rob diro

    Men, si mwen vle sispann li?

  38.   Regi diro

    Hello,
    Mwen pa konnen ki sa mwen fè sa ki mal, men mwen swiv etap sa yo e pa gen anyen ki egzekite. Mwen te eseye:
    59 * * * * / usr / bin / gedit
    * * * * * / usr / bin / gedit
    * * * * * rasin / usr / bin / gedit
    * * * * * usr / bin / test.sh
    * * * * * rasin usr / bin / test.sh

    e pa gen anyen ditou. Li pa egzekite anyen. Mwen te rdemare ak tout bagay.

  39.   Ferqos diro

    mèsi anpil