خطای ntfsresize: command not found

احتمالا اگر روی CentOS 8 ویرچوالایزر برای ساخت KVM نصب کرده باشید، هنگام نصب ایمیج سرورهای ویندوزی ممکنه با خطا مواجه بشید. لاگ خطاها رو که بررسی کردم عموما به شکل زیره:

[Command] ntfsresize -P --force /dev/mapper/vg0-xxxxxxx--yyyyyyyyyyyyyyyy--zzzzzzzzzzzzzzzzzz 2>&1	[Retval] 127
[Output]: Hide
Array
(
    [0] => sh: ntfsresize: command not found
)

[Command] ntfsfix -b /dev/mapper/vg0-xxxxxxx--yyyyyyyyyyyyyyyy--zzzzzzzzzzzzzzzzzz 2>&1	[Retval] 127
[Output]: Hide
Array
(
    [0] => sh: ntfsfix: command not found
)

برای رفع این اشکال کافی پکیج‌های زیر رو نصب کنید و مجددا VPS رو ریبیلد کنید:

yum install epel-release
yum install ntfsprogs

و تمام!

خطای Too many open files در MySQL

گاها ممکنه پیش اومده باشه هنگام کار با MySQL خصوصا تو سرورهای سی‌پنلی خطایی به شکل زیر دریافت کرده باشید:

Error    : Got error 24 "Too many open files" from storage engine MyISAM

برای رفع این خطا اول وارد MySQL shell بشید ( با تایپ دستور mysql روی شل لینوکس) و دستور زیر رو اجرا کنید تا مشخص بشه محدودیت open files چقدر هست:

SHOW VARIABLES LIKE 'open_files_limit';

خروجی این دستور چیزی مشابه زیر خواهد بود:

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 10000 |
+------------------+-------+
ادامه خواندن خطای Too many open files در MySQL

تبدیل VPS با کرنل OpenVZ به KVM

اگر قصد داشتید وی‌پی‌اسی رو که روی OpenVZ و Virtuozzo هست رو به صورت فول به یک سرور با مجازی‌سازی KVM منتقل کنید، این کار قابل انجامه اما به شرطی که سیستم عامل هر دو VPS یکسان باشه. فرضا هر دو Cenos 7 باشن.

برای انجام این کار اول باید VPS مبدا که روی OpenVZ هست رو خاموش کنید، سپس به Node اصلی سرور OpenVZ از طریق SSH متصل بشید.

ابتدا پکیج زیر رو روی نود اصلی OpenVZ نصب کنید. (فرضا اینجا سیستم عامل نود اصلی ما Centos هست)

yum install mingetty

سپس فایل زیر رو ادیت کنید

nano /etc/inittab
ادامه خواندن تبدیل VPS با کرنل OpenVZ به KVM

رفع اشکال lfd on HOSTNAEM: Email queue size alert

اگر احیانا از cPanel و میل سرور exim استفاده می‌کنید و روی این‌ها lfd نصب کردید ممکنه گاها پیام‌هایی به شکل زیر از lfd دریافت کنید:

 
lfd on HOSTNAME: Email queue size alert
Time: Mon Apr 6 14:41:15 2020 +0100

The exim delivery queue size is 1049

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

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

exim -bp | exiqgrep -i | xargs exim -Mrm

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

برای این که ببینید در حال حاضر چه تعداد ایمیل در صف exim دارید هم می‌تونید از دستور زیر استفاده کنید:

exim -bpc

نمایش IP صحیح بازدیدکنندگان در Engintron

درود بر شما

همونطور که احتمالا اطلاع دارید Engintron یک ماژول از وب سرور انجین ایکسه که برای استفاده از این وب سرور روی سرورهای سی‌پنلی ساخته شده که به عنوان ریورز در کنار آپاچی پرفورمنس نسبتا مناسبی رو ارائه می‌ده.

ممکنه برای شما هم پیش اومده باشه که تو لاگ‌های آپاچی دیده باشید که به جای آی‌پی همه بازدیدکننده‌ها آی‌پی سرور درج شده باشه و کدهای php مثل کد زیر هم به جای برگردوندن آی‌پی بازدیدکننده آی‌پی سرور رو نمایش بدن.

$_SERVER['REMOTE_ADDR']

برای رفع این مشکل دو اقدام باید انجام داد،

اول از طریق EasyApache در پنل WHM باید ماژول‌های آپاچی mod_remoteip و mod_cloudflare رو فعال کنید.

سپس فایل زیر رو ادیت کنید:

nano /etc/apache2/conf.modules.d/370_mod_remoteip.conf

محتوای این فایل باید به صورت زیر باشه:

# Enable mod_remoteip
LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader        X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1 192.168.1.1 192.168.1.2

تو کدهای بالا به جای 192.168.1.1 باید آی‌پی سرورتون رو وارد کنید و اگر IP اختصاصی هم دارید برای اکانتی به جای 192.168.1.2 وارد کنید، اگر هم آی‌پی اشتراکی یا اختصاصی دیگه‌ای ندارید که نیازی نیست چیز دیگه‌ای اضافه بشه.

مورد دیگه‌ای هم که باید مدنظر داشته باشید اینه که با فعال کردن mod_cloudflare باید کانفیگ‌های زیر به مسیر /etc/nginx/nginx.conf اضافه بشه، اگر نبود به صورت دستی اضافه کنید تا آی‌پی بازدیدکننده‌های سایت‌هایی که از کلودفلر استفاده می‌کنن هم به درستی لاگ بشه.

    # CloudFlare IPs
    # List from: https://www.cloudflare.com/ips-v4
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    # List from: https://www.cloudflare.com/ips-v6
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2405:8100::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29;

    # Replace with correct visitor IP
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;

و پایان!

اسکریپت ریموت بکاپ سی‌پنل و دایرکت ادمین

درود بر شما

همانطور که استحضار دارید تهیه نسخه‌های پشتیبان یا بکاپ یکی از مهم‌ترین و ضروری‌ترین کارهایی هست که هر سرویس‌دهنده هاستینگ و اصولا هرکسی که سرور داره و کار مدیریت سرور می‌کنه باید انجام بده. خدای ناکرده اگر اشکالی برای یوزری پیش بیاد و شما بکاپ نداشته باشید دشمن شاد خواهید شد.

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

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

کار زمان بریه اگر بخوایم خودمون بصورت دستی بریم آخرین نسخه لوکال بکاپ هر سرور رو به سرور ریموت بکاپ انتقال بدیم و فرضا اگر شما صد دستگاه سرور داشته باشید هر هفته چندین ساعت درگیر خواهید بود.

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

روش کار اسکریپت به این صورته که آخرین نسخه فول بکاپ سرورهای سی پنلی (کامپرس یا اینکریمنتال) یا دایرکت ادمینی رو به دایرکتوری home سرور ریموت rsync می‌کنه و در دایرکتوری به اسم هاست نیم سرور لوکال بکاپ یا آی‌پی سرور (بسته به این که شما در برابر متغیر HOST در اسکریپت کدوم رو می‌نویسید) منتقل می‌‌کنه.

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

https://github.com/Farshid928/bash-scripts/blob/master/cp-da-remote-bak.sh

برای این که این اسکریپت رو برای چندین سرور توی کران جاب اجرا کنید کافیه با اسکریپت زیر ترکیبش کنید.

اسکریپت خواندن خط به خط محتویات یک فایل

و تمام!

خطای sender verify fail در سی‌پنل

درود بر شما

لکن اگر مثل ما نیم روزی روی تنظیم اکانت ایمیل‌ها روی اوتلوک (خصوصی روی سرورهای سی‌پنلی) خطایی مطابق زیر ملاحظه فرمودید:

"Sending' reported error (0x800CCC65) : 'Your outgoing (SMTP) e-mail server has reported an internal error. If you continue to receive this message, contact your server administrator or Internet service provider (ISP). The server responded: 503 Valid RCPT command must precede DATA'"

و روی لاگ فایل وب سرور اگزیم که با دستور زیر قابل بررسیه:

tail -f /var/log/exim_rejectlog 

خطاهایی مثل زیر ملاحظه فرمودید:

 sender verify fail for : No such person at this address.
F= A=dovecot_login:test@farshid.xyz rejected RCPT : Sender verify failed

لکن موقتا می‌تونید وارد WHM و سپس Exim Configuration Manager بشید و گزینه Sender Verification رو روی off بذارید و تنظیمات رو ذخیره کنید تا کانفیگ exim ریبیلد و ریستارت بشه.

غیرفعال بودن این گزینه می‌تونه مشکل آفرین باشه. بعدا که دلیل اصلی خطا مشخص شد غیرفعالش کنید.

و تمام