uy - Routerni sozlash
Cron - foydalanuvchi dasturlarini ma'lum bir vaqtda ishga tushiradi. Cron sozlamalari: xususiyatlar, bosqichma-bosqich ko'rsatmalar va sharhlar Cron jadvali

(Rejalashtirilgan vazifalar) buyruqlarning jadval bo'yicha yoki qat'iy belgilangan vaqtda bajarilishini sozlash uchun ishlatiladi. Yordamida CronTab Siz aniq vaqtni belgilashingiz mumkin va siz ko'rsatgan buyruq aynan o'sha vaqtda bajariladi. Sozlang CronTab vazifa har bir marta bajariladigan tarzda mumkin oy, kun, soat Va har daqiqada yoki, masalan, har 10 daqiqada. Bundan tashqari, birlashtira olasiz, masalan, birinchi 2 soat davomida soatiga bir marta vazifani bajarishingiz kerak, keyin uni keyingi 2 soat davomida bajarmaslik kerak.

Shuningdek, qulayliklardan biri topshiriqlarni bajarish natijalarini elektron pochta orqali yuborish imkoniyatidir. Buning uchun tegishli yozuvni bosing va elektron pochtangizni kiriting.

Vazifa ustasi

bilan birinchi tanishuv Cron biz uchun bu kashfiyotdan boshlanadi Kvest ustalari. Sehrgardan foydalanib, siz oddiygina ochiladigan ro'yxatlardan tanlab, ma'muriyat haqida jiddiy ma'lumotga ega bo'lmasdan skriptlarning bajarilish vaqtini sozlashingiz mumkin. ma'lum kombinatsiya. Shuningdek, siz bajariladigan skript yoki buyruqqa yo'lni kiritishingiz kerak Cron.

Keling, tilda yozilgan skriptni ishga tushirish misolini ko'rib chiqaylik PERL, uni ishga tushirish kerak har 5 daqiqada.

Tugmani bosgandan so'ng, asosiy oyna ostida Cron paydo bo'ladi yangi kirish birinchi konfiguratsiyangiz bilan. Bunday yozuvlar soni cheklanmagan.

Endi biz qila oladigan birinchi vazifamiz bor yoqish; ishga tushirish/o'chiring, o'zgartirish yoki o'chirish Har bir vazifaning o'ng tomonida joylashgan tugmalar yordamida:

Vazifani yoqish/o'chirish;
- vazifani o'zgartirish;
- vazifani o'chirish.

CronTab-ni qo'lda sozlash.

Bo'limda ham mavjud qo'lda sozlash, bu sizga tanish bo'lganlar uchun skriptni ishga tushirish vaqtini odatiy tarzda sozlash imkonini beradi. Cron.

Vaqt, interval

Daqiqalar dan bo'lishi mumkin 0 oldin 59
dan soatlar bo'lishi mumkin 0 oldin 23
Oyning kuni boshlab bo'lishi mumkin 1 oldin 31
Balki bir oy 1 oldin 12
Haftaning kuni dan bo'lishi mumkin 0 oldin 7 , bu erda 0 va 7 yakshanba

Sozlanishi mumkin CronTab vazifalarni nafaqat ma'lum bir vaqtda bajarish
vaqt, balki har daqiqada, soatlik, har kuni, haftalik yoki oylik,
kombinatsiyadan foydalanish */x

Misollar

*/5 * * * * - buyruqni har besh daqiqada ishga tushiring
0 */3 * * * - har uch soatda ishga tushirish
0 12-16 * * * - buyruqni har soatda 12 dan 16 gacha bajaring (12, 13, 14, 15 va 16 da)
0 12,16,18 * * * - buyruqni har soatda 12, 16 va 18 soatda bajaring

*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php- har daqiqada test.php php skriptini ishga tushirish
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl- test.pl perl skriptini har soatda ishga tushirish

Jamoa

Siz uy katalogingizdan skriptga yo'lni o'rnatishingiz kerak
Masalan: public_html/cgi-bin/script.pl
Tizim belgining o'rnini bosadi ~/ (bu kombinatsiya to'liq yo'lni almashtiradi)
Bu shunday bo'ladi: ~/public_html/cgi-bin/script.pl
Agar siz belgini yo'lning oxiriga qo'ysangiz & (ampersand), keyin skript fonda ishlaydi.
Ushbu belgini o'rnatish ixtiyoriy.

ga bag'ishlangan materiallarimizda Ubuntu serveri Vaqti-vaqti bilan muayyan vazifalarni jadval asosida bajarish masalasi ko'tariladi. Har safar bir xil narsani tushuntirmaslik uchun biz yordam berishi kerak bo'lgan ushbu materialni yaratishga qaror qildik tizim ma'murlari Linuxda vazifalarni rejalashtiruvchini o'zlashtirish va undan samarali foydalanish.

Ubuntu serverida u vazifalarni rejalashtiruvchi sifatida ishlatiladi cron- interfeysli rejalashtiruvchi buyruq qatori. Bu tizimning muhim qismidir va o'rnatishdan so'ng darhol ishlay boshlaydi, turli xil tizim vazifalarini bajaradi. Bizning maqsadimiz uni o'z xizmatimizga qo'yishdir, ayniqsa bu ko'rinadigan darajada qiyin emas.

Jadvalning ikki turi mavjud cron: foydalanuvchi va tizim. Ular birinchisi foydalanuvchilar tomonidan yaratilganligi va foydalanuvchi huquqlarini hisobga olgan holda bajarilganligi bilan farqlanadi, ikkinchisi ma'muriy yoki tizim maqsadlarida ishlatiladi va har qanday foydalanuvchi nomidan ishga tushirilishi mumkin.

Shaxsiy jadvalni yaratish yoki o'zgartirish uchun buyruqni kiriting:

Crontab -e

Uni birinchi marta ishga tushirganingizda, yordamchi dastur sizga muharrirni tanlashni taklif qiladi; tanlashni tavsiya qilamiz. mcedit(mc o'rnatilgan bo'lishi kerak) yoki qanday ishlashni biladigan boshqa muharrir.

Jadval qatorlarining formati:

daqiqa soat kun month day_of_week buyrug'i

  • Daqiqa- 0 dan 59 gacha bo'lgan daqiqalarda vaqt
  • Soat- 0 dan 23 gacha
  • kun- oy kuni 1 dan 31 gacha
  • Oy- 1 dan 12 gacha yoki harf belgilari jan - dek
  • Hafta kuni- 0 dan 6 gacha (0 - yakshanba) yoki o'tirdi - quyosh
  • Jamoa- kabi yoziladigan bajariladigan buyruq tarjimoni formatidagi satr 1-jamoa va 2-jamoa ketma-ket bir nechta buyruqlarni bajarish uchun.

Daqiqalar, soatlar, kunlarning qiymatlari quyidagicha belgilanishi mumkin:

  • Ma'nosi- sana yoki vaqtni ko'rsatadigan raqam, joker belgiga ruxsat beriladi * qiymatlarning to'liq diapazoniga ruxsat berish
  • Bir nechta qiymatlar- vergul bilan ajratilgan bir nechta qiymatlarni belgilashga ruxsat beriladi, masalan, 2,14,22
  • Qiymatlar diapazoni- defis bilan ko'rsatilgan, masalan, 2-10
  • Qiymat bosqichi- kasr orqali ko'rsatilgan, maxraji qadam bo'lgan, masalan */3 - har uchinchi qiymat 0, 3, 6, 9 va boshqalar. Numerator qiymatlar oralig'i yoki yulduzcha bo'lishi kerak.

Quyidagi kirish misolini ko'rib chiqing:

0 8-19/2 * * 1 /home/ivanov/test

Bu shuni anglatadiki, dushanba kunlari soat 8 dan 19 gacha (8, 10,12,14,16) har ikkinchi soatda Ivanovning uy katalogida test skriptini ishga tushiring.

Sizni tez-tez uchraydigan xato haqida ogohlantirmoqchimiz: davriy bajarilishni ko'rsatganda, barcha sanalar aniq ko'rsatilishi kerak, yulduzcha ularning yo'qligi emas, balki qiymatlarning to'liq diapazonini ko'rsatadi. Misol uchun, agar siz har soat 10 dan 15 gacha ma'lum bir skriptni bajarishingiz kerak bo'lsa, bu noto'g'ri bo'ladi:

* 10-15 * * * /home/ivanov/test

Ushbu qator skriptni ishga tushiradi har daqiqada 10 dan 15 soatgacha. To'g'ri bo'ladi:

0 10-15 * * * /home/ivanov/test

Ushbu yozuv skriptni belgilangan diapazonning har bir soati boshida ishga tushirishga imkon beradi.

Sanaga qo'shimcha ravishda siz bir qator maxsus satrlardan foydalanishingiz mumkin:

  • @reboot- qayta ishga tushirish buyrug'ini bajarish
  • @yillik yoki @yillik- yozuvga o'xshash 1 yanvarda bajaring: " 0 0 1 1 * "
  • @oylik- har oyning 1-kuni "ga o'xshash tarzda ijro eting" 0 0 1 * * "
  • @haftalik- har yakshanba kuni bajaring, " 0 0 * * 0 "
  • @kundalik yoki @yarim tun- har kuni yarim tunda" 0 0 * * * "
  • @soatlik- soatiga bir marta " 0 * * * * "

Shunday qilib, har yarim tunda skriptimizni har kuni bajarish uchun quyidagilarni yozishingiz mumkin:

@midnight /home/ivanov/test

Jadvalni yaratishni tugatgandan so'ng, faylni saqlang va muharrirdan chiqing. Shaxsiy jadval ichida saqlanadi /var/spool/cron/crontabs joriy foydalanuvchi nomi ostida.

Tizim va ma'muriy vazifalar uchun fayl taqdim etiladi /etc/crontab Undagi yozuvlar sintaksisi qo'shimcha qiymat mavjudligi bilan ajralib turadi - uning nomidan vazifa ishga tushiriladigan foydalanuvchi:

daqiqa soat kun month day_of_week foydalanuvchi buyrug'i

Bunday yozuvga misol:

0 19 * * 1-5 root /etc/backup

Unga ko'ra, dushanbadan jumagacha soat 19:00 da stsenariy ishga tushiriladi /etc/backup foydalanuvchi nomidan ildiz.

Ushbu faylda tizim jadvallari ham mavjud, shuning uchun uni tahrirlash ehtiyotkorlik bilan amalga oshirilishi kerak. U erda barcha tizim va ma'muriy vazifalar joylashtirilishi kerak.

Ko'rib turganimizdek cron Foydalanish juda oson, lekin ayni paytda Ubuntu serverida jadvallarni o'rnatish uchun boy imkoniyatlarni taqdim etadi. Umid qilamizki, ushbu maqola ma'murlarga ushbu vositani o'zlashtirishga yordam beradi.

MIN SOAT DOM MON DOW CMD

Jadval: Crontab maydonlari va tegishli diapazonlar (Linux Crontab sintaksisi)

1. Vazifalarni muayyan vaqtga rejalashtirish

Cron dan foydalanishning asosi vazifalarni bajarishdir ma'lum vaqt quyida ko'rsatilganidek. Bu 10-iyun kuni ertalab soat 8:30 da toʻliq zaxira skriptni ishga tushiradi.

E'tibor bering, vaqt maydoni 24 soatlik formatdan foydalanadi, shuning uchun ertalab 8: 8, 20: 20.

30 08 10 06 * /home/developer/to'liq zaxira

  • 30-30 daqiqa
  • 08-08
  • 10-10 kun
  • * - Haftaning har kuni

2. Tez-tez bajarilishi kerak bo'lgan vazifalarni rejalashtiring (masalan, kuniga ikki marta)

Quyidagi skript qo'shimchalardan foydalanadi zaxira har kuni kuniga ikki marta. Ushbu misol har kuni 11:00 va 16:00 da qo'shimcha zaxiralashni amalga oshiradi. Maydondagi vergul bilan ajratilgan qiymatlar buyruq har bir belgilangan vaqtda bajarilishi kerakligini ko'rsatadi.

00 11.16 * * * /home/developer/bin/incremental-backup

00 – 0-daqiqa (soat boshlanishi) 11, 16 – 11 va 16 soat * - har kuni * - har oy * - haftaning har kuni

3. Ishni ma'lum vaqt oralig'ida rejalashtirish (masalan, faqat ish kunlarida)

Agar tartiblar har soatda ma'lum vaqt oralig'ida bajarilishini istasangiz, quyidagilardan foydalaning.

Ish soatlarida har bir kun uchun Cron tartibi

Ushbu misol ma'lumotlar bazasi holatini har kuni (shu jumladan dam olish kunlari) ish vaqtida soat 9:00 dan 18:00 gacha tekshiradi.

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0-daqiqa (soatning boshi) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (soat) * - har kuni * - har oy * - har kuni hafta

Ish vaqti davomida har bir ish kuni uchun Cron tartibi

Ushbu misol ma'lumotlar bazasi holatini har ish kuni (shanba va yakshanbadan tashqari) soat 9:00 dan 18:00 gacha tekshiradi.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0-daqiqa (soatning boshi) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (soat) * - har kuni * - har oy 1-5 - dushanba, Seshanba, chorshanba, payshanba va juma (har hafta)

4. Crontab yozuvlarini qanday ko'rish mumkin?

Foydalanuvchining joriy Crontab fayllarini ko'ring.

Crontab-l fayllaringizni yuqoridan ko'rish uchun hisob unix, quyidagilarni bajaring.

Developer@dev-db$ crontab -l @yillik /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Ildiz crontab yozuvlarini ko'ring

Ildiz foydalanuvchi (su - root) sifatida tizimga kiring va quyida ko'rsatilgandek crontab-l ni ishga tushiring.

Root@dev-db# crontab -l root uchun crontab yo'q

Boshqa foydalanuvchilarning fayllarini ko'rish uchun root sifatida tizimga kiring va quyida ko'rsatilganidek -u (foydalanuvchi nomi) -l dan foydalaning.

Root@dev-db# crontab -u foydalanuvchi nomi -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Crontab yozuvlari qanday tahrir qilinadi?

Joriy foydalanuvchi cron yozuvlarini tahrirlash.

Yozuvlarni tahrirlash uchun quyida ko'rsatilgandek cronab -e dan foydalaning. Odatiy bo'lib, foydalanuvchining joriy crontab yozuvlari tahrirlanadi.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab .XXXXXyjWkHw" 2L, 83C

Faylni saqlaganingizda, u crontabni saqlaydi va crontab muvaffaqiyatli o'zgartirilganligi haqida quyidagi xabarni ko'rsatadi.

~ "crontab.XXXXyjWkHw" 2L, 83C yozilgan crontab: yangi crontab o'rnatilmoqda

Ildiz crontab yozuvlarini tahrirlash

Ildiz foydalanuvchi (su - root) sifatida tizimga kiring va quyida ko'rsatilgandek crontab -e ni bajaring.

Root@dev-db# crontab -e

Boshqa foydalanuvchining crontab yozuvlarini tahrirlash

Boshqaning crontab yozuvini tahrirlash uchun Linux foydalanuvchisi, root sifatida tizimga kiring va quyida ko'rsatilganidek -u (foydalanuvchi nomi) -e dan foydalaning.

Root@dev-db# crontab -u username -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Cronning har daqiqada bajarilishi

Ideal holda, har daqiqada cron yugurishni rejalashtirishingiz shart emas. Ammo bu misolni tushunish ushbu maqolada tasvirlangan boshqa misollarni tushunishga yordam beradi.

Bash * * * * * CMD

* - mumkin bo'lgan birlikni anglatadi - ya'ni yil davomida har bir soatning har bir daqiqasi. Bundan tashqari, to'g'ridan-to'g'ri * dan foydalanish ko'proq bo'ladi foydali funksiya quyidagi misollarda.

Daqiqalar maydonida */5 belgisini ko'rsatish har 5 daqiqada degan ma'noni anglatadi. Daqiqalar maydonida 0-10/2ni ko'rsatish birinchi 10 daqiqada har 2 daqiqani bildiradi. Shunday qilib, ushbu konventsiya barcha 4 ta sohada qo'llanilishi mumkin.

7. Har 10 daqiqada fondagi Cron vazifalarini bajaring

Diskdagi bo'sh joyingizni har 10 daqiqada tekshirib turmoqchi bo'lsangiz, quyidagilardan foydalaning.

*/10 * * * * /home/ramesh/check-disk-space

Ushbu vazifa bir yil davomida har 10 daqiqada belgilangan diskni tekshirish buyrug'ini bajaradi. Ammo siz tekshirishni faqat ish vaqtida yoki aksincha bajarishingiz kerak bo'lishi mumkin. Yuqoridagi misollar buni qanday qilishni ko'rsatadi.

5 ta maydondagi qiymatlarni ko'rsatish o'rniga ularni quyida ko'rsatilgandek kalit so'z yordamida belgilashimiz mumkin.

5 ta maydon oʻrniga @ dan keyin kalit soʻzdan foydalanish mumkin boʻlgan maxsus shartlar mavjud – masalan, qayta yuklash, yarim tunda, har yili, har soatda.

Cron maxsus kalit so'zlari va ularning ma'nosi

8. @yearly dan foydalanib har yilning birinchi daqiqasi uchun ishni rejalashtiring

Agar siz cron ishi har yilning birinchi daqiqalarida ishlashini istasangiz, quyida ko'rsatilgandek @yearly kalit so'zidan foydalanishingiz mumkin. Bunday holda, tizim yillik ishlaydi texnik xizmat, har yili 1 yanvar kuni soat 00:00 da yillik texnik skript yordamida.

@yillik /home/developer/red-hat/bin/yillik texnik xizmat ko'rsatish

9. @monthly kalit so'zidan foydalanib, har oy vazifalarni bajaring

Bu yuqoridagi @yearly ga o'xshaydi. Ammo buyruq har oy bajariladi. Buyruq har oyning birinchi kuni soat 00:00 da zaxiralashni amalga oshiradi.

@oylik /home/ramesh/suse/bin/tape-backup

10. @daily yordamida har kuni vazifalarni bajaring

@daily kalit so'zidan foydalanish har kuni soat 00:00 da jurnalni tozalash uchun kundalik jurnal faylini yaratadi.

@daily /home/developer/arch-linux/bin/cleanup-logs "kun boshlandi"

11. @reboot yordamida har bir qayta ishga tushirilgandan so'ng Linux buyrug'i qanday bajariladi?

@reboot kalit so'zidan foydalanish tizim har safar yuklanganda belgilangan buyruqni bajaradi.

@rebootCMD

13. 12. MAIL kalit so'zi yordamida Crontab chiquvchi xatni qanday o'chirish/yo'naltirish mumkin?

Odatiy bo'lib, crontab topshiriqlar natijasini vazifani o'rnatgan foydalanuvchiga yuboradi. Agar siz ularni boshqa foydalanuvchiga yo'naltirmoqchi bo'lsangiz, quyida ko'rsatilgandek crontab-ga MAIL o'zgaruvchisini qo'shing yoki yangilang.

Developer@dev-db$ crontab -l MAIL="developer" @yillik /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Agar siz xat yuborilishini umuman oldini olishni istasangiz, ya'ni crontab chiqish fayllarini jo'natishni to'xtating, quyida ko'rsatilgandek crontab-ga MAIL o'zgaruvchisini qo'shing yoki yangilang.

13. Crontab yordamida Linux Cron Jobs-ni har soniyada qanday ishga tushirish mumkin

Siz cronni har soniyada ishlashga sozlay olmaysiz. Chunki cronni bajarishning minimal birligi daqiqadir. Oddiy stsenariyda har soniyada cron ijrosini bajarishning hojati yo'q.

14. Crontabda PATH o'zgaruvchisini ko'rsatish

Yuqoridagi barcha misollarda biz mutlaq yo'lni ko'rsatdik Linux buyruqlari yoki bajariladigan qobiq skripti.

Masalan, /home/developer/tape-backup ni belgilash o'rniga, agar siz faqat tape-backup ni belgilamoqchi bo'lsangiz, /home/developer yo'lini qo'shing. PATH o'zgaruvchisi crontab-da quyida ko'rsatilganidek.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yillik yillik texnik xizmat ko'rsatish */10 * * * * disk maydonini tekshirish

15. Cron faylidan Crontabni o'rnatish

Crontab faylini to'g'ridan-to'g'ri tahrirlash o'rniga, barcha yozuvlarni cron fayliga qo'shishingiz mumkin. Agar faylda ushbu yozuvlar bo'lsa, ularni quyida ko'rsatilgandek cronga tashlashingiz yoki o'rnatishingiz mumkin.

Eslatma: Bu sizning crontabingizda cron-file.txt faylini yaratadi, bu oldingi cron yozuvlarini olib tashlaydi. Shuning uchun cron-file.txt dan cron yozuvlarini yuklashda ehtiyot bo'ling:

developer@dev-db$ crontab -l dasturchi uchun crontab yo'q $ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space developer@dev -db$ crontab cron-file.txt developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Tizimda Linux Ishlarning avtomatik boshlanishi crond daemon tomonidan amalga oshiriladi va rejalashtirish avtomatik ishga tushirish Nafaqat tizim administratori, balki foydalanuvchilar ham vazifalarni bajarishi mumkin.

Crond qanday ishlaydi?

Crond demonining printsipi oddiy. Ishga tushgandan so'ng (odatda tizim ishga tushganda) daemon har daqiqada uyg'onadi va shu daqiqada biron bir dastur ishga tushishi rejalashtirilganligini tekshiradi. Agar bunday dasturlar topilsa, demon ularni ishga tushiradi va ularni ishga tushirishni rejalashtirgan foydalanuvchilarga elektron pochta xabarlarini yuboradi.

Vazifalarni rejalashtirish

Jadvalni tuzish qiyin ish emas. Jadval alohida crontab faylida joylashgan. Faylning har bir satri ma'lum bir vaqtda bajarilishi kerak bo'lgan vazifani o'z ichiga oladi.

Crontab fayl formati

Vaqt sanasi qismi bo'sh joy bilan ajratilgan beshta raqamli maydondan iborat bo'lib, ular ish bajariladigan vaqtni belgilaydi:

Ushbu maydonlarni to'ldirish qulayligi uchun quyidagi qoidalar joriy etildi:

  • Siz qiymatlarni raqamli intervallar sifatida belgilashingiz mumkin. Seshanba, chorshanba yoki payshanba - Misol uchun, soat sohasida 1-3 oralig'i 1.00, 2.00 va 3.00 yarim tunda, hafta maydonida 2-4 ni bildiradi.
  • Intervallar birdan kattaroq qadamlar bilan o'rnatilishi mumkin. Misol uchun, yarim tunda boshlangan har ikkinchi soatni ko'rsatish uchun siz oraliqni 0-23 ga 2 ga oshib, qiyshiq chiziq bilan ajratgan holda o'rnatasiz: 0-23/2
  • Yulduzcha (*) maydon qiymatlarining to'liq diapazonini ko'rsatadi - minimaldan maksimalgacha. Masalan, oy maydonida yulduzcha 0-31 oralig'ini, hafta kuni maydonida - 0-7 oralig'ini bildiradi.
  • Haftaning yoki oyning kuni uning (inglizcha) nomining birinchi uchta harfi bilan ko'rsatilishi mumkin

Vaqt sanasiga misollar

Vaqt-sana maydonlarini to'ldirishning bir nechta misollari:

0 1 * * * Vazifani har kuni soat 1.00 da bajaring 30 14 * * 0 Yakshanba kuni soat 14.30 da topshiriqni bajaring 0 23-7/2.8 * * * Vazifani har 2 soatda 23.00 dan 7.00 gacha va 8.00 0 12 * da bajaring. 1 oy Ishni har yili yanvar oyining har dushanba kuni tushda bajaring 0 12 2 fevral * Ishni har yili ikkinchi fevral kuni tushda bajaring

Buyruqlar maydoni

Buyruqlar maydoni sana-vaqt maydonlaridan bir yoki bir nechta bo'shliqlar bilan ajratiladi va satr oxirigacha cho'ziladi. Buyruqlar /bin/sh qobig'i tomonidan qayta ishlanadi.

Masalan, quyidagi crontab yozuvi har kuni soat 1:00 da /usr/sbin/backup ishga tushirishni talab qiladi:

0 1 * * * /usr/sbin/backup

Ba'zi buyruqlar (masalan, pochta) standart kiritish qurilmasidan kiritishni talab qiladi. Bu foiz belgisi (%) yordamida ko'rsatilgan. Birinchi bunday belgi standart kiritish boshlanishini ko'rsatadi, har bir keyingi belgi chiziq o'zgarishini bildiradi.

Crontab faylini tahrirlash

Crontab fayli crontab -e buyrug'i bilan tahrirlanadi. Ikki yondashuv mumkin:

  • crontab fayliga kiritilishi kerak bo'lgan barcha yozuvlar bilan yangi fayl yaratish va keyin crontab buyrug'i yordamida uni shu nom bilan diskka yozish;
  • crontab -e buyrug'i yordamida faylni to'g'ridan-to'g'ri tahrirlash.

Fayldan yozish

Crontab faylining mazmunini boshqa fayldan yozish uchun siz boshqa faylni yaratishingiz kerak (odatda matn muharriri) crontab faylini tashkil qilishi kerak bo'lgan barcha yozuvlar bilan. Bu, masalan, quyidagi yozuv bo'lishi mumkin:

0 1 * * * /usr/sbin/backup

Yaratilgan faylga mos nom berilishi kerak, masalan, cron ishlari. Belgilangan fayl yaratilgandan so'ng, uning mazmuni crontab fayliga buyruq bilan yozilishi kerak:

~$ crontab cronjobs

Cronjobs faylining mazmuni crontab faylining mazmunini to'liq almashtiradi berilgan foydalanuvchi. Ushbu usul yordamida har qanday foydalanuvchi o'zining crontab faylini tahrirlashi mumkin. Superuser boshqa foydalanuvchilarning crontab fayllarini tahrirlash uchun maxsus huquqlarga ega. Birovning faylini tahrirlash -u bayrog'i bilan belgilanadi. Masalan, buyruq bilan:

~# crontab -u oleg cronjobs

cronjobs fayli oleg foydalanuvchisining crontab fayli sifatida yozilgan.

Crontab faylini to'g'ridan-to'g'ri tahrirlash

Crontab buyrug'i alohida fayl yaratishning ko'p bosqichli operatsiyasidan qochish imkonini beradi. Agar siz crontab buyrug'ini -e opsiyasi bilan bersangiz, crontab faylini to'g'ridan-to'g'ri tahrirlashingiz mumkin.

Odatiy bo'lib, -e opsiyasi bilan crontab buyrug'i yordamida crontab fayli muharrirga yuklanadi. muharrir Vi- tajribali foydalanuvchilar orasida mashhur bo'lgan kuchli, murakkab vosita Unix. Boshqa muharrirni afzal ko'rgan kishi, masalan. Xedit, mos keladigan qiymatni o'rnatishi mumkin atrof-muhit o'zgaruvchisi MUHARRIRI:

~$ eksport EDITOR=xedit

Shundan so'ng, buyruqni kiriting

crontab faylini belgilangan muharrirda ochilishiga olib keladi.

O'xshash muntazam foydalanuvchi o'zining crontab faylini tahrirlashi mumkin, superuser boshqa foydalanuvchilarning crontab fayllarini tahrirlashi mumkin. Buning uchun buyruqdan foydalaning:

~# crontab -u foydalanuvchi nomi -e

Crontab faylini ko'rish

Crontab faylining mazmunini ko'rish uchun buyruqni kiriting:

Superuser boshqa foydalanuvchilarning crontab fayllarini ko'rishi mumkin:

~# crontab -u foydalanuvchi nomi -l

Crontab faylini o'chirish

Crontab faylining mazmunini o'chirish uchun foydalanuvchi buyruqni kiritadi:

Superuser boshqa foydalanuvchilarning crontab fayllarini o'chirib tashlashi mumkin.

Unix-ga o'xshash operatsion tizimlarda foydalanuvchi dasturlarini foydalanuvchi tomonidan belgilangan vaqtda ishga tushirish mumkin. Buning uchun cron vazifalarni rejalashtiruvchisi qo'llaniladi, u foydalanuvchilardan ko'rsatmalar oladi va olingan skriptlar bo'yicha har qanday vazifalarni bajaradi. Bizning mijozlarimiz ushbu xususiyatdan davriy vazifalarni bajarish uchun foydalanishlari mumkin.

ISPmanager 5 paneli yordamida cronni qanday sozlash mumkin

Bo'limdagi boshqaruv paneli orqali cron skriptlarini o'rnating Tizim → Rejalashtiruvchi

Yangi vazifalar qo'shish uchun bosing "Yaratmoq". Interaktiv cron skript muharriri ochiladi:


Dalada "Jamoa" skriptning to'liq yo'lini yoki bajarilishi kerak bo'lgan buyruqni belgilang (tizim buyruqlari uchun to'liq yo'l ko'rsatilmasligi mumkin). Masalan, saytning ildizida joylashgan script.pl faylining to'liq yo'li quyidagicha ko'rinadi:

/var/www/u12345/data/www/script.pl

Ishlamoqchi boʻlgan faylda fayl egasi uchun oʻqish+bajarish (r+x) ruxsati borligiga ishonch hosil qiling. Buyruq yordamida ruxsatlarni keraklilarga o'zgartirishingiz mumkin:

Chmod 750 script.pl

Dalada "Ta'rif" siz ushbu skript nima qilishini unutmasligingiz uchun eslatma qilishingiz mumkin

Baza- qatorda sanab o'tilgan variantlardan birini tanlaysiz "Yugurish": har soatda, har kuni, haftalik, oylik, yillik, ishga tushirilganda.

Mutaxassis- ishga tushirish chastotasini moslashuvchan sozlash: daqiqalar, soatlar, oylar, oylar, hafta kunlari (0 - yakshanba). Kirish formati: * - barcha daqiqalar; */n - har n daqiqada; n - n daqiqaning boshidan; a,b,c-e - a,b,c,d,e daqiqalarining boshidan

Misollar asosiy rejim ishga tushirish chastotasi sozlamalari:



Ishga tushirish chastotasini sozlash uchun ekspert rejimiga misollar:

  • vazifani soatiga bir marta 05 daqiqada bajaring

  • dushanba kuni soat 1:15 da vazifani bajaring

  • har yili 5 aprel kuni 0 soat 1 daqiqada topshiriqni bajaring

Barcha maydonlar to'ldirilganda (.dan tashqari "Ta'rif", bu ixtiyoriy), bosing "KELISHDIKMI".

Skriptning bajarilishi haqida elektron pochta orqali hisobotlarni yuborish

Bildirishnomalarni sozlash uchun skriptning bajarilishi haqidagi bildirishnomalar yuboriladigan elektron pochta manzilini belgilang. Buning uchun bo'limga o'ting "Rejalashtiruvchi"


Tugmani bosing "Sozlamalar" va dalada "E-pochta manzili" skriptning bajarilishi haqida bildirishnomalar yuborilishi kerak bo'lgan elektron pochta manzilini belgilang.


Skript sozlamalarida yonidagi quti mavjudligiga ishonch hosil qiling "Hisobotni elektron pochta orqali yubormang".

Ssh orqali cronni qanday sozlash kerak

Cron skriptlarini sozlash unix qobig'i orqali amalga oshiriladi. Qaysi dasturlarni ishga tushirish kerakligini aniqlang va server diskida ularga to'liq yo'llarni toping. Buning uchun cd buyrug'i yordamida siz ishlayotgan dastur joylashgan katalogga o'ting va pwd buyrug'i bilan ushbu katalogga to'liq yo'lni bilib oling. Yo'l shunday ko'rinishi mumkin - /home/u12345/scripts/script.pl.

Faylda skriptni ishlatayotgan foydalanuvchi uchun oʻqish+bajarish (r+x) ruxsati borligiga ishonch hosil qiling. Buyruq yordamida ruxsatlarni keraklilarga o'zgartirishingiz mumkin chmod 750 script.pl

750 - to'liq huquqlar fayl egasi, guruh - o'qish va bajarish, boshqalar - kirish taqiqlanadi.

Buyruqni ishga tushiring crontab -e - rejalashtiruvchi siz nomidan cron ishlatayotgan foydalanuvchining rejasini o'zgartiradi. Uni birinchi marta ishga tushirganingizda, sizdan matn muharririni tanlash so'raladi. Siz allaqachon tanish bo'lgan muharrirni tanlang. Misol tariqasida biz vi matn muharririni ko'rib chiqamiz. Buyruqni kiritganingizdan so'ng, siz vi (n) matn muharririda bo'lasiz, u erda siz cron skripti matnini kiritishingiz mumkin.

vi muharririga tezkor havola:

  • matn kiritish uchun i tugmasini bosing, so‘ng matnni kiriting
  • Belgilarni o'chirish uchun ESC tugmasini bosing va keyin x yozing
  • O'zgartirishlaringizni saqlamasdan vi dan chiqish uchun ESC tugmasini bosing va keyin: q!
  • Saqlash va chiqish uchun ESC tugmasini bosing va keyin: wq yozing

Cron ishlari har bir satrga bittadan yoziladi. Har bir satrdan keyin, shu jumladan oxirgi yoki faqat bittadan keyin, Enter tugmasini bosganingizga ishonch hosil qiling, aks holda vazifalar ishlamaydi.

Vazifa ipga o'xshaydi. Boshida ishning chastotasini ko'rsatish uchun bo'sh joy bilan ajratilgan beshta majburiy maydon mavjud. Ishga tushirish uchun quyidagi buyruq mavjud:

maydon1 maydon2 maydon3 maydon4 maydon5 jamoa

Birinchi beshta maydonning qiymatlari:

  • daqiqa - 0 dan 59 gacha bo'lgan raqam
  • soat - 0 dan 23 gacha bo'lgan raqam
  • oyning kuni - 1 dan 31 gacha bo'lgan raqam
  • yil oyining soni - 1 dan 12 gacha bo'lgan raqam
  • haftaning kuni - 0 dan 7 gacha bo'lgan raqam (0-yaks,1-dus,2-shanba,3-chors,4-pay,5-juma,6-shanba,7-yaks)

Har bir aniq parametr uchun siz vergul bilan ajratilgan bir nechta qiymatlarni belgilashingiz mumkin. Misol uchun, agar siz "soat" maydoniga 1,4,22 yozsangiz, u holda vazifa ertalab soat 1, 4 va 22 da ishlaydi. Siz intervalni o'rnatishingiz mumkin - 4-9 dasturni har soatda 4 dan 9 soatgacha ishga tushirish kerakligini anglatadi.

Belgi «*» "barcha mumkin bo'lgan qiymatlar" degan ma'noni anglatadi. Yulduz «*» "soat" maydonida "har soatda yugurish" degan ma'noni anglatadi. Belgi «/» vazifaning qo'shimcha chastotasini ko'rsatish uchun xizmat qiladi. Masalan, "*/3""soat" maydonida har uch soatda degan ma'noni anglatadi. Agar "oy kuni" va "hafta kuni" maydonlari aniqlangan bo'lsa (* ga teng bo'lmasa), unda bunday vazifa oy kunidan qat'i nazar, haftaning har bir belgilangan kunida bajariladi.

13 13 10 * 5 /home/u12345/script.pl

bunday buyruq har juma va oyning har 10 kuni soat 13:13 da, hatto 10-kuni juma kuniga to'g'ri kelmasa ham, bajariladi.

Cron tizim ishga tushganda skriptlarni ishga tushirishga imkon beradi - ishga tushirish chastotasi o'rniga skript boshida @reboot ni belgilang:

@reboot /home/u12345/script.pl

Oddiy cron skripti shunday ko'rinadi:

0 */3 * * 2.5 /home/u12345/script.pl

/home/u12345/script.pl skripti seshanba va juma kunlari har uch soatda avtomatik ravishda ishlaydi. Bunday skriptni vi muharririga kiriting, chiqing va tahrirlash natijalarini saqlang. Agar siz hech qanday xato qilmagan bo'lsangiz, vazifa belgilangan chastotada bajariladi.

Cron skriptdagi xatolar haqida xabar beradi:

/tmp/crontab.xxxxxxx: 1 qator, 9 ta belgi crontab: yangi crontab "/tmp/crontab.xxxxxxx" o'rnatilmoqda: 1: yomon daqiqa crontab: crontab faylida xatolar, o'rnatib bo'lmadi. Xuddi shu tahrirni qaytadan urinib ko'rmoqchimisiz?

Siz crontab -l buyrug'i yordamida cron-da allaqachon o'rnatilgan skriptlar ro'yxatini ko'rishingiz mumkin:

Bash-2.05b$ crontab -l 0 */3 * * 2.5 /home/u12345/script.pl

Agar siz kuniga bir marta dasturni ishga tushirishingiz kerak bo'lsa, tungi vaqtni tanlang. Ertalab soat 2 dan 8 gacha serverlardagi yuk minimaldir. Agar dastur juda ko'p resurslarni talab qilsa, u kechasi kunduzgidan ko'ra tezroq ishlaydi.

Crondan foydalanishga misollar

  • vazifani soatiga bir marta 0 daqiqa davomida bajaring - 0 */1 * * * /home/u12345/script.pl
  • vazifani har uch soatda 0 daqiqada bajaring - 0 */3 * * * /home/u12345/script.pl
  • dushanba kuni soat 1:15 da vazifani bajaring - 15 1 * * 1 /home/u12345/script.pl
  • har yili 5 aprel kuni 0 soat 1 daqiqada topshiriqni bajaring - 1 0 5 4 * /home/u12345/script.pl
  • har oy 1 kuni ertalab soat 6:10 da vazifani bajaring - 10 6 1 * * /home/u12345/script.pl

PHP skriptini jadval bo'yicha qanday ishga tushirish kerak

Skriptlarni ishga tushiring PHP tili PHP-CLI tarjimoni yordamida kerakli chastotada belgilangan vaqtda.. script.php skriptini ishga tushirish buyrug'i shunday ko'rinishi mumkin - /usr/bin/php -q $HOME/script.php> /dev/null 2>&1

Barcha PHP dasturlari SAPI CLI orqali oldindan o'zgartirishlarsiz ishlay olmasligi sababli, ularni wget orqali ishga tushirishingiz mumkin:

/usr/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Yordamchi dasturlarga yo'lni ildizdan to'liq belgilang fayl tizimi. Agar skript bajarilgan skript boshida nisbiy yo‘llarni ko‘rsatuvchi talab va o‘z ichiga funksiyalaridan foydalansa, joriy ishchi katalogni o‘rnatadigan chdir() funksiyasiga qo‘ng‘iroq qiling. Yoki o'rnatilgan CD buyrug'idan foydalaning.

@reboot cd /home/u12345 && ./script.pl

Cron tomonidan boshqariladigan dasturlardan xato xabarlarini qanday olish mumkin

Vaqti-vaqti bilan ishlaydigan ishlarning ishlashini to'liq nazorat qilish uchun dasturlarni ishga tushirishda xato xabarlarini olishingiz mumkin. Buning uchun cron skriptining boshiga quyidagi qatorni qo'ying:

[email protected], bu erda "[email protected]" manzili Elektron pochta, bildirishnomalar qayerga keladi. Bir nechta manzillarni belgilash uchun ularni vergul bilan ajrating.

Siz cron har safar topshiriqni bajarganida skriptlar chiqadigan elektron pochta xabarini olasiz. Agar siz “Salom, dunyo” qatorini chop etuvchi skript yozsangiz va uni cron orqali ishga tushirsangiz, cron har safar bunday skriptni ishga tushirganida “Salom, dunyo” qatorli elektron xat olasiz.

Agar sizga skript orqali matn chiqishi kerak bo'lmasa, cron skript qatorining oxiriga > /dev/null 2>&1 belgilarini qo'shing.

Cron uchun to'liq chiziq quyidagicha ko'rinadi:

0 1 * * * /usr/bin/php -q $HOME/script.php > /dev/null 2>&1

Cron orqali ishga tushirish uchun o'rnatgan skriptlarning to'g'ri sintaksisini tekshiring. Skriptlar xatolarni o'z ichiga olishi mumkin va cron orqali emas, balki veb-server orqali ishga tushirilganda boshqacha ishlaydi va hokazo. Ishga kirishishdan oldin unix qobig'idagi buyruq bilan skriptni tekshiring:

/usr/bin/php -l script.php

Agar skriptda xatolik bo'lmasa, siz "script.php da sintaksis xatosi aniqlanmadi" xabarini ko'rasiz.

Skriptni foydalanuvchi sifatida qanday ishlatish kerak

Tizim xavfsizligini oshirish uchun skript ma'lum bir foydalanuvchi nomidan ishga tushiriladi. Foydalanuvchining skriptni ishga tushirish huquqiga ega ekanligiga ishonch hosil qiling. Uni skriptning asosiy qismidan oldin joylashtiring su -l foydalanuvchi nomi, undan skriptni ishga tushirmoqchisiz.

Masalan, TeamSpeak3 serverini ts3server foydalanuvchisi sifatida ishga tushirish uchun quyidagi buyruqdan foydalaning:

Su -l ts3server ./ts3server_startscript.sh ishga tushirildi

Skript foydalanuvchining uy katalogida joylashgan bo'lib, biz avtorizatsiya paytida avtomatik ravishda o'tamiz.

Cheklovlar

Cron orqali ishga tushiriladigan dasturlar uchun iste'mol qilinadigan resurslarga nisbatan xuddi shunday cheklovlar foydalanuvchi tomonidan unix qobig'ida ishga tushirilgan jarayonlarga nisbatan qo'llaniladi. Gap dasturning bajarilish vaqtiga, mavjud xotira hajmiga, fayl hajmiga cheklovlarga va hokazolarga cheklovlar haqida bormoqda.



 


O'qing:



Hujjat sanasi uchun narxlarni soʻrovda olish. Hisobotni fayl sifatida saqlaymiz.

Hujjat sanasi uchun narxlarni soʻrovda olish. Hisobotni fayl sifatida saqlaymiz.

Ko'pincha "Sana" tipidagi o'zgaruvchilar bilan ishlashga ehtiyoj bor. Ushbu maqolada biz asosiy texnikani ko'rib chiqamiz - oqimni uzatish ...

1c 8.3 ni domenga o'rnatish. Umumiy tarmoq katalogi orqali ko'p sonli kompyuterlarda platformani o'rnatish va yangilash. Umumiy tarmoq katalogining joylashuvini belgilaydigan konfiguratsiya fayli

1c 8.3 ni domenga o'rnatish.  Umumiy tarmoq katalogi orqali ko'p sonli kompyuterlarda platformani o'rnatish va yangilash.  Umumiy tarmoq katalogining joylashuvini belgilaydigan konfiguratsiya fayli

Xo'sh, 1C bizga dasturiy ta'minotni joylashtirishning qanday usullarini taklif qiladi? 1. Kirish skripti yordamida o'rnatish 2. Umumiy holda joylashtirish orqali o'rnatish...

1s 8 qiymatlar jadvalining satrlarini takrorlash

1s 8 qiymatlar jadvalining satrlarini takrorlash

Yangi boshlanuvchilar uchun kichik bir fakt - qiymatlar jadvali bilan ishlashning oddiy misollari: 1. Qiymatlar jadvalini yaratingValueTable = Yangi...

Pochta orqali yuborilgan posilkaning trek raqamini qanday topish mumkin

Pochta orqali yuborilgan posilkaning trek raqamini qanday topish mumkin

Qimmatbaho posilkalar va xatlar ko'pincha pochta orqali yuboriladi. Yuboruvchilar ularning xavfsizligidan xavotirda, biroq maxsus xizmatlar tufayli hozir...

tasma tasviri RSS