استفاده از نرم‌افزار آزاد توسط دولتها

   ابزار باز (نرم‌افزار آزاد، قالبها و سخت‌افزار باز) امکان برقراری مجدد امنیت، جلوگیری از خارج شدن ارز و توسعه فنی منطقه‌ای را فراهم می‌کنند. اهمیت این مساله موجب شده که دولتها از ورطه نظریه وارد عمل شوند. کشورهایی مانند فرانسه، برزیل، دانمارک، آرژانتین، پرو، ایتالیا، اسپانیا، استرالیا، بلژیک، کلمبیا، کاستاریکا، ایالات متحده، پرتغال و اکراین اخیراً استفاده از نرم‌افزار آزاد را در برنامه کاری خود قرار داده‌اند. برزیل، چین، شیلی،‌ فرانسه، کره،‌ آلمان، هند، ایتالیا، مکزیک،‌ پاکستان، هلند، فیلیپین، لهستان، اسلوونی، آفریقای جنوبی، اسپانیا، سوئیس، تایلند،‌ ایالات متحده و ونزوئلا برنامه‌هایی را برای به‌کار‌گیری نرم‌افزار آزاد در سازمانهای دولتی خود آماده کرده‌اند. اتحادیه اروپا نیز در حال اجرا کردن برنامه‌های خاصی برای به‌کارگیری نرم‌افزار آزاد و سخت‌افزار باز می‌باشد. استفاده از نرم‌افزار و سخت‌افزار آزاد در یک کشور نه غیر‌ممکن است و نه در عرض یک شب انجام می‌شود. بلکه پروژه میان‌مدتی است که به افراد متخصص و برنامه‌ریزی دقیق نیاز دارد.

   مزایای استفاده از نرم‌افزار آزاد برای دولت:

   غالباً، به پس‌انداز مالی، نسبت به سایر مزایا، بیشتر توجه می‌شود. میزان این پس‌انداز بر اساس مواردی مانند نوع سیستم موجود، مخارج آن و ابزار جایگزینی، از اهمیت زیادی برخوردار می‌باشد،‌ اما این میزان می‌تواند در کوتاه‌مدت به دلیل انتقال از یک سیستم به سیستم دیگر، کاهش پیدا کند. با این وجود، استفاده از نرم‌افزارآزاد، دارای مزیتهای دیگری نیز می‌باشد که از اهمیت بیشتری برخوردار هستند:

      • استقلال فنی: با استفاده از نرم‌افزار آزاد، سیستمهای دولت، دیگر تحت کنترل یک نهاد و یا شرکت خارجی نبوده و وابستگی به وجود آمده، از بین خواهد رفت.

      • کنترل اطلاعات: این مورد یکی از سریعترین پیامدهای استفاده از نرم‌افزار آزاد می‌باشد. دارا بودن آزادی در رابطه با چگونگی عملکرد نرم‌افزار، چگونه ذخیره شدن داده‌ها و تغییر این موارد، کلید دسترسی به اطلاعات را به جای بخشهای خصوصی در اختیار دولت قرار می‌دهد.

      • قابل اعتماد و باثبات بودن: استفاده از نرم‌افزار آزاد موجب می‌شود که سایر افراد اشکالات آنرا مشخص نموده و راه‌حلهایی ارائه دهند، در نتیجه چنین برنامه‌هایی هم قابل اعتماد بوده و هم باثبات می‌باشند.

      • امنیت: این مورد، برای دولت از اهمیت زیادی برخوردار است. اگر بسیاری از اطلاعاتی که در دست دولت است، در اختیار افراد مغرض قرار گیرد، مشکل‌ساز خواهد شد. به‌همین دلیل دولت باید از امنیت نرم‌افزارهای استفاده شده، اطمینان حاصل کند و این امر تنها با به‌کارگیری نرم‌افزار آزاد، تحقق خواهد یافت.

  مشکلات پیش روی استفاده از نرم‌افزار آزاد:

   بدیهی است که به‌کارگیری نرم‌افزار آزاد، این تصور را ایجاد می‌کند که بازار کسب درآمد فروشندگان نرم‌افزارهای اختصاصی، بواسطه استفاده‌های عمومی، با رکود مواجه خواهد شد. انتظار می‌رود که این افراد، تمامی توان خود را برای جلوگیری از کاربرد نرم‌افزار آزاد، به‌کار برند. در چنین وضعیتی ما باید به یاد داشته باشیم که کنترل اطلاعات و آزادی شهروندان در خطر است. در بخش شرکتهای نرم‌افزاری و نرم‌افزارهای آزاد/متن‌باز در این زمینه بیشتر توضیح داده خواهد شد.

   توجه داشته باشید که استفاده از نرم‌افزار آزاد، علیه تولیدکننده یا محصول خاصی نبوده بلکه علیه موارد نادرستی مانند کنترل اطلاعات کاربر توسط تولیدکننده می‌باشد. دولت تحت هیچ شرایطی نباید، در برابر این مخالفتها عقب نشینی نماید. در غیر این صورت محدودیتی به وجود می‌آید که هدف آن، تضمین حداقل حقوق شهروندان، پایین‌ترین کیفیت نرم‌افزاری و کمترین امنیت اطلاعات می‌باشد. هر شرکتی که این حقوق را رعایت کند، با هیچ مشکلی مواجه نخواهد شد.

   خطرات استفاده از نرم‌افزارهای اختصاصی:

   به خاطر محدودیتهای تحمیل شده توسط نرم‌افزار اختصاصی، شرکت تولیدکننده آن می‌تواند کارهای متعددی انجام دهد:

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

   بنابر تمامی دلایل مطرح شده، دولت نمی‌تواند از نرم‌افزار اختصاصی استفاده نموده و اطلاعات شهروندان خود را در معرض خطر قرار دهد. مواردی که بیش از همه در معرض خطر قرار دارند استقلال فنی، کنترل اطلاعات و امنیت ملی می‌باشند.

   شرکتهای نرم‌افزاری و نرم‌افزارهای آزاد/متن‌باز:

   بسیاری از افراد تصور می‌کنند که با استفاده گسترده از نرم‌افزارهای آزاد/متن باز، ممکن است شرکتهای نرم افزاری متحمل خساراتی شوند در حالی که چنین موردی رخ نخواهد داد، زیرا این اقدامات از طریق تحریم کردن شرکتهای نرم‌افزاری، انجام نشده، بلکه با ترویج به‌کارگیری نرم‌افزار آزاد، توسط دولت، اجرا خواهند شد (این مورد، همانند شرایط لازم برای انجام مناقصه است که توسط دولت اجرا می‌شود).

   در حقیقت، وقتی‌که هدف ما از به‌کاربردن عبارت «شرکتهای نرم‌افزاری» شرکتهای داخلی باشند، این مورد به سود آنها تمام خواهد شد، زیرا در این صورت مجوز استفاده از نرم‌افزار آزاد به دولت این امکان را می‌دهد که از متخصصین داخلی برای تطبیق‌دادن سیستمهای خود استفاده نموده و در نتیجه اقتصاد و اشتغال‌زایی کشور، رونق پیدا خواهد کرد. استفاده از نرم‌افزار آزاد، امر رقابت را نیز ترویج می‌دهد.

   به‌کارگیری نرم‌افزار آزاد موجب می‌شود که هر فردی بتواند به بررسی آن بپردازد، در حالی که در نرم‌افزارهای اختصاصی، این مورد تنها توسط تولیدکننده انجام می‌شود که می‌تواند ارائه خدمات نرم‌افزاری را به صورت انحصاری درآورد.

   در مورد این نرم‌افزارها باید به این نکته نیز اشاره کرد که عمل انتقال، تصمیم‌گیری، ‌راه‌اندازی سیستمهای جدید، تبدیل داده‌ها، آموزش مجدد کارکنان و ... دارای هزینه‌هایی می‌باشد (هیچ‌یک از نرم‌افزارهای آزاد، بدون هزینه نیستند).

   تمامی این هزینه‌ها، ثابت بوده و فقط یکبار پرداخت می‌شوند. نرم‌افزارهای اختصاصی نیز هزینه‌های مخصوص به خودشان را دارند، اما در کنار این موارد، نرم‌افزارهای اختصاصی، هزینه‌های دیگری نیز به همراه دارند. هزینه به‌روز رسانی مداوم،‌ نگهداری (توسط شخصی که این مورد تنها به او مربوط می‌شود و به همین دلیل هر مبلغی را که بخواهد دریافت می‌کند) و عدم کنترل اطلاعات توسط دولت از جمله این هزینه‌ها می‌باشند.

   این هزینه‌ها، همیشگی بوده و با گذشت زمان، افزایش پیدا می‌کنند، اما برخلاف آن، هزینه انتقال به نرم‌افزار آزاد، ثابت می‌باشد. بنابراین با مشخص شدن این که انتقال به نرم‌افزار آزاد، از لحاظ اقتصادی به‌صرفه می‌باشد، بهتر است که این کار در اولین فرصت ممکن مورد توجه بخشهای مختلف دولت قرارگیرد.

   این امر، یک هزینه کوتاه‌مدت و پس‌انداز بلندمدت می‌باشد.

   دولت در کجا می‌تواند به پشتیبانی فنی دست یابد؟

   در همان جایی که اکنون به آن دسترسی دارد. وقتی که متخصصین، آموزش مجدد ‌بینند می‌توانند کار خود را ادامه دهند. نرم‌افزار آزاد، همانند نرم‌افزار اختصاصی، از پشتیبانی ارائه شده توسط شرکتها نیز بهره می‌برد. شرکتهایی مانند IBM، خدماتی را هم برای نرم‌افزار اختصاصی و هم برای نرم‌افزار آزاد ارائه می‌دهند، اما شرکتهایی مانند Red Hat عمدتاً از نرم‌افزار آزاد پشتیبانی می‌کنند. در داخل ایران هم شرکتهای بزرگی مانند داده‌پردازی به تازگی ارائه خدمات و پشتیبانی لینوکس را برای محیطهای کارساز و کارخواه شروع کرده‌اند.

   برخلاف نرم‌افزار اختصاصی، اکنون شما می‌توانید شخص یا شرکت پشتیبانی‌کننده را بر اساس شرایط و قیمت آنها انتخاب نمایید. با این روش، دیگر شرکت ارائه‌دهنده نرم‌افزار اختصاصی نمی‌تواند برای انجام پشتیبانی، هزینه‌های گزافی را مطالبه نماید.

   ما باید، در حیطه‌ی نرم‌افزارهای آزاد، تا حد امکان از شرکتها و متخصصین داخلی استفاده نماییم تا اقتصاد کشور شکوفا شود. مورد دیگر، انعقاد قرارداد با دانشگاه‌هایی است که کارکنان متخصص را تربیت می‌کنند

پاک کردن تاریخچه‌ی run در گنوم

اگر می‌خواهید دستوری یا برنامه‌ای را اجرا کنید ودر محیط گنوم (GNOME) هستید کافیست کلیدهای ALT و F2 را همزمان فشار دهید ، پنجره ای باز می‌شود که Panel run application dialog یا خلاصه‌تر Run dialog نام دارد ، در این پنجره می‌توانید نام برنامه یا دستور مورد نظر خو را تایپ کنید برای نمونه gedit یا هر برنامه‌ی دیگری. بسیار خوب ، اگر بخواهیم تارخچه‌ی این دستورات را پاک کنیم چه؟ چه راه برای این کار وجد دارد؟ برای اینکه بتونید به راحتی این کار را انجامدهید کافیست یک فایل جدید ایجاد کنید و متن یر را در آن کپی کنید. این کار را با هر ویرایشگر متنی می‌توان انجام داد ، برای نمونه از EMACS یا gedit استفاده کنید.

#!/bin/bash
gconftool-2 --type list --list-type string --set /apps/gnome-settings/gnome-panel/history-gnome-run "[]"

تمام کار همین است ، حالا کافیست این فایل را در جایی ذخیره کنید برای نمونه با نام clear_history در دایرکتوری خانگی خودتان ذخیره کنید. هر گاه نیاز به پاک کردن تاریخچه دارید می‌توانید به شاخه‌ای که این فایل در آن قرار دارد رفته و در خط فرمان دستور clear_history/. را اجرا کنید ، با اجرای این دستور تاریخچه‌ی RUN محیط گنوم شما پاک خواهد شد. اگر می‌خواهید این کار در یک سیکل زمانی انجام شود می‌توانید از طریق برنامه ی cron که راهنمای آن نیز در این سایت قرار دارد یک زمان‌بندی برای اجرای دستور ایجاد کنید تا برای مثال هر روز این کار انجام شود.

ارسال پیغام برای کاربران ویندوز در یک شبکه(Send a message to win

در سیستم عامل های مایکروسافتی کاربران شبکه می توانندبا Winpopupیا netsend به یکدیگر پیغام ارسال کنند، اگر شما در یک شبکه هستید و از لینوکس استفاده می کنید بدون داشتن این برنامه ها و فقط از طریق خط فرمان می توانید همین کار را تکرار کنید ،کافیست یک پنجره ی ترمینال باز کنید و بنویسید:


tux@GNUIran:$ echo *Hi Use GNU/Linux and be free my friend* |smbclient -M nebios_name

در حالت کلی پیام های برنامه ی komba2 با همین روش ارسال می شوند.متاسفانه کاربران ویندوز نمی تواند به این وسیله برای کاربران لینوکس شبکه ی خود پیام ارسال کنند،درواقع می توانند اما کاربران لینوکس آن را دریافت نمی کنند!!برای این کار کاربران ویندوز باید از سیستم های پیام رسان فوری (IM) یا پست الکترونیک داخل شبکه ای استفاده کنند!

Picasa برای لینوکس

Google بر طبق گزارش‌های مدیر برنامه‌های بازمتن گوگل یعنی Chris DiBona،‌ابزار مدیریت تصویر Picasa که پیش از این برای سیستم عامل ویندوز مایکروسافت منتشر شده بود،برای لینوکس نیز بومی‌سازی شده است،‌البته این بومی‌سازی به این معنی نیست که Picasaرا از پایه،‌بر اساس کتابخانه‌های QT یا GTK نوشتند،‌بله Picasa با استفاده از شبیه‌ساز بازمتن و قدرتمند wine و با ۲۲۵ وصله که با کمک توسعه‌دهنده‌گان این برنامه و در جهت بکار گیری کل امکانات Picasa از طرف توسعه‌دهنده Wine یعنی CodeWeavers تهیه و منتشر شده،‌بومی‌سازی شده است(این وصله‌‌ها در صفحه جدید wine در code.google.com در دسترس میباشد).

DiBona تشریح کرد که گوگل قادر بود بطور وسیعی با CodeWeavers مشارکت کند تا بومی‌سازی Picasa با Wine را به انجام برساند.با اضافه شدن این بهینه‌سازی‌ها(وصله‌های منتشر شده) به کدهای Wine،‌‌آن بایستی کار را برای دیگر پروژه‌هایی که میخواهند بسته‌های خود را برای لینوکس بومی‌سازی نمایند،‌‌خیلی آسانتر کرده باشد.»‌‌‌‌‌در این میان نیز یکی از مدیران Linux Today سؤالی دراین رابطه از DiBona پرسیده:‌که«‌آیا افزایش بهینه‌سازی در Wine کمکی به توسعه بومی‌سازی Google Earth برای اجرا در لینوکس خواهد کرد یا نه؟‌DiBona پاسخ منفی میدهد و توضیح میدهد که Google Earth بر روی کتابخانه‌ها و کد QT و GL تکیه کرده است،‌بنابراین افزایش پشتیبانی Wine نمیتواند کمکی به ما بکند.ضمنا‌ هنوز فاصله زمانی مشخصی برای انتشار Google Earth اعلام نشده است.‌»این یعنی اینکه Google Earth از پایه نوشته خواهد شد و احتیاجی به شبیه‌ساز Wine نیست.(Google Earth دومین پروژه گوگل برای بومی‌سازی میباشد).‌‌

طبق گفته‌های DiBona،‌این بومی‌سازی به توسعه‌دهنده‌گان دیگر(‌توسعه‌دهنده‌گان ابزارهای گوگل) نیز کمک خواهد کرد تا ابزارهای دیگر را که فقط برای ویندوز مایکروسافت منتشر شده‌اند را برای لینوکس نیز بومی‌سازی نمایند.‌
Picasa بر روی توزیعای دبیان و RedHat و توزیهای مبتنی بر آن همانند Mandriva آزمایش و اجرا شده است.برای بررسی دوربین و مجتمع‌سازی به هسته ۲.۶.۱۳ و hal ۰.۵۶ و gnome-volume-manager یا مشابه آن(در KDE) نیاز خواهید داشت.ضمنا Picasa برای دسترسی به دوربین از gPhoto استفاده میکند.همچنین برای استفاده از Picasa نیازی به نصب و استفاده از wine نیست،‌چون Picasa خود در بر گیرنده کتابخانه wine و موتور Gecko میباشد.‌

Picasa چیست؟‌Picasa ابزاری است که به شما کمک میکند تاسریعا تمامی تصاویر موجود در رایانه‌ی خود را پیدا،‌ویرایش و به اشتراک بگذارید.‌هر وقت شما برنامه Picasa را اجرا نمایید،‌بطور خودکار تمامی‌ مسیرهایی که عکسهای شما در آنجا موجود باشد را بررسی میکند(حتی اگر فراموش کرده باشید که فلان عکس را داشته‌اید)‌ و تصاویر را در قالب آلبومی دیدنی و سازمان یافته همراه با تاریخ و اسم دایرکتوری دسته‌بندی میکند تا تشخیص آن برای شما آسان باشد و....
Picasa در سال ۲۰۰۱ ساخته شد و در جولای سال ۲۰۰۴ بوسیله گوگل خریداری شد.

منبع:http://www.technotux.org

خودکارسازی فرایندها در گنو/لینوکس

به عنوان یک مدیر سیستم، شما باید اقداماتی را دائما انجام دهید. هر بار که این اقدامات تکراری را انجام می‌دهید که ممکن است زمانبر باشند، زمان خود را برای انجام سایر امور از دست خواهید داد و ممکن است حتی زمانی برای انجام آنها نداشته باشید. برخی اوقات ممکن است نیاز داشته باشید تا برخی امور را زمانی که فایل سیستم دارای حداقل درگیری است انجام دهید. مانند صبح بسیار زود یا نیمه شب.

راه‌حل این مشکلات خودکارسازی امور و نوشتن اسکریپت‌های پوسته برای آنهاست. شما می‌توانید به سیستم گنو/لینوکس خود بگویید هنگامی که شما در خواب هستید، کارهایتان را انجام دهد.

سه ابزار خودکارسازی که بطور معمول وجود دارند، می‌توانند هر برنامه، دستور یا اسکریپتی را اجرا نمایند. هر یک از این ابزارها دارای روش اجرای خاص خودش می‌باشد.

دستور at

دستور at می‌تواند برنامه یا دستور مورد نظر شما را در ساعت خاصی اجرا کند. این دستور تنها می‌تواند دستور داده شده را یکبار اجرا کند. زمان مشخص شده در دستور at می‌تواند هز زمانی در آینده باشد، از ساعت و دقیقه گرفته تا تعداد روز. استفاده از دستور at به دو شکل امکان پذیر است:

$ at [-q letter][-f file][-mlv] TIME

$ at -c job [job...]

جدول ۱ گزینه‌های این دستور را شرح داده است.

گزینه

شرح

m-

پایان اجرای یک دستور را با ارسال یک نامه‌الکترونیکی به کاربر اعلام خواهد کرد. به طور عادی تنها هنگامی نامه‌الکترونیکی ارسال خواهد شد که خطایی رخ دهد یا دستور اجرا شده دارای خروجی باشد

f file-

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

q letter-

برنامه را در صف مشخص شده قرار خواهد داد. letter به معنی میزان اولویت دستور برای اجرا می‌باشد. بجای آن باید از حروف a تا z یا A تا Z استفاده کنید. دستوراتی که دارای letter بالاتری هستند، با اولویت پایین‌تری اجرا خواهند شد. صف a برای دستور at و صف b برای دستور batch پیش‌گزیده می‌باشند

v-

زمان اجرای دستور را چاپ خواهد کرد

l-

لیستی از تمامی دستورات در حال انتظار برای اجرا را که متعلق به کاربر جاری است، نمایش خواهد داد

c-

دستورات لیست شده در خط فرمان را به خروجی استاندارد که معمولا صفحه نمایش می‌باشد، ملحق می‌کند

جدول۱ گزینه‌های دستور at

زمان بخشی اجباری در دستور at می‌باشد، به غیر از هنگامی که از گزینه l- استفاده می‌کنید. فرمت زمان وارد شده می‌تواند به صورت ۱۲ ساعته با فرمت hh:mm که پس از آن pm یا am قرار خواهد گرفت و یا با فرمت ۲۴ ساعته به صورت چهار رقمی مانند ۱۶۲۰ باشد. همچنین شما می‌توانید بجای استفاده از زمان‌های عددی، از کلمات کلیدی مانند midnight، noon، teatime یا now نیز استفاده کنید.

با مشخص کردن تاریخ می‌توانید محدوده اجرایی دستور at را باز هم گسترده‌تر نمایید. نام ماه را باید بصورت متنی و روز ماه را بصورت عددی مشخص کنید. این امکان وجود دارد که مشخص کنید دستور در چه روزی از هفته اجرا شود. همچنین امکان بکارگیری کلمات کلیدی today یا tomorrow نیز وجود دارد. در صورتی که تنها زمان مشخص شده باشد، دستور در اولین باری که زمان مشخص شده فرا رسد، اجرا خواهد شد.

امکان دیگر اضافه کردن زمان به صورت مثلا now +2 است. در این مثال، دستور ۲ ساعت بعد از زمان کنونی اجرا خواهد شد. کلمه next نیز به معنی 1+ می‌باشد. برای اینکه کاملا نحوه استفاده از دستور at را درک کنید، در زیر مثال‌هایی ارائه شده‌است:

$ ls -l | at 20:34

$ ls -l | at 4:20 pm November 12

$ ls -l | at 16:25 Oct 16

$ ls -l | at midnight next day

$ ls -l | at midnight +1 day

$ ls -l | at 2 am Monday

$ ls -l | at now

پس از اینکه صف بندی دستورات را به اتمام رساندید، از گزینه l- برای لیست کردن آنها استفاده کنید. برای حذف یک دستور زمان‌بندی شده، از دستور atrm استفاده کنید.

دستور batch

نحوه عملکرد دستور batch بسیار شبیه به دستور at می‌باشد با این تفاوت که دستور شما بجای زمان خاص، هنگامی اجرا خواهد شد که میزان بار سیستم (System Load) به زیر 1.5 برسد. در زیر نحوه استفاده از این دستور را مشاهده می‌کنید:

$ batch [-q letter] [-f file] [-mv] [TIME]

نحوه استفاده از گزینه TIME همانند دستور at بوده با این تفاوت که گزینه‌ای انتخابی است.

دستور cron

در سیستم‌هایی که دائما روشن می‌باشند، مانند سیستم‌های سرویس‌دهنده، وظایف خودکار باید با استفاده از نرم‌افزار cron اجرا شوند. cron هنگام راه‌اندازی سیستم اجرا شده و هر دقیقه بررسی می‌کند که چه دستوری را باید اجرا نماید. دستوراتی را که cron اجرا خواهد کرد، در فایل etc/crontab/ تعریف می‌شوند.

دستوراتی که در etc/crontab/ وجود دارند، عموما برای وظایف سیستمی استفاده می‌شوند. به طور پیش‌گزیده سه وظیفه در این فایل تعریف شده‌است که هر کدام از آنها اسکریپت‌های موجود در دایرکتوری‌های خاصی را که قرار است به طور روزانه، هفتگی یا ماهانه اجرا شوند، اجرا می‌کند. شما حتما مجبور نیستید دستورات یا اسکریپت‌های خود را برای اجرا شدن درون این دایرکتوری‌ها قرار دهید. امکان تعریف آنها بصورت جداگانه در فایل etc/crontab/ وجود دارد. در زیر محتویات موجود در یک فایل etc/crontab/ پیش‌گزیده را مشاهده می‌کنید:

# more /etc/crontab

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'

# command to install the new version when you edit this file.

# This file also has a username field, that none of the other crontabs do.


SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


# m h dom mon dow user command

17 * * * * root run-parts --report /etc/cron.hourly

25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily

47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly

52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly

علامت ستاره (*) به معنای هر روز، هفته و ماه می‌باشد. پس از پنج فیلد نخست در هر خط که به ترتیب شامل دقیقه، ساعت، روز درماه، ماه و روز در هفته می‌باشند، نام کاربری که دستور توسط آن اجرا خواهد شد نوشته می‌شود (در مثال بالا کاربر ریشه می‌باشد). سپس دستور به همراه تمامی آرگومان‌ها و اطلاعات مورد نیازش برای اجرا نوشته می‌شود. هنگامی که زمان فعلی با زمان هیر یک از ورودی‌های این فایل یکسان شوند، آن دستور اجرا خواهد شد. جدول ۲ نشاندهنده نحوه نگارش زمان در فایل etc/crontab/ می‌باشد.
در صورتی که دقیقه یا ساعت به صورت یک ستاره (*) تعریف شده باشد، cron آن دستور را در هر دقیقه یا هر ساعت اجرا خواهد کرد. این ممکن است باعث Over Load شدن سیستم در اثر وجود حجم زیادی از پروسه‌ها شود. بنابراین توصیه می‌کنم که علامت ستاره را تنها در فیلد‌های روز درماه، ماه یا روز در هفته استفاده نمایید.

نام فیلد

مقادیر مجاز

m یا دقیقه

۰ تا ۵۹

h یا ساعت

۰ تا ۲۳

dom یا روز در ماه

۱ تا ۳۱

mon یا ماه

۱ تا ۱۲

dow یا روز در هفته

۰ تا ۷ که عدد صفر نشاندهنده یکشنبه می‌باشد

جدول۲ نحوه نگارش زمان در فایل crontab

فایل‌هایی که در شاخه etc/cron.daily/ قرار دارند، بطور روزانه اجرا خواهند شد. در زیر نمونه‌ای از محتویات این دایرکتوری را مشاهده می‌کنید:

# ls -l /etc/cron.daily/

total 52

-rwxr-xr-x 1 root root 311 Jul 30 16:02 0anacron

-rwxr-xr-x 1 root root 429 Feb 2 2004 acct

-rwxr-xr-x 1 root root 502 May 14 2004 bsdmainutils

-rwxr-xr-x 1 root root 782 Apr 26 2004 exim4-base

-rwxr-xr-x 1 root root 419 Oct 27 2003 find

-rwxr-xr-x 1 root root 89 Oct 9 2002 logrotate

-rwxr-xr-x 1 root root 946 May 13 2004 man-db

-rwxr-xr-x 1 root root 86 Aug 18 2002 modutils

-rwxr-xr-x 1 root root 1288 Sep 30 13:00 mysql-server

-rwxr-xr-x 1 root root 495 Nov 19 2001 netkit-inetd

-rwxr-xr-x 1 root root 345 Oct 1 17:45 quota

-rwxr-xr-x 1 root root 2571 Jan 20 2004 standard

-rwxr-xr-x 1 root root 1307 Jul 27 20:00 sysklogd

cron تنها برای مدیران سیستم قابل استفاده نیست و کاربران عادی نیز می‌توانند از آن سود ببرند. هر کاربر می‌تواند فایل crontab خاص خود را با استفاده از دستور crontab filename ایجاد نماید. گزینه‌هایی که به همراه این دستور قابل اجرا هستند عبارتند از گزینه l- برای لیست کردن فایل‌های crontab مخصوص کاربر، گزینه e- جهت ویرایش فایل‌های crontab مخصوص کاربر و گزینه r- برای حذف فایل‌های crontab متعلق به کاربر. فرمت فایل‌های crontab مربوط به کاربران کاملا مشابه با فایل etc/crontab/ می‌باشد. برای اینکه کاربران قادر به استفاده از crontab باشند، باید در فایل etc/cron.allow/ اضافه و یا از فایل etc/cron.deny/ حذف شوند. به اینصورت می‌توانید تعیین کنید که کدامیک از کاربران حق استفاده از cron را خواهند داشت. در صورتی که هریک از این فایل‌ها بر روی سیستم شما وجود ندارند، می‌توانید بطور دستی آنها را ایجاد کنید. ایجاد یکی از فایل‌های cron.allow یا cron.deny کافی خواهد بود. درون این فایل‌ها، هر یک از نام‌های کاربری را در یک خط جداگانه تایپ نمایید.

دستور anacron

در مواردی که کامپیوتر به صورت ۲۴ ساعته روشن و فعال نیست، cron پاسخگوی اجرای امور نخواهد بود، در حالی که ابزار anacron این وابستگی حتمی به روشن بودن ۲۴ ساعته کامپیوتر را ندارد. در صورتی که کامپیوتر در ساعتی که قرار است دستوری اجرا شود خاموش باشد، anacron حتما آنرا به هر حال بعدا اجرا خواهد کرد.

همانند cron، ابزار anacron نیز دارای یک فایل پیکربندی است که دستوراتی را که باید اجرا کند را از درون آن می‌خواند. هر خط این فایل به یک دستور مجزا اختصاص دارد. در زیر یک فایل پیکربندی نمونه anacron که در مسیر etc/anacrontab/ قرار دارد نمایش داده شده‌است:

# more /etc/anacrontab

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.


SHELL=/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin


# These replace cron's entries

1 5 cron.daily nice run-parts --report /etc/cron.daily

7 10 cron.weekly nice run-parts --report /etc/cron.weekly

@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly

نخستین شماره نشاندهنده وقفه یا فاصله تعداد روزهایی است که بین دو اجرای دستور قرار خواهند گرفت. شماره دوم نمایش دهنده تاخیر پیش از اجرای دستور به مدت ثانیه می‌باشد. پس از این دو شماره نیز دستور با پارامترها و آرگومان‌های مورد نیازش قرار خواهد گرفت.

هنگامی که دستوری اجرا می‌شود، زمان آن ثبت شده و anacron می‌داند که در چه زمانی آنرا اجرا کرده و چه زمانی باید آنرا مجددا اجرا کند. زمان بین دو اجرا نمی‌تواند کمتر از یک روز باشد، زیرا anacron مقایسه خود را بر مبنای روز و نه بر مبنای زمان انجام می‌دهد. هنگامی که اجرای دستوری به اتمام می‌رسد، anacron آنرا با یک پیغام اعلام می‌کند.

نحوه استفاده از این دستور به شکل زیر می‌باشد:

# anacron [-s][-f][-n][-d][-q][job]...

# anacron -u [job]...

جدول۳ لیستی از گزینه‌های قابل استفاده به همراه این دستور را نمایش می‌دهد. این گزینه‌ها به قابلیت انعطاف این ابزار می‌افزایند. هرچند که anacron یک سرویس بوده و در هنگام بوت شدن کامپیوتر یا تغییر در سطوح اجرایی(runlevels)، اجرا می‌شود. برای تغییر anacron می‌توانید اسکریپت etc/init.d/anacron/ را ویرایش نمایید، ولی این کار را در صورتی انجام دهید که با اسکریپت نویسی آشنایی داشته باشید.

گزینه

شرح

f-

زمان ذخیره شده را در نظر نگرفته و دستورات را اجرا خواهد کرد

u-

زمان‌های ذخیره شده را به زمان فعلی بروز می‌کند، ولی هیچ دستوری را اجرا نخواهد کرد

s-

اجرای دستورات را به صورت پی‌‌در‌پی انجام خواهد داد. دستور بعدی قبل از اتمام دستور در حال اجرای جاری اجرا نخواهد شد

n-

دستورات را اکنون اجرا می‌کند

d-

دستور را در پس‌زمینه انجام نخواهد داد. این گزینه خروجی دستور را نمایش داده و خطاها در syslog ثبت خواهند شد. خروجی دستورات نیز طبق روال پست خواهد شد

q-

جلوی هرگونه ارسال پیام به خروجی استاندارد را خواهد گرفت. این گزینه تنها به همزاه گزینه d- قابل استفاده می‌باشد

جدول۳ گزینه‌های قابل استفاده به همراه دستور anacron

منبع:http://www.technotux.org