گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

دانلود همه فایل‌های یک وب سایت از طریق FTP

نویسنده:
10 دسامبر 16

اگه توسعه‌دهنده وب باشین خیلی مواقع پیش میاد که نیاز دارین همه فایل‌های یک وب سایت را دانلود کنین. اگه سایت مورد نظر روی میزبانی واقع باشه که Cpanel یا کلاً یک Filemanager داشته باشه میتونید یک نسخه Zip شده از فایل‌ها بگیرین.

اما این فقط توی سناریو‌هایی جواب میده که حجم سایت خیلی بزرگ نشه. اگه حجم به گیگابایت برسه احتمال داره اصلاً اسکریپت Timeout بشه یا به خاطر عدم پشتیبانی از Resume و عدم وجود حجم کافی برای پشتیبان گیری روی دیسک به مشکل بخورین. سناریو‌هایی هم هست که سایت روی یک VPS قرار داره و پنل مدیریتی هم وجود نداره. یا کلاً جز FTP چاره دیگه‌ای نداریم.

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

wget -r -l 0 --user="username" --password="password" ftp://server.com/

ایجاد Cron Job (کرون جاب) به صورت دینامیک با PHP

نویسنده:
23 دسامبر 14

به طور کلی هر وقت بخواهیم یکسری عملیات را به صورت تکراری در بازه های زمانی مشخص انجام بدیم از Cron Job استفاده میکنیم. Cron یک سرویس برای زمانبندی انجام کار ها در لینوکس هست که با دستور crontab میشه اون را مدیریت کرد. معمولاً ما از طریق cPanel میتونیم Cron Job های مورد نظرمون را تعریف و به کار بگیریم. اما اگه بخواهیم Cron Job ها را به صورت دینامیک ایجاد کنیم چی ؟

برای ایجاد Cron Job به صورت دینامیک سه تا سناریو داریم :
– از یک هاست اختصاصی حالا VPS یا Dedicated استفاده میکنیم و به دستور crontab از طریق PHP دسترسی داریم. در این حالت با تابع exec و دستور crontab به راحتی میتونیم cronjob ها را مدیریت کنیم.

– از یک هاست Shared استفاده میکنیم که از cPanel نسخه ۱۱.۳۲ به بالا استفاده میکنه ، در این حالت cPanel API2 – Cron را در اختیار داریم و براحتی با cPanel از طریق PHP میتونیم cronjob ها را مدیریت کنیم. اینجا توی پاسخ تأیید شده میتونید مثال‌های کاربردی را ببنید.

– از یک هاست Shared استفاد میکنیم که cPanel قدیمی داره و از cPanel API2 پشتیبانی نمیکنه ولی از SSH پشتیبانی میکنه و دسترسی های مورد نیاز هم از این طریق به ما میده. میتونید یکبار از طریق یک نرم‌افزار مثل putty کامل چک کنید و مطمئن بشین میتونید Cron Job ها را مدیریت کنید. حالا از طریق PHP libssh2 میتونید Cron Job ها را مدیریت کنید. اینجا یک آموزش کامل لاتین در این مورد هست.

– از یک هاست Shared استفاد میکنیم که cPanel قدیمی داره و از cPanel API2 و SSH (من جای شما بودم هاستم را عوض میکردم) پشتیبانی نمیکنه. در این حالت باید از سرویس های Cronjob دیگه که امکان مدیریت از طریق وب سرویس را فراهم میکنند استفاده کنیم. یکی از این سایت‌ها setcronjob.com هست که خودم زیاد ازش استفاده کرده‌ام و توصیه و تاییدش میکنم (نه اینکه هاست های من از دو روش بالا پشتیبانی نمیکنند بلکه کلاً روی سرویس های shared ترجیح میدم از سرویس های آنلاین استفاده کنم که گزارش گیری داره و از یک جا میتونم Cron Job های همه سایت‌ها را مدیریت کنم).