Cron برنامه اي است كه به كاربران اين امكان رو ميده كه برنامه هاي مورد نظرشون رو در يك زمان به خصوص اجرا كنن. يك مثال براي اين قضيه، سيستم هاي تهيه پشتيبان يا همون backup ها هستند.
طبق معمول مثل ساير سرويس هاي لينوكس، cron در آدرس /etc/init.d قرارداره و با دستور زير مي تونيد بفهميد كه در حال اجرا هست يا نه:
/etc/init.d/cron status
معمولا توي لينوكس SuSE اين سرويس براي runlevel هاي 2، 3 و 5 فعاله. براي اينكه يك برنامه رو توي يك زمان خاص اجرا كنيم، بايد اول ببينيم كه اين برنامه قراره چه مواقعي اجرا بشه. اگر يه نگاه به شاخه /etc/ بندازين، مي بينيد كه يك سري فولدر با اين اسامي اونجا هست: cron.monthly ،cron.weekly ،cron.daily ،cron.hourly. از اسم هركدوم معلومه كه به درد چه تيپ زمان هايي مي خورن. فايلي كه قراره حاوي تنظيمات cron باشه رو توي اين فولدر ها كپي مي كنيد، و بعد دستور زير رو مي ديد:
crontab file_name
با دستور crontab -l هم مي تونيد ببينيد كه در حال حاضر چه task هايي به cron سپرده شده. و خود اين دستور بهتون ميگه كه بايد براي تغيير وظايف cron فايل اصلي رو تغيير بديد و مجددا سرويس رو install كنيد.
حالا مي رسيم به تنظيمات فايل هاي مربوط به cron. اين فايل ها مثل ساير فايل هاي تنظيمات لينوكس فايل هاي متني هستند كه داراي يه syntax خاص هستند. مثلا خط زير در يك فايل تنظيم cron به معني اجراي برنامه مربوطه در ساعت 23:59 هر روز است:
59 23 * * * some_program
اون اعداد و ستاره ها به ترتيب نمايانگر دقيقه (كه از صفر تا 59 مي تونه باشه)، ساعت (از 0 تا 23)، روز در ماه (1 تا 31)، ماه (1 تا 12 يا اينكه اسم ماه) و روز در هفته (از 0 براي يكشنبه شروع ميشه تا 7، يا نام روز) هستند. هر كدوم كه بخواهيم ناديده گرفته بشه بجاش ستاره مي ذاريم، و بنابراين موقع اجراي cron اون زمان ناديده گرفته ميشه. البته هركدوم از موارد رو ميشه چند تا مقدار براش داد و با كاما از هم جدا كرد يا اينكه محدوه براش مشخص كرد. مثلا دستور زير هر دقيقه يكبار اجرا ميشه:
0-59/1 * * * * program
و اين دستور هر ساعت يكبار:
00 0-23/1 * * * program
به طور كلي فرمت هر خط در بانك اطلاعاتي crontab به شكل زير است:
[minute] [hour] [day of month] [month] [day of week] [command to run]
+ نوشته شده در جمعه بیست و یکم دی 1386ساعت 13:27  توسط امير حسين روشناس
|
همونطور كه مي دونيد، سيستم مي تونه در 7 تا runlevel كار كنه:
-
0: اين runlevel به معني shutdown ،halt يا اصلا همون خاموش شدن كامل سيستمه!
-
1: فقط يك كاربر مي تونه به سيستم وارد بشه، از شبكه و گرافيك هم خبري نيست.
-
2: اينو بزرگان رزروش كردن، يعني ممكنه اون توزيع لينوكسي كه ازش استفاده مي كنين config كرده باشه براي خودش، ممكن هم هست گذاشته باشه كنار واسه شما كه خودتون هر بلايي مي خواين سرش بيارين.
-
3: سيستم چند كاربره، حالت فقط متن (بدون گرافيك، ولي خودتون مي تونيد مود گرافيك رو با دستور startx بالا بياريد) و با پشتيباني از شبكه
-
4: ايضا مثل مورد دوم رزرو شده!
-
5: حالت چند كاربره و شبكه و گرافيك و خلاصه هرچي كه دلتون بخواد!
-
6: اين هم يعني restart
خب، سيستم ما توي يكي از مود هاي 1، 3 يا 5 بوت ميشه و مياد بالا. اينو هم همون زمان نصب لينوكس خودمون تنظيمش كرديم. حالا يه زماني اومديم و دلمون نخواست كه سيستم تحت اون runlevel اولي كه تنظيم كرده بوديم بياد بالا. چيكار بايد بكنيم؟
البته ميشه از طريق Yast (كه مي دونيد مركز مديريت همه اعمال و رفتار OS در SuSE است) ميشه اين پيش فرض رو تغيير داد. ولي اگه بخواهيم كلاس بذاريم و بگيم ما حرفه اي هستيم و خودمون مي تونيم از طريق ويرايش فايل هاي پيكره بندي كارمون رو انجام بديم، راهش اينه كه فايل etc/inittab/ رو انگولك كنيم.
توي اوائل اين فايل، يك سطر مي بينيد به اين مضمون:
# The default runlevel is defined here
id:3:initdefault:
اين يعني اينكه سيستم در حالت پيش فرض توي runlevel 3 بالا بياد. حالا اينجا مي تونيد هر عددي كه دلتون مي خواد رو بذاريد تا سيستم تحت اون runlevel بالا بياد. ولي فكر نمي كنم كسي دلش بخواد سيستم رو با 0 يا با 6 بالا بياره!
+ نوشته شده در چهارشنبه پنجم دی 1386ساعت 10:15  توسط امير حسين روشناس
|
یکی از امکانات خیلی جالب لینوکس (که البته با استفاده از برنامه های کمکی در ویندوز هم قابل دسترسی هست) MD5 Checksum است، که ابزار کوچیک و جمع و جوریه و می تونه در مدیریت فایل هایی که از روی اینترنت می گیریم کمکمون کنه.
تابع MD5 بر مبنای الگوریتم ریاضی کار می کنه که برای ورودی های مختلف، همیشه خروجی های متفاوتی رو ایجاد می کنه. حتی در این حد که بعضی برنامه های ارسال ایمیل، از این تابع با ورودی تاريخ و زمان هر لحظه برای ایجاد یک رشته منحصر بفرد استفاده می کنن.
این تابع در لینوکس می تونه برای مقایسه دو تا فایل هم بکار بره. این عملیات وقتی که از روی اینترنت فایلی رو دریافت می کنیم بدرد می خوره و با استفاده از اون می تونیم مطمئن بشیم که عملیات دریافت فایل به درستی انجام شده. معمولا سایت هایی که برنامه های لینوکس رو برای download ارائه می کنن، MD5 Checksum فایل اصلی رو هم اعلام می کنن. پس از دریافت فایل از اون سایت، با دستور زیر می تونید از صحت انتقال اطمینان حاصل کنید:
md5sum file_name
خروجی بدست اومده از این دستور با رشته اعلام شده از طرف سایت ارائه دهنده اون برنامه اگر برابر بود، یعنی فایل به درستی دریافت شده است.
+ نوشته شده در دوشنبه سوم دی 1386ساعت 10:47  توسط امير حسين روشناس
|