انواع سی دی و نرم افزار های جدید

      لینک های داغ

 
   
  





تهران وب
اخبار روز :: دوستان :: تهران مانیا :: پزشکی :: بالاشهر :: ایران من
ایران 20 :: امواج :: هفت ستاره :: تهران وب :: پرشین تاپ :: طنز :: ایران شادی :: خنده :: لینک باکس :: دنیای خنده

آموزش کامپيوتر :: ملزومات و اصطلاحات کامپيوتري

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

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 را تغيير دهيد.



مطلب بعدی   ::  مطلب قبلی

   


 

  گام اول تا هفتم + تمرينها
  با رئيس اداره بد خو چگونه رفتار كنيم؟
  استاتوس اپي لپتيكوس (تشنج)
  جوك-60
  معادله معكوس، راهي به سوي عدالت
  کوير » دل شکسته
  آموزش SQLserver (بخش چهارم)
  علل رقابت خانمها براي بدست آوردن مردها
  اقتصاد چيست؟
  حقايقي تلخ در مورد مردان
مهشيد افشار زاده
فكر هاي غلط براي بچه دار شدن
بال ايران از همه فعاليت‌هاي بين‌المللي محروم شد...
اولين بار چه كسي از دماغ فيل افتاد؟
۷ نكته براى اينكه پوست خود را........
مراقب فشار خونتان باشيد !
قدم زدن در بهشت زهرا: مرگ ، شهر و ترس
کنسرت 77 » تصنيف ، من ترک عشق و شاهد و ساغر نميکنم
تشخيص اصل بودن گوشي موبايل از طريق اينترنت
شاخه گل 10 » من بيدل ساغي
 
صفحه اول  : تقشه سایت : لینک باکس