خطای Your license OS (CentOS 6) does not match the OS installed (CentOS 7) دایرکت ادمین

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

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

یکی از اشکالاتی که در این خصوص ممکنه ایجاد بشه این هست که ممکنه مشکل ناهماهنگ بودن ورژن لایسنس دایرکت ‌ادمین و نسخه سرور ایجاد بشه. برای من مشکل ایجاد شده اینطور بود که لایسنس دایرکت ادمین هماهنگ با centos 6 روی سروری با نسخه 7 از سیستم عامل centos نصب شده بود، و برای اجرای آپدیت‌های کاستوم بیلد هشدار زیر دریافت می‌شد:

Your license OS (CentOS 6) does not match the OS installed (CentOS 7).
ادامه خواندن خطای Your license OS (CentOS 6) does not match the OS installed (CentOS 7) دایرکت ادمین

عدم شناسایی فایل سیستم توسط زبیکس

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

همونطور که می‌تونید پارتیشن‌های سرورهای لینوکسی توسط Discovery rules بصورت خودکار روی زبیکس شناسایی می‌شن، مثلا دایرکتوری / رو به عنوان دایرکتوری اصلی سرور اضافه و مانیتور می‌کنه. این شناسایی خودکار هر یک ساعت یک‌بار انجام می‌شه، یعنی اگر شما همین الان یک سرور رو به زبیکس اضافه کنید، باید حداقل تا یک ساعت دیگه آیتم‌های فایل سیستم براتون اضافه بشن. با این حال اگر سرورهای شما با استفاده از مجازی‌ساز virtuozzo ایجاد شده باشن، ممکنه نوع فایل سیستم سرور توسط زبیکس شناسایی نشه و در بخش items از اپلیکیشن Filesystems هیچ مقداری نمایش داده نشه. چون نوع فایل سیستم مورد استفاده در virtuozzo ممکنه خیلی استاندارد و فراگیر نباشه.

خب، برای این که بدونید فایل سیستم استفاده شده در سرور شما چیه، کافیه مسیر زیر رو یه بررسی داشته باشید:

cat /proc/mounts

روی سرور من فایل سیستم مورد استفاده سرور simfs بود که توسط زبیکس بصورت پیش‌فرض قابل شناسایی نبود.

/dev/simfs / simfs rw,relatime,usrquota,grpquota 0 0

برای این که این فایل سیستم توسط زبیکس شناسایی بشه رو اینترفیس زبیکس از منوی Administration وارد تب General بشید و از منوی کشویی سمت راست گزینه Regular expressions رو انتخاب کنید. پس از ورود به این بخش روی File systems for discovery کلیک کنید و تو بخش Expression فایل سیستم موردنظر خودتون رو که برای من simfs بود و برای شما هرچیز دیگری که هست وارد کنید و تغییرات رو آپدیت کنید.

اضافه کردن فایل سیستم به زبیکس

و تمام

اضافه کردن یوزر در دایرکت ادمین از طریق خط فرمان

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

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

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

با استفاده از این اسکریپت و کامند ایجاد یوزر در لینوکس می‌تونیم یک یوزر با دامنه موردنظرمون از طریق ترمینال لینوکس روی دایرکت ادمین ایجاد کنیم.

ادامه خواندن اضافه کردن یوزر در دایرکت ادمین از طریق خط فرمان

پر شدن صف ایمیل WHM با ایمیل‌های روت

گاها ممکنه روی سرور سی‌پنلی شما ارسال و دریافت ایمیل با تاخیر زیادی انجام بشه. یا حتی ممکنه بدون این که اکانت مشکل‌سازی روی سرور داشته باشید که ارسال ایمیل اسپم انجام بده IP سرورتون بلک لیست بشه، در چنین مواردی طبعا اولین کاری که می‌کنید باید به صف ایمیل (Mail Queue Manager) تو پنل WHM مراجعه کنید که ببینید چه خبره.

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

ادامه خواندن پر شدن صف ایمیل WHM با ایمیل‌های روت

شل اسکریپت بکاپ از دیتابیس‌های MySQL

لکن اگر نیاز به اسکریپتی دارید که بتواند از همه دیتابیس‌هاس MySQL یک سرور بکاپ بگیرد می‌توانید از اسکریپت زیر استفاده نُمایید.

 #! /bin/bash
 
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/backup/dbs"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump

mkdir -p "$BACKUP_DIR/$TIMESTAMP"
 
databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
 
for db in $databases; do
  $MYSQLDUMP --force --opt -u root --databases $db | gzip > "$BACKUP_DIR/$TIMESTAMP/$db.gz"
done

find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \;

echo Databases Backup Task Completed On $HOSTNAME

کار این اسکریپت این هست که از همه دیتابیس‌های MySQL بکاپ گرفته، با فرمت gz فشرده‌سازی کرده و در مسیر زیر نگهداری می‌کند.

/backup/dbs

هربار اسکریپت اجرا می‌شه دیتابیس‌های دامپ شده در یک دایرکتوری که نام اون تاریخ روز اجرای اسکریپت هست ذخیره می‌شن.

همچنین لاین زیر هم بدین منظور بکار رفته که بکاپ‌هایی که 30 روز یا بیشتر از زمان ایجادشون گذشته حذف بشن تا خدای‌ناکرده مشکل کمبود فضای دیسک هم ایجاد نشه.

find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \;

شناخته نشدن آدرس localhost برای اتصال به دیتابیس

در جمعه‌ای که گذشت با یک مشکل عجیب مواجه شدم! یهو مانیتورینگ اعلام کرد یکی از سرورها داون شده. از اونجایی که مانیتورینگ ما یک آدرس رو چک می‌کنه که توی اون یک کانکشن به دیتابیس زده می‌شه و در صورتی که ارتباط برقرار بشه، سرور رو آپ در نظر می‌گیره چون سرور در دسترس بود اولین احتمالی که دادم استاپ شدن سرویس دیتابیس mysql سرور بود. تعجبم وقتی بیشتر شد که به سرور متصل شدم و دیدم که mysql آپ هست و بدون مشکل داره کار می‌کنه.

خطای فایل php مانیتورینگ رو چک کردم بصورت زیر بود.

mysqli_connect(): (HY000/2002): No such file or directory i
n /home/...

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

ادامه خواندن شناخته نشدن آدرس localhost برای اتصال به دیتابیس

اسکریپت تهیه بکاپ از اکانت‌های ساسپند شده در cPanel

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

ادامه خواندن اسکریپت تهیه بکاپ از اکانت‌های ساسپند شده در cPanel