آموزش بکاپ گرفتن در cPanel از طریق SSH؛ بکاپ کامل، فایلها، دیتابیس و رفع خطاها
آموزش بکاپ گرفتن در cPanel از طریق SSH؛ بکاپ کامل اکانت، فایلها، دیتابیس و رفع خطاهای رایج
گاهی پنل cPanel باز نمیشود، سایت سنگین است، فایلها زیاد هستند یا میخواهید یک اکانت را به سرور دیگری منتقل کنید. در این شرایط بکاپ گرفتن از طریق SSH میتواند سریعتر، دقیقتر و قابل کنترلتر از بکاپگیری گرافیکی باشد. در این راهنما روشهای امن بکاپگیری از cPanel با SSH، تفاوت بکاپ کامل و بکاپ دستی، دستورهای مهم، نکات امنیتی و مشکلات رایج را مرحلهبهمرحله بررسی میکنیم.
انواع بکاپ در cPanel
چکلیست قبل از بکاپ
ساخت بکاپ کامل با pkgacct
بکاپ دستی با tar و mysqldump
دانلود و انتقال بکاپ
نکات مهم بازیابی بکاپ
مشکلات رایج و راهحلها
بکاپ گرفتن از cPanel با SSH یعنی چه؟
بکاپ SSH یعنی بهجای استفاده از دکمههای داخل cPanel یا WHM، با اتصال به خط فرمان سرور، دستورهای لازم برای ساخت آرشیو بکاپ را اجرا کنیم. این روش برای اکانتهای بزرگ، مهاجرت بین سرورها، خطای پنل، کندی مرورگر یا زمانی که نیاز به کنترل دقیقتر داریم بسیار کاربردی است.
در cPanel دو نگاه مهم وجود دارد: بکاپ کامل سازگار با cPanel که معمولاً با pkgacct ساخته میشود، و بکاپ دستی که با ابزارهایی مثل tar برای فایلها و mysqldump برای دیتابیس انجام میشود.
برای انتقال یا بازیابی یک اکانت cPanel روی سرور دیگر مناسب است و معمولاً با فایل cpmove ساخته میشود.
برای ذخیره public_html، فایلهای سایت، آپلودها یا یک مسیر خاص کاربرد دارد.
برای وردپرس، فروشگاه، انجمن یا هر برنامه PHP که به MySQL/MariaDB وابسته است ضروری است.
کدام روش بکاپ برای شما مناسب است؟
| نیاز شما | روش پیشنهادی | توضیح |
|---|---|---|
| انتقال کامل اکانت cPanel | pkgacct | بهترین گزینه برای ساخت آرشیو کامل و قابل Restore در cPanel/WHM. |
| فقط بکاپ سایت وردپرسی | tar + mysqldump | فایلهای سایت و دیتابیس را جداگانه ذخیره میکنید. |
| فضای دیسک کم است | بکاپ به مسیر دیگر یا انتقال مستقیم | نباید بکاپ بزرگ را روی همان پارتیشن پر بسازید. |
| پنل cPanel باز نمیشود | SSH با root یا کاربر مجاز | از طریق خط فرمان هنوز میتوان فایلها و دیتابیس را ذخیره کرد. |
| فقط دیتابیس لازم است | mysqldump | سریعتر از بکاپ کامل است و برای تغییرات دیتابیس مناسب است. |
چکلیست مهم قبل از بکاپ گرفتن با SSH
بیشتر خطاهای بکاپ cPanel به خاطر کمبود فضا، اجرای دستور با کاربر اشتباه، مسیر خروجی نامناسب یا ندانستن حجم واقعی اکانت رخ میدهد. قبل از اجرای دستور اصلی، این موارد را بررسی کنید.
دستورهای بررسی وضعیت قبل از بکاپ
df -h
# بررسی حجم یک اکانت cPanel
du -sh /home/USERNAME
# بررسی فایلهای بزرگ داخل اکانت
find /home/USERNAME -type f -size +500M -exec ls -lh {} ; | sort -k5 -hr | head -n 30
# بررسی load سرور
uptime
# بررسی پردازشهای سنگین
top
هشدار مهم درباره فضای دیسک
اگر فضای دیسک هنگام بکاپ پر شود، ممکن است MySQL، ایمیل، لاگها یا حتی خود سایت دچار خطا شوند. برای اکانتهای بزرگ، بکاپ را روی پارتیشن جدا، دیسک بکاپ یا مسیر موقت دارای فضای کافی بسازید.
روش اول: بکاپ کامل اکانت cPanel با pkgacct
اگر به root سرور دسترسی دارید و میخواهید یک بکاپ کامل قابل انتقال از اکانت cPanel بسازید، روش استاندارد استفاده از اسکریپت pkgacct است. خروجی این روش معمولاً یک فایل cpmove یا آرشیو سازگار با WHM است که برای انتقال یا بازیابی اکانت استفاده میشود.
ساخت بکاپ کامل در مسیر دلخواه
mkdir -p /backup/manual
# ساخت بکاپ کامل اکانت
/usr/local/cpanel/scripts/pkgacct USERNAME /backup/manual
# مشاهده خروجی
ls -lh /backup/manual/
در دستور بالا بهجای USERNAME نام کاربری واقعی اکانت cPanel را قرار دهید. بهتر است مسیر خروجی جایی باشد که فضای کافی دارد و از وب عمومی قابل دانلود مستقیم نباشد.
بکاپ کامل با فشردهسازی کمتر یا فایلهای split
برای اکانتهای بسیار بزرگ، گاهی فشردهسازی زمان زیادی میگیرد یا انتقال یک فایل بزرگ سخت میشود. در این حالت میتوانید از گزینههای cPanel مثل split یا nocompress استفاده کنید.
/usr/local/cpanel/scripts/pkgacct –split USERNAME /backup/manual
# بکاپ بدون فشردهسازی؛ سریعتر ولی حجیمتر
/usr/local/cpanel/scripts/pkgacct –nocompress USERNAME /backup/manual
بکاپ بدون بعضی بخشها
اگر فقط میخواهید فایلهای سایت را منتقل کنید و دیتابیس یا ایمیل را جداگانه میگیرید، میتوانید از گزینههای skip استفاده کنید؛ اما با احتیاط، چون بکاپ ناقص ممکن است برای Restore کامل مناسب نباشد.
/usr/local/cpanel/scripts/pkgacct –skiplogs USERNAME /backup/manual
# نمونه: ساخت بکاپ بدون mail؛ فقط وقتی مطمئن هستید ایمیلها لازم نیست
/usr/local/cpanel/scripts/pkgacct –skipmail USERNAME /backup/manual
چه زمانی pkgacct بهترین انتخاب است؟
- وقتی میخواهید اکانت را به سرور cPanel دیگری منتقل کنید.
- وقتی میخواهید بکاپی داشته باشید که WHM بتواند آن را Restore کند.
- وقتی دیتابیس، ایمیلها، دامنهها و تنظیمات اکانت هم مهم هستند.
- وقتی دسترسی root دارید و فضای کافی روی سرور موجود است.
روش دوم: بکاپ دستی فایلها و دیتابیس از طریق SSH
اگر دسترسی root ندارید، یا فقط میخواهید سایت را جابهجا کنید، بکاپ دستی با tar و mysqldump روش سادهتری است. این روش برای وردپرس، لاراول، سایتهای PHP و فروشگاهها بسیار کاربردی است.
بکاپ گرفتن از فایلهای public_html
tar -czf backup-public_html-$(date +%F).tar.gz public_html
ls -lh backup-public_html-*.tar.gz
بکاپ گرفتن از کل Home کاربر
tar -czf /backup/manual/USERNAME-home-$(date +%F).tar.gz USERNAME
بکاپ دیتابیس MySQL/MariaDB
برای سایتهای وردپرسی یا فروشگاهی، فقط بکاپ فایل کافی نیست. باید دیتابیس را هم ذخیره کنید. نام دیتابیس، یوزر و رمز را معمولاً از فایل تنظیمات سایت مثل wp-config.php پیدا میکنید.
grep -E “DB_NAME|DB_USER|DB_PASSWORD|DB_HOST” /home/USERNAME/public_html/wp-config.php
# گرفتن خروجی SQL از دیتابیس
mysqldump -u DB_USER -p DB_NAME > /home/USERNAME/database-$(date +%F).sql
# فشردهسازی فایل SQL
gzip /home/USERNAME/database-$(date +%F).sql
بکاپ فایل و دیتابیس در یک پوشه مرتب
cd /home/USERNAME
tar -czf backup-$(date +%F)/files.tar.gz public_html
mysqldump -u DB_USER -p DB_NAME | gzip > backup-$(date +%F)/database.sql.gz
tar -czf site-backup-$(date +%F).tar.gz backup-$(date +%F)
ls -lh site-backup-$(date +%F).tar.gz
بکاپ دستی جایگزین کامل pkgacct نیست
بکاپ دستی معمولاً فایلها و دیتابیس را نجات میدهد، اما ممکن است تنظیمات کامل cPanel، ایمیلها، DNS Zone، SSL، Cron Jobها، FTP Userها و بعضی اطلاعات اکانت را شامل نشود. اگر هدف انتقال کامل اکانت cPanel است، pkgacct انتخاب حرفهایتری است.
دانلود یا انتقال بکاپ بعد از ساخت
بعد از ساخت بکاپ، باید آن را به جای امن منتقل کنید. نگه داشتن بکاپ روی همان سرور برای مدت طولانی، مخصوصاً اگر همان سرور آسیب ببیند، کافی نیست.
انتقال بکاپ به سرور دیگر با scp
انتقال با rsync برای فایلهای بزرگ
دانلود از سیستم شخصی با PowerShell یا Terminal
بررسی سلامت فایل بکاپ
ls -lh /backup/manual/cpmove-USERNAME.tar.gz
# تست لیست شدن محتویات آرشیو
tar -tzf /backup/manual/cpmove-USERNAME.tar.gz | head
# ساخت checksum برای اطمینان از انتقال سالم
sha256sum /backup/manual/cpmove-USERNAME.tar.gz
نکات مهم قبل از Restore بکاپ cPanel
بکاپ گرفتن فقط نصف مسیر است؛ اگر بکاپ قابل بازیابی نباشد، در زمان بحران کمکی نمیکند. بنابراین بعد از ساخت بکاپ، حداقل حجم، ساختار و امکان لیست شدن فایل را بررسی کنید.
Restore با restorepkg روی سرور مقصد
ls -lh /home/cpmove-USERNAME.tar.gz
# بازیابی اکانت از بکاپ
/usr/local/cpanel/scripts/restorepkg /home/cpmove-USERNAME.tar.gz
در بازیابی اکانتهای حساس، قبل از Restore وضعیت دامنه، DNS، IP، نسخه PHP، MariaDB/MySQL، SSL و فضای دیسک را بررسی کنید. اگر نام کاربری روی سرور مقصد وجود دارد، نباید بدون بررسی Restore را اجرا کنید.
مشکلات رایج بکاپ cPanel از طریق SSH و راهحل
خطای ۱: No space left on device
یعنی فضای دیسک برای ساخت فایل بکاپ یا فایلهای موقت کافی نیست. قبل از تکرار بکاپ، فضای آزاد را بررسی کنید، فایلهای موقت را حذف کنید یا مسیر خروجی را به دیسک دیگری منتقل کنید.
du -sh /backup/* 2>/dev/null
du -sh /home/* | sort -h | tail -n 20
خطای ۲: Permission denied
برای pkgacct معمولاً باید root باشید. اگر با کاربر cPanel وارد شدهاید، ممکن است فقط بتوانید از فایلهای خودتان و دیتابیس خودتان بکاپ دستی بگیرید.
خطای ۳: بکاپ خیلی کند است یا سرور کند میشود
بکاپ گرفتن از اکانت بزرگ میتواند CPU، RAM، I/O و MySQL را درگیر کند. در ساعات خلوت بکاپ بگیرید، فایلهای cache و backupهای قدیمی را حذف کنید و اگر اکانت خیلی بزرگ است از split یا nocompress استفاده کنید.
خطای ۴: دیتابیس در بکاپ دستی ناقص است
برای سایتهای پرتراکنش، هنگام mysqldump ممکن است دادهها در حال تغییر باشند. بهتر است در زمان خلوت بکاپ بگیرید و برای سایتهای مهم، قبل از انتقال، سایت را موقتاً در حالت maintenance قرار دهید.
خطای ۵: فایل بکاپ داخل public_html ساخته شده و قابل دانلود است
این یک خطر امنیتی جدی است. بکاپ شامل فایلها، دیتابیس، ایمیل یا اطلاعات حساس است. بکاپ را از public_html خارج کنید یا بعد از دانلود فوراً حذف کنید.
rm -f /home/USERNAME/public_html/*.sql
rm -f /home/USERNAME/public_html/*.sql.gz
خطای ۶: restore انجام شد اما سایت خطای دیتابیس میدهد
نام دیتابیس، نام کاربر دیتابیس، رمز عبور، نسخه MySQL/MariaDB و دسترسیهای دیتابیس را بررسی کنید. در وردپرس، فایل wp-config.php باید با دیتابیس Restore شده هماهنگ باشد.
خطای ۷: بعد از انتقال، ایمیلها نیامدهاند
اگر از بکاپ دستی فقط public_html و دیتابیس گرفتهاید، ایمیلها منتقل نمیشوند. برای انتقال ایمیلها، باید mail directory و تنظیمات مربوطه را هم منتقل کنید یا از بکاپ کامل cPanel استفاده کنید.
چکلیست نهایی بکاپ امن cPanel با SSH
- قبل از بکاپ، فضای دیسک را با
df -hبررسی کنید. - برای انتقال کامل اکانت، تا حد امکان از
pkgacctاستفاده کنید. - برای سایتهای وردپرسی، هم فایلها و هم دیتابیس را بکاپ بگیرید.
- بکاپ را داخل public_html نگه ندارید.
- بعد از ساخت فایل، آن را با
tar -tzfیا checksum بررسی کنید. - بکاپ را به یک مقصد خارجی یا سرور دیگر منتقل کنید.
- فایلهای بکاپ قدیمی را بدون برنامه روی سرور رها نکنید.
- قبل از Restore روی سرور مقصد، نسخه PHP، دیتابیس، DNS و IP را بررسی کنید.
سوالات متداول درباره بکاپ گرفتن از cPanel با SSH
آیا برای بکاپ گرفتن از cPanel با SSH باید root داشته باشم؟
برای ساخت بکاپ کامل اکانت با pkgacct معمولاً دسترسی root لازم است. اما برای بکاپ دستی فایلها و دیتابیس، در بسیاری از مواقع دسترسی SSH همان کاربر cPanel کافی است.
فایل cpmove چیست؟
فایل cpmove آرشیوی است که برای انتقال یا بازیابی اکانت cPanel روی سرورهای cPanel/WHM استفاده میشود. این فایل معمولاً با pkgacct ساخته میشود.
آیا بکاپ دستی tar و mysqldump برای مهاجرت کامل کافی است؟
برای مهاجرت ساده یک سایت ممکن است کافی باشد، اما برای مهاجرت کامل اکانت cPanel بهتر است از pkgacct استفاده شود چون تنظیمات بیشتری از اکانت را پوشش میدهد.
چرا بکاپ کامل cPanel حجم زیادی دارد؟
چون ممکن است شامل فایلهای سایت، ایمیلها، دیتابیسها، لاگها، فایلهای cache، backupهای قدیمی و تنظیمات اکانت باشد. قبل از بکاپ بهتر است فایلهای غیرضروری را بررسی کنید.
آیا میتوان بکاپ را مستقیم به سرور دیگر منتقل کرد؟
بله، بعد از ساخت فایل میتوانید با scp یا rsync آن را به سرور دیگر منتقل کنید. برای فایلهای بزرگ، rsync با progress و امکان ادامه انتقال معمولاً بهتر است.
جمعبندی
برای بکاپ گرفتن از cPanel از طریق SSH، ابتدا هدف را مشخص کنید. اگر انتقال کامل اکانت یا Restore در WHM میخواهید، pkgacct مسیر حرفهایتری است. اگر فقط میخواهید فایلها و دیتابیس یک سایت را ذخیره کنید، ترکیب tar و mysqldump ساده، سریع و کاربردی است. در هر دو حالت، فضای دیسک، محل ذخیره بکاپ، امنیت فایل خروجی، سلامت دیتابیس و امکان Restore را جدی بگیرید؛ بکاپی ارزشمند است که در زمان نیاز واقعاً قابل استفاده باشد.
شما میتوانید دیدگاه خود را در مورد این مطلب با ما به اشتراک بگذارید.