وقتی فضای دیسک سرور سیپنل پر میشود، گرفتن بکاپ معمولی تقریباً غیرممکن است. ساخت فایل کامل بکاپ روی خود سرور با خطای «No space left on device» مواجه میشود. در این شرایط، بهترین و کممصرفترین روش، استفاده ترکیبی از دستور pkgacct با فلگ –skiphomedir و انتقال فایلها با rsync است. این روش فضای بسیار کمی روی سرور مبدأ اشغال میکند و برای اکانتهای بزرگ بسیار مناسب است. در ادامه علاوه بر روش بکاپ، نحوه ریستور کامل را نیز توضیح میدهیم.چرا این روش؟
- فقط تنظیمات و دیتابیسها را پکیج میکند (حجم کم).
- فایلهای حجیم (مثل public_html و ایمیلها) را مستقیم و بدون ساخت آرشیو محلی منتقل میکند.
- دیتابیسها بهصورت خودکار داخل پکیج قرار میگیرند.
- سرعت انتقال بالا و مصرف فضای موقت بسیار پایین.
پیشنیازها
- دسترسی SSH با کاربر root به سرور مبدأ و مقصد
- نام کاربری اکانت سیپنل (در این آموزش از username استفاده میکنیم)
بخش اول: مراحل بکاپ
مرحله ۱: ساخت پکیج کوچک با pkgacct
وارد سرور مبدأ شوید و دستور زیر را اجرا کنید:
/usr/local/cpanel/scripts/pkgacct --skiphomedir username /root/
این دستور یک فایل به نام cpmove-username.tar.gz در مسیر /root/ ایجاد میکند.
این فایل شامل تنظیمات اکانت، ایمیلها، DNS و تمام دیتابیسهای مربوط به اکانت است. فایلهای داخل پوشه home را شامل نمیشود.
مرحله ۲: انتقال فایلهای Home Directory با rsync
حالا فایلهای اصلی سایت را مستقیم به سرور مقصد منتقل کنید:
rsync -avz --progress /home/username/ root@IP-سرور-مقصد:/مسیر/مقصد/username/
اگر پورت SSH سرور مقصد غیر از ۲۲ باشد:
rsync -avz -e "ssh -p PORT" --progress /home/username/ root@IP-سرور-مقصد:/مسیر/مقصد/username/
مرحله ۳: انتقال فایل پکیج
scp /root/cpmove-username.tar.gz root@IP-سرور-مقصد:/مسیر/مقصد/
مرحله ۴: پاکسازی فایلهای موقتپس از اطمینان از انتقال موفق، فایل موقت را حذف کنید تا فضای سرور آزاد شود:
bash
rm -f /root/cpmove-username.tar.gz
بخش دوم: روش ریستور (بازگردانی)
پس از انتقال فایلها به سرور مقصد، مراحل ریستور را به این صورت انجام دهید:
مرحله ۱: بازگردانی پکیج با restorepkg
وارد سرور مقصد شوید و دستور زیر را اجرا کنید:
/scripts/restorepkg /مسیر/کامل/cpmove-username.tar.gz
مثال:
/scripts/restorepkg /root/cpmove-username.tar.gz
این دستور اکانت را ایجاد میکند، دیتابیسها را بازگردانی میکند، تنظیمات ایمیل و DNS را تنظیم میکند و ساختار اصلی اکانت را میسازد.
مرحله ۲: قرار دادن فایلهای Home Directory
فایلهایی که قبلاً با rsync منتقل کردهاید را در مسیر صحیح قرار دهید. معمولاً مسیر نهایی باید به این شکل باشد:
/home/username/
اگر فایلها را در مسیر دیگری کپی کردهاید، آنها را به مسیر صحیح منتقل کنید:
rsync -av /مسیر/موقت/username/ /home/username/
سپس مالکیت و مجوزها را اصلاح کنید:
chown -R username:username /home/username
مرحله ۳: بررسی نهایی
- وارد سیپنل اکانت شوید و فایلها، دیتابیسها و ایمیلها را بررسی کنید.
- سایت را تست کنید.
- در صورت نیاز، DNS دامنه را به سرور جدید تغییر دهید.
- لاگهای بازگردانی را در مسیر /usr/local/cpanel/logs/ بررسی کنید.
نکات مهم و حرفهای
- همیشه دستورات طولانی را داخل screen یا tmux اجرا کنید تا با قطع شدن اتصال SSH، فرآیند متوقف نشود:bash
screen -S backup - دیتابیسها بهصورت پیشفرض داخل فایل cpmove قرار میگیرند و نیازی به mysqldump جداگانه نیست.
- اگر اکانت از قبل روی سرور مقصد وجود دارد، از فلگ –force در دستور restorepkg استفاده کنید:bash
/scripts/restorepkg --force /مسیر/cpmove-username.tar.gz - این روش برای اکانتهای چند دهگیگابایتی بسیار کارآمد است.
جمعبندی
روش ترکیب pkgacct –skiphomedir و rsync یکی از بهترین راهحلها برای بکاپ و ریستور اکانتهای سیپنل در شرایط کمبود فضای دیسک است. با این روش هم فضای سرور را حفظ میکنید و هم یک بکاپ کامل و قابلاطمینان همراه با امکان بازگردانی آسان در اختیار دارید.اگر تجربهای از این روش دارید یا سوالی در مورد مراحل دارید، در بخش نظرات بنویسید.


