نوشته شده توسط
persian_farvahar
سلام دوستان
عید قربان رو به همتون تبریک میگم
اول از همه بگم که خواهشآ نگید جستجو کنید!
چون به اندازه کافی جستجو کردم.
منابع فارسی که خیلی کم گیر میاد از گوگل کمک گرفتم به جای فهمیدن گیج شدم.
به قول سیاوش که میگه تن به سایه ها نمیدم بسه هرچی سختی دیدم.
خوب بزارید بگم مشکلات من کجاست:
- آیا برای استفاده از 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