ثبت نام | ورود

خوش آمدید: مهمان
خانه | لیست مطالب | ارسال مطلب | فروشگاه الکترونیکی | اتاق چت و گفتگو

منو اصلي
اتاق چت گفتگو
کليپ تصويري و نماهنگ
دفتر يادبود
لينک باکس

طنز و سرگرمی
پارس اخبار
نقشه سايت
دنياي خنده و طنز
Sms اس ام اس
اخبار و رسانه ها
آموزش کامپيوتر
IT فن آوري اطلاعات
ورزشي
موفقیت و پیروزی
نجوم و ستاره شناسی
مذهبی
فیلم و سینما
گیاه شناسی
عکس و کاريکاتور
فال و طالع بینی
عشق و دوستی
علمي ، آموزشي
دانلود نرم افزار
آرايش و زيبايي
طنز و سرگرمي
سلامتي و بهداشت
خانه و خانواده
آشپزی
ادبيات
کشاورزي
هنر
کار و تجارت
بیوگرافی
آخرين مطالب ارسال شده
3irani & 3amrikai - داستان 3..
مي دونيد اگه .......
خصوصيات پسرها وقتي عاشق مي ش..
يه پسر خوب(وجود نداره)
Sms & jok
تعبير عاشقانه
نكاتي طلايي در مورد موي آقاي..
آسيب شناسي فک و فاميل
مزيت دختر بودن
داستان مداد
يک داستان عجيب
دختر بودن يعني ...
ويژگي پسرهاي ايراني
پسر بودن يعني چه؟
ياد من باش
bodo bodo sms اس ام اس داغ
sms bahal اس ام اس باحال
انواع مرد ها
24ساعت از زندگي پسرها
داستان عاشقانه
داستان عاشقانه
خصوصيات دخترها وخصوصيت پسرها
سايت هاي همکار







منتخب برای شما
خانه » لیست موضوعات » آموزش کامپيوتر » ملزومات و اصطلاحات کامپيوتري :: نمایش مطلب

زمان بندي انجام دستورات با Cron

  ارسال این مطلب به یک دوست   
 اطلاعات کاربر:
 
 نويسنده مطلب:  مجيد
 محل کاربر: تهران
تمام مطالب کاربر: تمام مطالب توسط مجيد
 
اطلاعات مطلب:
ارسال شده در: پنجشنبه 20 مهر 1385

متن مطلب:
گزارش مطلب در صورت اهانت آمیز بودن
نمایش داده شده: 947 دفعه 
 اندازه متن:  1  2  3  4 

I. زمان بندي !

زمانبندي (Schedule) را مي توان هنر يک مدير دانست ، البته نه به اين معنا که کاربران نبايد اين کار را در فهرست مهارت هاي خود قرار دهند بلکه به اين معنا که يکي از وظايف اصلي مديران سيستم همانا زمان بندي انجام کار هاست. يک مدير بايد روزانه از سيستم خود يک نسخه ي پشتيبان بگيرد ، بازرسي هاي امنيتي سيستم را انجام دهد ، به فايل هاي گزارش روزانه يا log ها سرکشي کند و بسياري کار ديگر که بر عهده ي اوست ، اين جاست که زمان بندي کار ها به ميان مي آيد ، شماهر چقدر هم که فرد باهوش و با دقتي باشيد باز هم سيل کارهاي مختلف در روز مي تواند باعث فراموشي و يا اشتباه در کارتان شود ، اين همان چيزيست که هرگز نبايد رخ بدهد.
براي جلوگيري از خطاهاي انساني اين وظايف را به کامپيوتر مي سپارند ، در سيستم عامل لينوکس و اغلب يونيکس ها از برنامه اي به نام cron براي زمانبندي کارها استفاده مي شود.
به اين وسيله شما به راحتي مي توانيد با وارد کردن دستور براي يکبار اين وظيفه را به کامپيوتر خود واگذار کنيد ، از اين پس اين کامپيوتر شماست که دستورات را به موقع انجام مي دهد.


corn .II و استفاده از آن !


همان طور که در بالا گفتيم براي زمانبندي در لينوکس از برنامه ي cron که نوشته ي Paul Vixie مي باشد استفاده مي کنيم. اين برنامه در اغلب توزيع هاي لينوکس و يونيکس ها وجود دارد.
اين برنامه يک Deamon ( بخوانيد/Daymen/ يا /Dimen/ ) دارد که همواره در پشت صحنه ي سيستم شما در حال اجراست و فايل هاي ورودي خود را چک مي کند ، به محض مشاهده ي کاري در زمان خاص آن کار را انجام مي دهد.
به فايل هاي ورودي ، crontab مي گويند ، شما بايد دستورات خود را در اين فايل ها اضافه کنيد و زمان اجراي دستور را نيز قيد کنيد ، به محض فرارسيدن زمان اجراي دستور ، دايمن Cron اين دستور يا دستورات را انجام خواهد دد.
توجه داشته باشيد که بعد از انجام تغييرات در فايل هاي Crontab نيازي به راه اندازي مجدد Cron Deamon وجود ندارد و cron خودش اين تغييرات را تشخيص و به آن ها عمل خواهد کرد.
در واقع cron هر دقيقه يک بار دايرکتوري هاي var/spool/cron/ و etc/cron.d/ و فايل etc/crontab/ را چک مي کند ، به اين نوع Deamon ها بيدار باش يا ''Wakes up'' مي گويند (بيدار باش ترجمه اي لغتي است و مفهوم wakes up حواس جمع بودن و دائم سر پست حاضر بودن است).


بسيار خوب تا به اين جا روند انجام کار را بررسي کرديم. تنها کاري که شما بايد انجام بدهيد ويرايش فايل etc/crontab/ و اضافه کردن دستورات خود در اين فايل است. براي درک بهتر نظر شما را به نمونه اي از اين فايل در سيستم خودم جلب مي کنم :



SHELL=/bin/bash
MAILTO=gnuiranorg
PATH=/usr/bin:
/usr/sbin:
/sbin:
/bin:
/usr/lib/news/bin
MAILTO=root
# check scripts in cron.hourly, cron.daily, cron.weekly, and
#cron.monthly
-*/15 * * * * root test -x
/usr/lib/cron/run-crons &&
/usr/lib/cron/run-crons >/dev/null 2>&1
59 * * * * root rm -f
/var/spool/cron/lastrun/cron.hourly
14 4 * * * root rm -f
/var/spool/cron/lastrun/cron.daily
9 4 * * 6 root rm -f
/var/spool/cron/lastrun/cron.weekly
44 4 1 * * root rm -f
/var/spool/cron/lastrun/cron.monthly
02 4 * * * root run-parts

شايد ظاهر اين فايل کمي غير معمول به نظر برسد امابا دانستن روش وارد کردن دستور خواهيد ديد که بسيار هم ساده و جالب است. نظري به خط آخر مي اندازيم ؛ اين خط با ? قسمت آغاز مي شود:
اولي دقيقه (? تا ??) ، دومي ساعت (? تا ??) ، سوم روز از ماه (?-??) ، چهارم ماه (?-??) و آخرين بخش نام روز از هفته ( ?-? که ?و? نمايش دهنده ي يکشنبه هستند) . براي ماه و روزهاي هفته شما مي توانيد سه حرف اول اين مقادير به انگليسي را نيز استفاده کنيد.
شما مي توانيد مقادير کلي يا طول مدتي را با استفاده از موارد زير استفاده کنيد :


با استفاده از کاراکتر '*' (بخوانيد Asterisk يا استريسک [?] ) اين کاراکتر به معني تمام طول مدت انجام کار است مثلا اگر در فليد يا بخش دقيقه اين علامت وارد شود يعني در تمام ?? دقيقه اين کار انجام شود.


ليستي از اعداد که توسط کاما ',' از يکديگر جدا شده اند ، corn با برخورد به هر کدام از مقادير آن را اجرا خواهد کرد.
مثلا 20 , 10,16 يعني در دقايق يا ساعات 20 و 16 و10 اين کار انجام شود.


دامنه اي از مقادير که با هايفن يا '-' از هم جدا شده باشند ، براي نمونه 8-18 اگر در بخش ساعت يعني دومين بخش به کار برود بين ساعات 8 صبح و 6 بعد از ظهر هر1 ساعت اين کار انجام مي شود و يا اگر در بخش اول يعني دقيقه باشد بين دقايق 8 و 18 ساعت مورد نظر اين کار انجام مي شود (سر هر دقيقه) .
يک اسلش '/' با استفاده از يک اسلش شما مي توانيد يک کار را در يک سيکل زماني انجام دهيد ، براي نمونه 15/* باعث مي شود که يک کار هر 15 دقيقه يک بار انجام گيرد.


بعداز? قسمت اول نام کاربري که قرار است اين دستور را اجرا نمايد نوشته شده است و سپس دستوري که قرار است اجرا شود ( در اين جا run-parts) بنابر اين اين برنامه هر روز و درساعت 4:
02 صبح اجرا مي شود.
براي ايجاد يک دستور جديد کافيست آن را به فايل etc/crontab/ اضافه کنيد ، براي اين کار بايد داراي مجوز ريشه باشيد و برنامه ي شما با مجوز ريشه اجرا خواهد شد.
اما اين مي تواند کمي براي کاربران معمولي سيستم ناراحت کننده باشد ، براي اين که يک کار بر بتواند از اين سيستم زمانبدني استفاده کند بخش بعد را مطالعه فرماييد.



III. ايجاد فرمان ها توسط کاربر


براي ايجاد اين فرمان ها شما بايد از ابزار crontab استفاده کنيد اما نه با ويرايش فايل ! قبل از ادامه همين جا بايد با واژه ي cron job آشنا شويد ، همان طور که از معني اين لغت بر مي آيد cron job يک کار cron است در واقع به هر يک از فرمان هايي که در زمان خاص اجرا مي شود يک cron job مي گويند.
در واقع ما براي هر کاري يک cron job مي سازيم. ساختار کلي ابزار crontab به شکل زير است :



crontab [-u user] [-l | -e | -r] [file]




شايد ظاهرش کمي شلوغ است اما اگر بدانيد که وجود '' [] '' ها به اين معنيست که شما مي توانيد اين بخش را در ساختار دستور به کار ببريد يا اگر خواستيد استفاده نکنيد ;) در واقع اگر شما u User- را وارد نکنيد ابزار crontab با کاربري که آن را اجرا کرده است اجرا مي شود ولي اگر بخواهيد با نام کاربري ديگر آن را اجرا کنيد براي نمونه وارد مي کنيد u tux- و از اين ابزار استفاده مي کنيد.
اگر مي خواهيد به طور مستقيم برروي يک cron job کار کنيد کافيست از دستوراتي که در کروشه ي دوم آمده اند استفاده کنيد:


l- وظايف يا همان cron job هاي کنوني را نمايش مي دهد.

e- براي ويرايش cron job حاضر به کار مي رود که درواقع خودش يک Vi را باز مي کند و فايل crontab را در آن قرار مي دهد تاشما وظيفه اي را اضافه يا کم کنيد يا وظايف کنوني را تغيير بدهيد.
[?]

r- اين گزينه هم براي پاک کردن وظايف کنوني به کار مي رود.



(علامت هاي | بدين معني هستند که شما فقط يکي از آن سه گزينه را مي توانيد استفاده کنيد.
)راه ديگر اين است که شما يک فايل وظايف يا cron job file ايجاد کنيد و در محلي ذخيره کنيد و آن را با همين ابزارو گزينه ي file وارد جداول وظايف بکنيد :



crontab -u tux my_cron__file

شما مي توانيد حتي مقادير متغيير هاي محيطي را نيز در يک فايل cron تغيير بدهيد براي اين کار کافيست از اين الگو پيروي کنيد :
VARIABLE=value مثلا براي HOME مقدار home/tux/ را قرار بدهيد .(HOME=/home/tux) . در نمونه ي زير اين فايل cron هر ?? دقيقه ايميل هاي آمده را فرا مي خواند :



SHELL=/bin/bash

MAILTO=tux

HOME=/home/tux

0,30 * * * * /usr/bin/fetchmail -s




البته Paul فکري هم براي جلوگيري از پيچيدگي کار کرده ، اگر مي خواهيد هر روز ، هرماه ، هر نيمه شب يا هر بار که سيستم را روشن مي کنيد عملي انجام شود مي توانيد از مقادير گفته شده در بالا يا مقادير جدول زير که به اطر سپردنشان راحت تر است استفاده کنيد.


مقدار معادل
@reboot
در زمان هر بار بوت شدن سيستم

@yearle 0 0 1 1 *

@annually
مانند بالايي

@mounthly
0 0 1 * *

@weekly 0 0 * * 0

@daily 0 0 * * *
@midnight همانند بالايي

@hourly 0 * * * *



بسيار خوب حالا مي توانيد کار هايتان را به کامپيوتر لينوکستان بسپاريد و ديگر نگران تنظيم وقت خود نباشيد ، خوب بازي با اعداد را شروع کنيد تا کاملا به اين ابزار مسلط شويد ;)


[?] به کاراکتر استريسک يا * در گوشي هاي تلفن Star يا ستاره مي گويند و ناميدن ستاره يا Star در کامپيوتر براي اين کاراکتر اشتباه است.
[?] اگر نمي خواهيد با vi کار هايتان را انجام دهيد کافيست ويرايشگر پيش فرض سيستم خود را از vi به ويرايشگر مورد علاقه ي خود تغيير دهيد براي اين کار بايد متغيير محيطي VISUAL و EDITOR را تغيير دهيد.




↓ تبلیغ های جدید و روز برای شما ↓


 وضعیت: فعال


عضویت دوستان
:: دریافت ایمیل رایگان ::
عکس و کاریکاتور
جوک و اس ام اس
مطالب آموزشی تفریحی

ثبت نام
تبليغات
مطالب روز
بهترين ها
يک داستان عجيب
اختلاف سن مناسب براي عر..
کفير، نوشيدني خوش‌طعم و..
امتحان آئين نامه - طنز
ناگفته هايي درباره شرف ..
کذب محض عشق - طنز عشقي
بادام تلخ در درمان سرما..
ورود چند نفره به مسنجر ..
بيش از 50 نوع از کليد ه..
ساختار دقيقترين توپ فوت..
نکاتي مهم و کليدي براي ..
ديدن مبلغ قبض ميان دوره..
زورگوئي و دروغ گویی
فرشته نجات
دستور زبان اصفهاني
رضا صادقي کیست ؟
شکار لحظه هاي ورزشي
خاطرات مدرسه
نقشه و پروژکتور چراغ قو..
اس ام اس شبهاي قدر و شه..
طالع بيني افراد از روي ..
چند تا لطیفه از غضنفر

تمام مطالب داغ ...
بهترین لینک

 جستجو برای:     فقط با عکس:  
 جستجو در:   جستجو پیشرفته    

همکاری تبلیغاتی | نقشه سایت | شرایط استفاده | تماس با ما |