PDA

View Full Version : سوال: در مورد Cron job



persian_farvahar
سه شنبه 19 آذر 1387, 00:01 صبح
سلام دوستان
عید قربان رو به همتون تبریک میگم
اول از همه بگم که خواهشآ نگید جستجو کنید!:خجالت: چون به اندازه کافی جستجو کردم.
منابع فارسی که خیلی کم گیر میاد از گوگل کمک گرفتم به جای فهمیدن گیج شدم.
به قول سیاوش که میگه تن به سایه ها نمیدم بسه هرچی سختی دیدم.

خوب بزارید بگم مشکلات من کجاست:


آیا برای استفاده از Cron job باید چیزی رو را با دستوری فعال کرد یا نه اگه آره چه دستوری؟
Crontab چیه؟
برای مثال برای اینکه بخوام هر 1 ساعت یه backup بگیرم از چه دستوری باید استفاده کنم (منظورم اون 5 تا المنت نیستا) یا باید دستورات PHP رو تویه فایل جداگانه بزارم.
در ادامه سوال 3 اگر باید تو فایل جداگانه باشه مسیر رو چه جوری قرار بدم
تو بعضی از سایتها دیدم که برای حذف فایلهاشون اینجوری عمل کردن. این چه جورشه؟

find /path/to/cache/files -maxdepth 1 -type f -mtime +7 -exec rm -f {} \;
آیا فرفی داره که زمان و روز و... اجرای اسکریپتها رو قبل و یا بعد دستورات نوشت؟

در کل اگه توضیحات بیشتری هم بدید ممنون میشم.

persian_farvahar
چهارشنبه 20 آذر 1387, 09:49 صبح
یعنی کسی نیست درست استفاده از Cron job رو بدونه
فکر مینکم به خاطر همین منابع فارسی برای این گرینه وجود نداره.

yaqubian
چهارشنبه 20 آذر 1387, 12:02 عصر
دوست عزیز
اول اینو نیگاه کنید ببینید کارتون راه می افته:
http://www.backyou.com/fa/cpanel_corn_jobs.php
موفق باشید

persian_farvahar
چهارشنبه 20 آذر 1387, 13:03 عصر
ممنون ولی این چیزایی که تو این لینکی که قرار دادید رو میدونم. مشکل من همون چندتا سوالی که قرار دادم اونم به خاطر اینه که گیج شدم

narsic
چهارشنبه 20 آذر 1387, 16:05 عصر
با سلام
دوست عزیز برای اجرای فایل های php از کد زیر استفاده کنید


php /home/user_control_panel/www/file_name.php

زمانش رو هم که دیگه بر اساس لیست تنظیم کنید.
موفق باشید

persian_farvahar
چهارشنبه 20 آذر 1387, 19:38 عصر
با سلام
دوست عزیز برای اجرای فایل های php از کد زیر استفاده کنید


php /home/user_control_panel/www/file_name.php
زمانش رو هم که دیگه بر اساس لیست تنظیم کنید.
موفق باشید



ممنون دوست عزیز
تو قسمت user_control_panel باید نام کاربری رو بنویسم درسته؟
و اینکه در مورد قسمت 5 نظری ندارین؟

narsic
چهارشنبه 20 آذر 1387, 19:54 عصر
ممنون دوست عزیز
تو قسمت user_control_panel باید نام کاربری رو بنویسم درسته؟
و اینکه در مورد قسمت 5 نظری ندارین؟
با سلام
د.ست عزیز درسته باید نام کاربری کنترل پنل سایتتون رو بنویسید .
در مورد قسمت پنج هم یک فایل php رو فراخوانی میکنن مه دستورات حذف درونش قرار داره .
موفق باشید

persian_farvahar
پنج شنبه 21 آذر 1387, 09:17 صبح
در مورد قسمت پنج هم یک فایل php رو فراخوانی میکنن مه دستورات حذف درونش قرار داره . موفق باشید نه منظورم قسمت 5 سوال خودم بود.

amirhosein
جمعه 22 آذر 1387, 09:58 صبح
اینو بخونی به کارت میاد:
http://barnamenevis.org/forum/showpo...5&postcount=17 (http://barnamenevis.org/forum/showpost.php?p=496185&postcount=17)

persian_farvahar
جمعه 22 آذر 1387, 23:52 عصر
ممنون از راهنمایی هاتون
یه سوال برام پیش اومد :
ن تو هر جا هر نمونه ای که دیدم فقط یک Jobs رو قرار داده بودن آیا میشه 2 یا 3 و ... Jobs برای Cron نوشت؟
مثلآ یکی برای backup و یکی برای حذف کردن فایلها بعد از یه مدت زمان یکی برای فرستادن ایمیل به کاربران.

ولی هنوز جواب قسمت 5 سوالمو نگرفتم چرا در اون قسمت با دستورات لینوکسی نوشتن؟

narsic
شنبه 23 آذر 1387, 16:26 عصر
بله میشه .
چندتا cron فعال کنید .
سوال 5 تونم فک میکنم از دستورات پوسته لینوکس باشه (به این دستورات تسلطی ندارم)

parsajax
سه شنبه 10 دی 1387, 06:23 صبح
سلام دوستان
عید قربان رو به همتون تبریک میگم
اول از همه بگم که خواهشآ نگید جستجو کنید!:خجالت: چون به اندازه کافی جستجو کردم.
منابع فارسی که خیلی کم گیر میاد از گوگل کمک گرفتم به جای فهمیدن گیج شدم.
به قول سیاوش که میگه تن به سایه ها نمیدم بسه هرچی سختی دیدم.

خوب بزارید بگم مشکلات من کجاست:


آیا برای استفاده از Cron job باید چیزی رو را با دستوری فعال کرد یا نه اگه آره چه دستوری؟
Crontab چیه؟
برای مثال برای اینکه بخوام هر 1 ساعت یه backup بگیرم از چه دستوری باید استفاده کنم (منظورم اون 5 تا المنت نیستا) یا باید دستورات PHP رو تویه فایل جداگانه بزارم.
در ادامه سوال 3 اگر باید تو فایل جداگانه باشه مسیر رو چه جوری قرار بدم
تو بعضی از سایتها دیدم که برای حذف فایلهاشون اینجوری عمل کردن. این چه جورشه؟

find /path/to/cache/files -maxdepth 1 -type f -mtime +7 -exec rm -f {} \;
آیا فرفی داره که زمان و روز و... اجرای اسکریپتها رو قبل و یا بعد دستورات نوشت؟

در کل اگه توضیحات بیشتری هم بدید ممنون میشم.

براي استفاده از كرون بايد اين قابليت تو كنترل پنلتون باشه كه تو اكثرا هست
كرون جاب يه دامون لينوكسه كه يه سري كار هارو بر اساس تيبلي كه زمان انجام و عمليات رو مشخص كرده انجام ميده
ببين قائده كلي زمان بندي به صورت زير است
توجه : حداقل زمان قابل انتخاب به فاصله 1 دقيقه هست يعني هر 1 دقيقه يك بار


minute hour day-of-month day-of-week command

براي تكرار در همه بازه هاي زماني از ستاره * استفاده ميكنيم
جهت اجرا بر اساس يه بازه زماني از / استفاده مينمائيم
جهت اجراي يه فايل پي اچ پي در هر 5 ساعت يك بار از كد زير استفاده ميكنيم



0 */5 * * /usr/local/bin/php -f /home/..../cron/backup.php


البته بايد آدرس مفسر پي اچ پي رو از مدير سرور بپرسي و اينكه بايد PHP Cli فعال باشه

بايد به اين موضوع توجه بشه كه اين كرون ربتي به عملي كه ميخواي انجام بدي نداره فقط اونو سر يه زماني اجرا ميكنه
حالا شما عملياتي كه ميخواي انجام بدي رو بايد تو يه اسپريپت بنويسي تا سر اون زمان اجرا بشه و كاري كه ميخواي انجام شه

دستور فايند جهت جستجو فايل ها استفاده ميشه
اون چيزايي كه جلوش ميبيني به عنوان سوئيچ استفاده ميشه

/path/to/cache/files پوشه اي كه قراره جستجو بشه
-maxdepth 1 تا عمق يه پوشه داخلي رو جستجو ميكنه
-type f يعني فقط فايل ها رو مورد عمليات قرار بده
-mtime +7 يعني بيش از 7 روز از عمر فايل ميگذره
-exec به ازاي هر نتيجه كد بعد رو بر روي نتيجه اجرا ميكنه
-rm -f {} فايل مورد نظر رو پاك ميكنه عنوان فايل به جاي {} قرار ميگيره
نه بايد بر اساس قائده اي كه گفتم بنويسي
در ضمن فكركنم توي اينترفيسي كه كد رو وارد ميكني خودش فيلد هار و جدا جدا كرده باشه

توضيحات اضافي
در صورتي كه اسكريپتي داري كه ميخواي توي زمانبندي كمتر از دقيقه انجام بشه بايد اونو تو يه فايل شل بنويسي و با يه حلقه و يه استوپ (بر اساس زماني كه نياز داري) مثلا 30 سانيه اي اونو اجرا كني



#!/bin/bash
while [ true ]
do
/usr/local/bin/php /home/.../chat.php
sleep 10
done