درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره های توسینسو
دوره آموزشی فوق تخصصی Shell Scripting در BASH Shell
مدرس: محمد عابدینی
این دوره را در 19 قسط خریداری کنید
آموزش نصب سیستم عامل اندروید روی کامپیوترهای شخصی با Android PC
مدرس: محمد عابدینی
این دوره را در 1 قسط خریداری کنید
دوره آموزشی راه اندازی ایمیل سرور iRedMail در OpenBSD
مدرس: محمد عابدینی
این دوره را در 2 قسط خریداری کنید
گام به گام تخصصی مدیریت و پیکربندی سرورها با Ansible در لینوکس
مدرس: مجتبی اسمائی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی راه اندازی سرویس های تحت شبکه در لینوکس CentOS
مدرس: آرش حیدری
این دوره را در 12 قسط خریداری کنید
دوره آموزشی رایگان نصب انواع لینوکس بصورت عادی و Dual Boot
مدرس: محمد عابدینی
این دوره را در 4 قسط خریداری کنید
دوره آموزشی Linux Essentials = دریچه ورود شما به دنیای لینوکس
مدرس: محمد نصیری
این دوره را در 17 قسط خریداری کنید
دوره اموزشي فوق تخصصي سيستم عامل لينوكس RHCSA قسمت اول
مدرس: علیرضا سیفی و هومن برازنده
این دوره را در 10 قسط خریداری کنید
دوره آموزشی جامع CentOS Web Panel یا CWP
مدرس: کاظم تقندیکی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی مقدماتی BASH Scripting در لینوکس
مدرس: مجتبی اسمائی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC1 کد 102
مدرس: محمد نصیری
این دوره را در 16 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC2 کد 201
مدرس: محمد نصیری
این دوره را در 27 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC1 کد 101
مدرس: محمد نصیری
این دوره را در 18 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC2 کد 202
مدرس: امیرحسین احمدی
این دوره را در 29 قسط خریداری کنید
دوره آموزشی کنترل پنل هاستینگ CWP
مدرس: فربد رستم صولت
این دوره را در 6 قسط خریداری کنید

منظور از crontab ، cron و cron job در سیستم عامل لینوکس چیست ؟

1 نظرات
186 بازدیدها
Cron اختصار یافته کلمات Command Run On میباشد. Cron به نام UNIX Scheduler نیز معروف است. cron در واقع یک پروسس سیستمی است که به طور خودکار وظایف مشخص شده در وهله های زمانی معین را برای شما انجام میدهد. Cron قابلیتی در سیستم عامل لینوکس است که یک دستور یا اسکریپت را روی سرور شما زمان بندی میکند تا به طور خودکار در زمان و تاریخ مشخص شده اجرا شود. cron job یک کار یا Task زمان بندی شده است میباشد و این در حالیست که برای انجام کار های تکراری در سیستم عامل لینوکس بسیار میتوانند مفید واقع شوند در واقع میتوان گفت که هدف از ایجاد cron job انجام کار های تکراری در لینوکس است. برای مثال شما میتوانید یک cron job را برای حذف فایل های موقتی یا Temporary در هر هفته ، برای حفظ فضای خالی دیسک تان تنظیم کنید. شما ممکن است بعضی از برنامه ها را که نظیر Drupal میباشد را نصب کنید تا بتوانید یک cron job برای انجام برخی وظایف تنظیم کنید. اسکریپت هایی که به عنوان cron job اجرا میشوند معمولا برای تغییر فایل ها یا دیتابیس ها استفاده میشوندو از cron job ها میتوان برای ارسال ایمیل به یک کاربر نیز استفاده کرد.

شما برای ایجاد ، ویرایش ، نصب و لیست کردن cron job ها بایستی از دستور crontab استفاده کنید. crontab مخفف کلمات cron table میباشد. هر کاربر میتواند فایل crontab خود را داشته باشد. فایل های crontab کاربران در مسیر زیر قرار دارد :
/var/spool/cron/crontab
توجه کنید که فایل crontab را نباید به طور مسقیم ویرایش کنید و برای انجام این کار باید از دستور crontab -e استفاده کنید. فایل پیشفرض و دست نخورده crontab به شکل زیر است، با دستور crontab -e میتوانید این فایل را باز کنید :
# Edit this file to introduce tasks to be run by cron.
#·
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#·
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#·
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#·
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#·
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#·
# For more information see the manual pages of crontab(5) and cron(8)
#·
# m h  dom mon dow   command(این خط از فایل برای ما خیلی مهم است)
نکته :ما برای تعریف کردن cron job های خود بایستی انتهای این فایل به شکل صحیح و به ترتیب پارامتر ها و دستورات خود را برای ایجاد cron job در این فایل وارد کنیم و در نهایت فایل را ذخیره کنیم.

ما دو نوع فایل های پیکربندی crontab در سیستم عامل لینوکس داریم ، یکی فایل crontab ای که برای انجام کار های حساس و حیاتی در سطح سیستم عامل لینوکس نوشته شده اند و توسط سرویس های سیستمی استفاده میشوند و برای اجرا شدنشان نیازمند دسترسی root هستند، به این نوع crontab ها در اصطلاح فنی Linux system crontan یا system crontab گفته میشود که فیلد ششم(در ساختار کاری cron که در ادامه توضیح میدهیم) در فایل crontab شامل نام کاربری است که دستور یا اسکریپت مورد نظر میتواند با سطح دسترسی آن اجرا شود این ویژگی به system crontab امکان میدهد تا دستورات را با هر سطح دسترسی اجرایی کاربر اجرا شود. نوع دوم هم user crontab نام دارد که هر کاربر با دستور crontab میتواند cron job خود را ایجاد کند. فیلد ششم در user crontab بیانگر این است که هر دستوری در فایل crontab میتواند توسط کاربری که خودش آن crontab یا بهتر است بگوییم cron job را ایجاد کرده و صاحب آن cron job است اجرا شود. فرمت یا قالب کاری cron job به شکل زیر است :
* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

این ساختار را از پایین به بالا در زیر برایتان تشریح میکنیم :

فیلد اول: در این فیلد بایستی دقیقه ای مشخص از یک ساعت را وارد کنید.مانند دقیقه 10 (میتوانید محدوده هم تعیین کنید)
فیلد دوم: در این فیلد بایستی زمان معلوم را با فرمت ساعت وارد کنید.مانند ساعت 7 (میتوانید محدوده هم تعیین کنید) ، مانند ساعات 12-7
فیلد سوم: در این فیلد بایستی یک روز از ماه را وارد کنید مانند روز 15 ام از ماه (میتوانید محدوده هم تعیین کنید)
فیلد چهارم: در این فیلد بایستی یک ماه از سال را وارد کنید مثلا ماه 4 ام(آوریل) (میتوانید محدوده هم تعیین کنید)
فیلد پنجم: در این فیلد بایستی روزی از روز های هفته یا محدوده ای از آن روز ها را تعیین کنید.مانند صفرم هفته که در کشور های اروپایی و آمریکایی معادل روز یکشنبه است.
بعد از اینکه فایل crontab را با دستور crontab -e ویرایش کردید در انتهای فایل بایستی دستورات خود را برای ایجاد یک cron job وارد کنید. خب یک مثال برایتان بزنیم تا بهتر این موضوع جا بیفتد :
0 22 * * 1-5 /home/backup.sh
در cron job فوق ما تعریف کردیم که در دقیقه ی صفرم از ساعت 22 (رأس ساعت 10 شب) در روز های شنبه تا دوشنبه در هر روز از ماه و هر ماه اسکریپت backup.sh کاربر amirhossein اجرا شود. اگر به جای اعداد در فیلد اول تا پنجم علامت * قرار دهید این اسکریپت هر دقیقه از هر ساعت ، هر روز از ماه و هر روز هفته به طور مداوم اجرا خواهد شد! برای اینکه موضوع قشنگ برای شما جا بیفتد باید به طور مکرر تمرین کنید و مباحث را مرور کنید و سناریو های مختلف برای خودتان اجرا کنید.ITPROباشید


نویسنده : امیرحسین کریم پور
منبع : ITPRO
هرگونه نشر و کپی برداری بدون ذکر نام نویسنده و منبع دارای اشکال اخلاقی میباشد
برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • با سلام
    برای آموزش که قرار دادید بسیار سپاس گذارم.
    فقط من در خصوص مدل زمانی در سایت itpro فیلم آموزش قرار دادم که استاندارد های زمان در سیستم عامل هایی مثل Unix و Linux رو توضیح میده.

برای ارسال نظر ابتدا به سایت وارد شوید

arrow