می دانید که از cron برای انجام یک عمل ( job ) به صورت خودکار و در دوره های زمانی مشخص استفاده می شود. استفاده های بسیار زیادی برای استفاده از cron وجود دارد. اجرای یک دستور هر روز ساعت 8 ، گرفتن نسخه های پشتیبان ( backup ) و یا حتی دانلود کردن فایل ها و ایمیل های شما در نیمه شب !!!
اما در اینجا ، به اجرا کردن یک اسکریپت php با استفاده از cron می پردازم. انجام این کار اهداف متفاوتی می تواند داشته باشد، ارسال کردن اطلاعات مشخصی به دیتابیس ، خواندن اطلاعات یک فایل متنی ، و یا شبیه آن. و یا اجرا کردن شلغم lol دو راه برای انجام این کار به نظرم می رسد، lynx و wget /
استفاده از Lynx :
من این روش را ترجیح می دهم، با این روش امکان ذخیره و بررسی های بعدی نیز وجود دارد ، و شما
واقعا از یک مرورگر استفاده می کنید.کافی است تا این خط را به فایل تنظیمات cron اضافه کنید. (مثلا در لینوکس اینجا : etc/crond.conf/ )
* * * * *
lynx -dump http://pathofurscript/target_script.php
> ~/logs/phpsc.log 2> ~/logs/phpsc.err
توضیح اول : حتما با قالب فرامین در cron آشنا هستید، اما برای یاد آوری به ستاره های ابتدای خط بالا اشاره می کنم. ترکیب این ستاره ها یک زمان یکتا را مشخص می کند.
minute hour DayOfMonth month DayOfWeek
به عنوان مثال ، دستور زیر هر روز ساعت 7.30 تکوپیدیا را لود می کند !!!
30 7 * * * lynx
http://weblog.techopedia.net
توضیح دوم : سوئیچ (فارسی را پاس بدارید، کلید، گزینه..) dump- در مرورگر lynx تنها نتایج را یک بار نشان می دهد و تمام.
توضیح سوم : نتایج نمایش در فایل phpsc.log و در صورت وجود خطا در phpsc.err ذخیره می شوند. به این وسیله شما میتوانید از نتایج کار آگاه شوید.
استفاده از wget :
نتیجه تا حدودی با مورد قبل یکسان است، اما ممکن است داده های اضافی هم داشته باشید. ( هر چند برخی اوقات شاید گزارش های wget مفید باشد. ) در هر صورت به مانند lynx با استفاده از wget هم
این کار را می توانید انجام دهید ، با این تفاوت که شما چون قصد فراخوانی آن صفحه را داشته اید، اسکریپت بر روی سرور اجرا خواهد شد. نکته فراموش نکنید اگر قصد انجام این کار را دارید از وب سرور محلی باید حتما استفاده کنید، در غیر این صورت کدمنبع اسکریپت را دریافت خواهید کرد.
* * * * * wget –delete-after
http://pathofurscript/target_script.php
توضیح : با استفاده از delete-after– فایل را بعد از فراخوانی از بین خواهید برد.
فراخوانی php از خط فرمان
چون این روش محدودیت هایی دارد، و شاید کاربردی متفاوت ، در قالب مورد های بالا مطرح نشد. شما می توانید فایل ها را از خط فرمان اجرا و کامپایل کنید. و یا یک فرمان php را اجرا کنید. دقت کنید در حالت دسترسی به وب سرور خود را ندارید و فقط از مفسر php استفاده می کنید. مثلا
/usr/bin/php stand_alon_script.php
نکته / برای اجرای cron با تنظیمات جدید باید آن را دوباره راه اندازی کنید.
دیدگاهها
4 پاسخ به “اجرای خودکار اسکریپت های php با استفاده از cron”
خیلی ممنونم ..فایل رو پیدا کردم
مطلب جالبی بود. ولی من از مدت ها پیش یک سوال بدون پاسخ دارم: چگونه می توانم بعضی کارها را در روی Hosting خودم زمان بندی (Schedule) کنم؟