Cron & crontab, dipedar

Lucain anjeunna diterbitkeun sababaraha waktos katukang tutorial anu saé pikeun cron sareng crontab anu kuring pikir pantes dibagi. Cron mangrupikeun sarimbag sareng Tugas Anu Dijadwalkeun dina Windows, ngan ukur éta anu ditanganan ti terminal. Sing saha anu resep antarbeungeut visual pikeun ngahontal tujuan anu sami, tiasa ningali ieu artikel séjén.

Naon ari cron?

Ngaran cron asalna tina basa Yunani kronos anu hartosna "waktos." Dina sistem operasi Unix, cron mangrupikeun pangatur prosés latar tukang (daemon) anu ngalirkeun prosés atanapi skrip dina interval anu teratur (contona, unggal menit, dinten, minggu, atanapi bulan). Prosés anu kedah dilaksanakeun sareng waktos nalika aranjeunna kedah dilaksanakeun parantos ditangtoskeun dina file crontab.

Kumaha gawéna

Daemon cron dimimitian ti /etc/rc.d/ o /etc/init.d gumantung kana distribusi. Cron lumpat di tukang, mariksa tabel tugas crontab unggal menit / jsb / crontab atawa / var / spool / cron dina milarian pancén anu kedah direngsekeun. Salaku pangguna urang tiasa nambihan paréntah atanapi skrip anu ngagaduhan tugas pikeun nga-automate sababaraha prosés. Ieu gunana contona pikeun ngajadikeun otomatis pembaruan sistem atanapi sistem cadangan anu saé.

Tulisan anu aya hubunganana:
Tutorial: Pasang .tar.gz sareng .tar.bz2 Paket

Naon Crontab?

Crontab mangrupikeun file téks saderhana anu nyimpen daptar paréntah pikeun dilaksanakeun dina waktos anu parantos ditangtukeun ku pangguna. Crontab bakal mariksa tanggal sareng waktos nalika skrip atanapi paréntah kedah dilaksanakeun, idin palaksanaan sareng éta bakal dilakukeun di tukang. Unggal pangguna tiasa gaduh file crontab masing-masing, nyatana / jsb / crontab Dianggap mangrupikeun file crontab pangguna root, nalika pangguna normal (komo root) hoyong ngahasilkeun file crontab nyalira maka urang bakal nganggo paréntah crontab.

Crontab mangrupikeun cara paling gampang pikeun ngatur tugas cron dina sistem multi-pangguna, naha salaku pangguna sistem saderhana atanapi pangguna root.

Ngagunakeun crontab

Kami ngamimitian ku conto saderhana.

Kami badé ngajadikeun otomatis pembaruan sistem, pikeun ngaleungitkeun gangguan anu ngaganggu "Kuring salawasna kedah ngapdet sareng kuring henteu resep éta!"

Tulisan anu aya hubunganana:
Paréntah pikeun terang sistem (ngaidentipikasi perangkat keras sareng sababaraha konfigurasi perangkat lunak)

Mimiti urang bakal ngadamel skrip. Naskah ieu bakal disebat ku cron sareng bakal ngandung sadaya pitunjuk anu kami hoyongkeun, ku sabab éta kedah diuji dina sababaraha kasus sareng sababaraha cara sateuacan diémbarkeun dina cron, skrip pembaruan anu saderhana sapertos kieu:

#! / bin / bash #script update conto #pilih distribusi anjeun # debian-ubuntu # apt-get update & apt-get -y upgrade #fedora #yum -y update #Arch #pacman --noconfirm -Syu

Cabut # tina garis distro anjeun. Upami éta Ubuntu / Debian, éta dimimitian ku apt-get.

Kami nyimpen skrip salaku update.sh (mis. Naskah diréktori bumi anjeun). Kami ngarobih idin palaksanaan skrip ieu ku:

chmod a + x ~ / skrip / update.sh

Kami ngajalankeun skrip sababaraha kali pikeun mastikeun yén sadayana lancar, urang ngarobih naon anu diperyogikeun (éta henteu kedah ngandung éror, upami henteu cron ngan ukur ngulang kasalahan deui sareng sering). Ayeuna pikeun nambihan tugas kana crontab urang.

Tambahkeun padamelan pikeun crontab

Kami ngaéksekusi édisi crontab nganggo crontab -e, dina sababaraha distro (sapertos Ubuntu) éta masihan kami pilihan pikeun milih editor téks anu dipikahoyong, sésana urang tinggaleun vi. File crontab bakal katingali sapertos kieu.

# mh dom mon dow paréntah pangguna

dimana:

  • m pakait sareng menit skrip na bakal dilaksanakeun, nilaina dibasajankeun 0 dugi ka 59
  • h waktos anu pas, format 24 jam ditanganan, nilaina dibasajankeun 0 dugi ka 23, sareng 0 janten 12 tengah wengi.
  • DOM ngarujuk ka dinten sasih, contona anjeun tiasa nangtoskeun 15 upami anjeun hoyong ngaji unggal 15 dinten
  • kaseulit hartosna dinten dina saminggu, tiasa angka (0 dugi 7, dimana 0 sareng 7 dinten Minggu) atanapi 3 hurup munggaran dina dinten dina basa Inggris: mon, tue, wed, thu, pray, sat, sun.
  • nu make ngahartikeun pangguna anu bakal ngaéksekusi paréntah, éta tiasa janten akar, atanapi pangguna anu béda salami aranjeunna ngagaduhan ijin pikeun ngaéksekusi skrip.
  • parentah ngarujuk kana paréntah atanapi jalur mutlak tina skrip anu bakal dilaksanakeun, contona: /home/usuario/scripts/update.sh, upami nyauran naskah kedah dieksekusi

Janten jelas sababaraha conto tugas cron dijelaskeun:

15 10 * * * pamaké / home /user/scripts/update.sh

Éta bakal ngajalankeun skrip update.sh jam 10:15 énjing unggal dinten

15 22 * * * pamaké / home /user/scripts/update.sh

Éta bakal ngajalankeun skrip update.sh jam 10:15 wengi unggal dinten

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

Éta bakal ngajalankeun pembaruan unggal Minggu jam 10:00 enjing

45 10 ** sun root apt-get -y update

Pamaké root bakal ngajalankeun pembaruan unggal Minggu (Sun) jam 10:45

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

Tanggal 20 Nopémber jam 7:30 pangguna bakal ngajalankeun skripna

30 7 11 11 pangguna sun / home /usuario/scripts/pastel_con_velitas.sh

Tanggal 11 November jam 7:30 enjing sareng dinten Minggu, pangguna bakal ngagungkeun sysadmin na (nyaéta, kuring)

01 * * * * pamaké / home /usuario/scripts/molestorecordatorio.sh

Panginget anu ngaganggu unggal menit unggal jam unggal dinten (TEU disarankeun).

Aranjeunna masih tiasa diatur rentang khusus:

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

Jam 5:30 sonten unggal dinten ti Senen dugi ka Jumaah.

00 12 1,15,28 **

Jam 12 siang unggal kahiji, lima belas sareng 28 unggal bulan (cocog pikeun gaji)

Upami ieu matak lieur, cekel crontab senar khusus pikeun ngartikeun rentang-rentang ieu.

@reboot Run sakali, dina ngamimitian
@yearly dijalankeun ngan sakali dina sataun: 0 0 1 1 *
@walih sami sareng @yearly
@monthly dijalankeun sakali sabulan, dinten mimiti: 0 0 1 * *
@weekly Mingguan menit kahiji tina jam kahiji saminggu. 0 0 * * 0 ″.
@daily unggal dinten, tabuh 12 A.M. 00 0 * * *
@ tengah wengi sami sareng @daily
@ jam dina menit kahiji unggal jam: 0 * * * *

Anggoanana saderhana pisan.

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

Paneuri tapi sanés panutup:

Manajemén padamelan Cron

file crontab

Ganti file crontab anu aya ku file anu ditetepkeun ku pangguna

-e crontab

Edit file crontab pangguna, unggal garis énggal bakal janten tugas crontab énggal.

-l crontab

Daptar sadaya tugas crontab pangguna

crontab -d

Hapus crontab pangguna

crontab -c dir

Nangtukeun diréktori crontab pangguna (ieu kedah aya pangguna nyerat sareng ngaéksekusi idin)

pangguna crontab -u

awalan pikeun nanganan crontab pangguna sanés, conto:

$ sudo crontab -l -u root $ sudo crontab -e user2 #crontab -d -u pamaké

Alat ieu, sapertos anu sanésna, tiasa ditingali langkung jero sareng langkung jéntré dina:

Nuhun Lucain!

Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

48 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   Gambar placeholder Alvaro Ortiz cenahna

    Heu ... rada lieur.

  2.   obat kuat cenahna

    * / 30 leungit (dina lapangan menit) anu ngalir unggal 30 menit ...

    1.    erm3nda cenahna

      Ngan ieu kuring badé masihan koméntar dugi ka kuring mutuskeun ngulas koméntar 😀
      Modifier ieu mangrupikeun inpormasi anu penting pisan sareng anu gunana pisan.

      1.    KIKA cenahna

        Hello!
        Ayeuna kuring nyobian uji konfigurasi unggal 45 menit.

        * / 45 * * * *, sareng pitunjukna dilaksanakeun dina 45 menit unggal jam AND unggal jam. Maksudna:

        Éta dijalankeun dina 3:45, teras 4:00, 4:45, teras 5:00, 5:45, 6:00, 6:45, sareng sajabina.

        Kuring aya anu lepat? Naon anu kuring tiasa lakukeun pikeun ngan ukur unggal 45 menit, atanapi sahenteuna sakali dina 45 menit unggal jam.

    2.    KIKA cenahna

      Hello!
      Ayeuna kuring nyobian uji konfigurasi unggal 45 menit.

      * / 45 * * * *, sareng pitunjukna dilaksanakeun dina 45 menit unggal jam AND unggal jam. Maksudna:

      Éta dijalankeun dina 3:45, teras 4:00, 4:45, teras 5:00, 5:45, 6:00, 6:45, sareng sajabina.

      Kuring aya anu lepat? Naon anu kuring tiasa lakukeun pikeun ngan ukur unggal 45 menit, atanapi sahenteuna sakali dina 45 menit unggal jam.

  3.   Slack cenahna

    Halo super mangpaat inpormasi pikeun netelakeun kumaha jalanna cron.
    bait

  4.   Slack cenahna

    pikeun *

  5.   Hunter cenahna

    Saé pisan, hatur nuhun kanggo netelakeun kumaha jalanna cron .. hayu urang pasang sakedik 🙂

  6.   Jacob cenahna

    Baris ieu sakumaha kuring ngartos éta bakal dieksekusi jam 10:15 wengi, lereskeun upami kuring lepat
    Nya di dinya éta nyarios 10:15
    15 22 * * * pamaké / home /user/scripts/update.sh

  7.   Agustín cenahna

    Halo! inpo anu saé pisan.
    Pikeun ngajalankeun Naskah unggal satengah jam, garis anu kedah ditambihan kana CronTab nyaéta: "30 * * * * root Scrip.sh" Leres? Hatur nuhun pisan!

  8.   hayu urang nganggo linux cenahna

    Henteu Upami kuring émut leres, pikeun éta anjeun kedah nempatkeun / 30 * * * * root Scrip.sh.
    Nyaéta, tambihan / sateuacan 30.
    Surak! Paul.

  9.   Jonathan cenahna

    Halo Kuring resep tulisan anjeun, éta lengkep pisan tapi kuring hoyong naroskeun hal.
    Abdi ngagaduhan masalah sareng paréntah ieu sareng sapertos sapertos "at".

    Abdi hoyong ngajalankeun skrip dina waktos anu tangtu sareng nempatkeun

    di -f / home /mi_user/Desk/script.sh 18:08 conto

    sareng skrip na henteu dieksekusi dina layar, nyaéta, dina terminal, naha éta dieksekusi di tukang?

    Sareng ku cron hal anu sami kajadian ka kuring, kuring ngédit file crontab nganggo "crontab -e"

    dina tungtungna kuring nambihan garis ieu:

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

    sareng henteu ngalakukeun nanaon, éta henteu nunjukkeun naskah na.

    Aya saran? Hatur nuhun pisan sareng nyungkeun hapunten bilih aya kasulitan

    1.    hayu urang nganggo linux cenahna

      Pikeun terminal némbongan, anjeun panginten kedah ngajalankeun terminal sareng ngalirkeun skrip salaku parameter.

      Contona:

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

      Parameter anu dianggo tiasa bénten-bénten dumasar kana émulator terminal anu anjeun anggo.

      Kuring miharep éta hasil.

      Peluk! Paul.

  10.   patretcas cenahna

    Kontribusi na ngaapresiasi.

    10 poin !!

    salam2!!

  11.   Rodolfo cenahna

    Hatur nuhun pisan, éta ngabantosan kuring pisan pikeun netelakeun sababaraha hal, total hatur nuhun, pikeun langkung seueur detil atanapi mamang kuring bakal angkat ka MAN PAGE, salam deui.

  12.   jahir cenahna

    lalaki hatur nuhun pisan, kuring parantos maca sareng ngetés conto na. hatur nuhun pisan ... kahartos pisan. Surak

  13.   Geovanni cenahna

    Kuring nganggo ubuntu Server 12.04.2 LTS, sareng versi crontab anu kuring gaduh, pikeun mupus daptar padamelan pangguna anu dianggo, crontab -r (sareng -l, sakumaha ceuk manual ieu). Pasti éta ku sual vérsi.

    Di sisi anu sanésna, kuring sakali ngaji ukur crontab sareng jinis ieu hayu atuh ngadamel file eksekusi kuring sorangan, tapi ieu sanés anu dilaksanakeun. Anu ngalir nyaéta anu dina / jsb / crontab. meureun aya anu bakal ngagunakeun koméntarna.

    PS (Kuring milarian sareng milarian sareng dimana crontab tapi éta ngan ukur nyungkeun alamat di luhur sareng file anu sanés anu énkripsi, janten upami anu dieksekusi nyaéta anu di / jsb / crontab, tapi nalika ngajalankeun paréntah crontab -e, tambang bakal katingali sareng sadaya padamelan anu kuring parantos tangtukeun) dimana file ieu disimpen '???? Salam. Kuring salawasna log in nganggo root.

  14.   Sebastian cenahna

    Alus pisan, mangpaat pisan !!!

  15.   mmm cenahna

    Halo, abdi hoyong ngalakukeun ieu ………… «15 10 * * * root ifdown eth0»

    nyaéta, dina waktos anu tangtos kartu jaringan pareum ………… ogé, kuring nempatkeun kana crontab sareng éta henteu jalan …… .. aya naon?

    Salam tur nuhun

  16.   Miguel cenahna

    Anjeun lasut ngahartikeun "mon" saatos judulna "Add task to crontab"

    Tulisanna masih saé, cron seueur pisan gunana.

  17.   OScar cenahna

    Kumaha asik éta tulisan anu saé, taroskeun ka kuring
    Upami kuring hoyong ngalacak rékaman anu ditingal ku ngajalankeun tugas, dimana kuring tiasa ningali éta?

    nyaéta decdir Abdi hoyong ningali sajarah tindakan anu dilakukeun dina jaman baheula file ieu sareng kuring hoyong ningali saha anu parantos ngarobih sareng tanggal na

    Gracias

  18.   Oscar cenahna

    Abdi hoyong parios sajarah modifikasi ieu

    kumaha kuring tiasa ngalakukeun éta

    Gracias

  19.   Andres Ledo cenahna

    Alus isuk,

    Kuring pikir yén dina naskah ubuntu anjeun parantos ngalakukeun kasalahan, anjeun parantos nempatkeun ap-get -y ningkatkeun tibatan apt-get -y upgrade. (Anjeun parantos ngantunkeun t).

    Hiji salam.

    1.    hayu urang nganggo linux cenahna

      Nya kitu ogé. Hatur nuhun!
      Peluk! Paul

  20.   Jibril cenahna

    Abdi hoyong terang kumaha ngadamel file cron supados tiasa nangtoskeun waktos masing-masing nalika dieksekusi, diréktori, jst.

  21.   Valentin cenahna

    Hatur nuhun pikeun netelakeun operasi sareng paréntah dasar pikeun cron, ayeuna pikeun ngahibur diri sakedik.

  22.   Sander cenahna

    Iraha waé kuring milari inpormasi ngeunaan topik naon waé anu aya hubunganana sareng Gnu / Linux, kuring buleud-buleud pikeun salawasna milarian dina 90% kasus tutorial anu pangsaéna di komunitas hébat ieu, kuring pikir ti ayeuna kuring bakal ngamimitian di dieu teras di tempat séjén.

    Wasalam

    1.    hayu urang nganggo linux cenahna

      Nuhun Sander! Rangkulan! Paul.

  23.   daryo cenahna

    dom = dinten bulan
    dow = dinten minggu
    langkung gampil upami anjeun gaul

  24.   Pascual cenahna

    Hatur nuhun pisan, lengkep sareng jelasna.

  25.   Maxillia cenahna

    Ieu hal anu sami sareng guru Sistem Operasi anu dipasihkeun ka kami, kuring henteu ngarobih nanaon, ayeuna kuring ningali naha kelasna goréng pisan .-.

  26.   Marcelo cenahna

    Diperkirakeun,

    Patarosan, naha waktos lilana tugas diwatesan?
    Misalna kuring gaduh tugas anu ngulang nyalira unggal 5 menit, dina pangulangan upami tugas éta masih aktip, ngantep éta maéhan deui sareng ngajalankeunana deui.

    hatur nuhun,
    Marcelo.-

    1.    hayu urang nganggo linux cenahna

      Halo, Marcelo!

      Kuring pikir éta bakal langkung saé upami anjeun nimbalankeun patarosan ieu dina jasa tanya jawab urang disebut Tanya FromLinux sahingga sakumna masarakat tiasa ngabantosan anjeun dina masalah anjeun.

      Rangkulan, Pablo.

  27.   aj cenahna

    pos anu saé.
    Naon paréntah per terminal pikeun nambihan tugas kana crontab (tanpa lebet crontab teras nambihanana sacara manual ku 'crontab -e' atanapi ngagentos crontab ku crontab anu sanés ku 'file crontab').
    Ide na nyaéta nyiptakeun skrip éksternal pikeun nambihan tugas kana crontab
    hatur nuhun

    1.    david cenahna

      sigana kuring mah anjeun tiasa nganggo 'kamandang' naon waé anu anjeun hoyong tambahkeun '| ucing >> 'jalur cronotab (/ etc / cronotab)' «

  28.   Rafael Vera cenahna

    Kumaha éksprési dilaksanakeun unggal 3 dinten persis

  29.   Jose Antonio cenahna

    Hello.

    Abdi gaduh masalah dina ngeksekusi padamelan cron.

    Kuring ngajalankeun tugas ieu sareng cronta -e:

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

    tapi tugasna henteu beres. Kuring parantos mariksa yén myfile.sh ngagaduhan ijin palaksanaan sareng yén pangguna anu ngalaksanakeunana mangrupikeun akar.

    Kuring ngajalankeun tugas anu sami dina / jsb / crontab sareng saatos ngabalikan jasa éta, éta henteu tiasa dianggo pikeun kuring ogé.
    Eusi myfile.sh mangrupikeun paréntah anu ngamutahirkeun DB sareng upami kuring ngajalankeunana dina konsol éta tiasa dianggo.
    aya ideu naon masalahna?

    1.    Fredd cenahna

      Pangguna database panginten henteu ngagaduhan ijin sareng anjeun mimitina kedah ngekspor variabel lingkungan tina mesin database anjeun.
      Misalna dina db2 garis ieu bakal asup kana awal naskah
      . / bumi / db2inst1 / sqllib / db2profile

      Alesan anu sanésna nyaéta skrip anu peryogi sambungan kana pangkalan data, jantenkeun sambungan kana basis data dina skrip

  30.   LA3 cenahna

    Kuring henteu terang yén kuring kedah nga-restart crond, kuring kantos gelut sareng ieu bari

  31.   kenya cenahna

    Aranjeunna bakal terang kumaha nunjukkeun yén tugas dijalankeun unggal akhir bulan, dina waktos anu dituduhkeun .. anu detilna nyaéta kuring henteu tiasa ngahontal kumaha kuring terang yén butuh dinten terakhir unggal bulan .. ??? Kuring kedah nyerat hiji-hiji tapi nalika akhir bulan Pébruari sumping yén biciesto éta rumit pikeun kuring ..

  32.   Yesus cenahna

    Wilujeng siang!!

    Kumaha kuring ngeureunkeun prosés anu dilaksanakeun dina crontab?

  33.   Yesus cenahna

    prosés * …………

  34.   Julianna cenahna

    Naha anjeun tiasa ngabantosan kuring? eu tenho um naskah ku minha pangarang anu teu jalan teu crontab! jб dei sadayana idin, teu aya cron khusus pribadi atanapi pangguna anu tiasa ngajalankeun éta-paling henteu aya kajadian! Abdi hoyong terang upami anjeun tiasa ngabantosan kuring, sababaraha hal sanés tiasa dianggo henteu kron! Vlws

  35.   Antoks cenahna

    Kumaha anjeun nempatkeun tugas pikeun ngajalankeun unggal dinten terakhir dina bulan (dinten: 31-30-28)?

  36.   tfercho cenahna

    Sakumaha anjeun parantos terang, paréntah su dipaké pikeun ngarobih pangguna dina konsol. Upami kuring nganggo paréntah su sapertos kieu: "pangguna anjeun" ngarobih pangguna tapi tanpa setélan "pangguna" anu pantes, upami kuring ngajalankeun su salaku: "su - user" ngarobih pangguna ku ngamuat setélan pangguna. Kalayan cron kuring nunjukkeun pangguna, tapi kumaha kuring muka setélan pangguna ieu?

  37.   ngarampog cenahna

    Sareng upami abdi hoyong ngeureunkeunana?

  38.   Regi cenahna

    pantun,
    Kuring henteu terang naon anu kuring salah, tapi kuring nuturkeun léngkahna sareng teu aya anu ngaéksekusi. Kuring parantos nyobian:
    59 * * * * / usr / bin / gedit
    * * * * * / usr / bin / gedit
    * * * * * root / usr / bin / gedit
    * * * * * usr / bin / test.sh
    * * * * * root usr / bin / test.sh

    sareng nanaon pisan. Éta henteu ngaéksekusi nanaon. Kuring parantos reboot sareng sadayana.

  39.   Ferqos cenahna

    hatur nuhun