cPanel و WHM

بکاپ گیری در cPanel و بازیابی سایت قدم به قدم

بکاپ گیری در cPanel از بخش Backup انجام می شود: بکاپ کامل حساب برای نگهداری و بکاپ جزئی فایل ها و دیتابیس برای بازیابی سریع. بازیابی هم از همان صفحه است، با یک استثنا: بکاپ کامل را از cPanel نمی شود برگرداند.

نوشته تیم فنی پیکوهاستبه روزرسانی: ۱۴ مهر ۱۴۰۵۸ دقیقه مطالعه

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

انواع بکاپ در cPanel

نوعشامل چه چیزی استاز cPanel برگردانده می شود
بکاپ کامل حساب (Full Backup)فایل ها، دیتابیس ها، ایمیل ها و تنظیماتخیر، باید مدیر سرور یا پشتیبانی بازیابی کند
بکاپ پوشه Homeهمه فایل های پوشه Homeبله
بکاپ دیتابیس MySQLیک دیتابیس به صورت فایل sql.gzبله
بکاپ Email Forwarders و Filtersتنظیم های فوروارد و فیلتر ایمیلبله

اگر هاست شما JetBackup دارد، آیکن آن را در بخش Files می بینید و بازیابی از آن ساده تر است، چون از بکاپ های خودکار سرور استفاده می کند. بعضی هاست ها هم ابزار دیگری دارند. این مقاله روی صفحه Backup استاندارد cPanel است و اگر JetBackup دارید، منطق کار همین است.

بکاپ کامل حساب

بکاپ کامل برای نگهداری کپی کامل سایت یا انتقال به هاست دیگر مناسب است. مراحل:

  1. در cPanel وارد Files و بعد Backup شوید.
  2. در بخش Full Backup روی Download a Full Account Backup کلیک کنید.
  3. مقصد را انتخاب کنید. Home Directory فایل را در پوشه Home خودتان می گذارد و مقصدهای FTP و SCP آن را مستقیم به سرور دیگری می فرستند.
  4. یک ایمیل برای اطلاع از پایان کار بدهید و Generate Backup را بزنید.

فایل خروجی نامی شبیه backup-10.6.2026_14-30-05_username.tar.gz دارد. ساخت آن بسته به حجم سایت چند دقیقه تا چند ساعت طول می کشد. وقتی آماده شد، از همان صفحه آن را دانلود کنید و بعد از دانلود از پوشه Home پاک کنید، چون فضای دیسک شما را مصرف می کند و اگر سهمیه تان پر شود، بکاپ بعدی هم ساخته نمی شود. مشکل پر شدن سهمیه در راهنمای سهمیه دیسک و inode توضیح داده شده است.

فایل بکاپ را داخل public_html یا هر پوشه ای که از اینترنت باز می شود نگذارید. محتوای آن شامل wp-config.php و رمز دیتابیس است و هر کسی که آدرس را حدس بزند می تواند دانلودش کند.

بکاپ جزئی از فایل ها و دیتابیس

برای کار روزمره بکاپ جزئی کافی است. در همان صفحه Backup و بخش Partial Backups سه دکمه می بینید:

  • Home Directory یک فایل tar.gz از همه پوشه Home می سازد و دانلود می کند.
  • در بخش MySQL Databases اسم هر دیتابیس لینکی است که فایل sql.gz آن را دانلود می کند.
  • Email Forwarders و Email Filters هم به همین شکل جدا دانلود می شوند.

اگر می خواهید به جای بکاپ کل Home فقط فایل های سایت را بگیرید، از File Manager استفاده کنید: پوشه public_html را انتخاب کنید، روی Compress بزنید و فرمت Zip یا Tar را انتخاب کنید. فایل را بعد از ساخت دانلود کنید.

اگر Terminal دارید، همین کار با دستور زیر انجام می شود:

cd ~
tar -czf site-files-$(date +%F).tar.gz public_html
mysqldump -u cpuser_dbuser -p cpuser_dbname | gzip > db-$(date +%F).sql.gz

نام کاربری دیتابیس و نام دیتابیس را از wp-config.php بردارید. دستور دوم رمز را می پرسد و در تاریخچه ذخیره نمی کند.

بکاپ دیتابیس با phpMyAdmin

اگر فایل sql.gz بزرگ نیست، phpMyAdmin هم کار می کند. از بخش Databases در cPanel وارد phpMyAdmin شوید، دیتابیس را از ستون سمت چپ انتخاب کنید و تب Export را باز کنید. روش Quick با فرمت SQL برای بیشتر سایت ها کافی است. اگر فایل حجیم است و مرورگر قطع می شود، به جای آن از mysqldump یا از دکمه دانلود صفحه Backup استفاده کنید.

زمان بندی بکاپ

بکاپ دستی فقط وقتی به کار می آید که به یاد بیاورید. برای بکاپ خودکار روی هاستی که JetBackup ندارد، می توانید یک Cron Job برای دیتابیس بسازید. اگر فایل ~/.my.cnf داشته باشید، mysqldump رمز را از آن می خواند و لازم نیست رمز را در دستور بنویسید. این فایل را با دسترسی 600 بسازید. نمونه محتوایش این است:

[client]
user=cpuser_dbuser
password=DB_PASSWORD_HERE

سپس خط cron در Advanced و Cron Jobs هر شب ساعت 3 این دستور را اجرا می کند:

0 3 * * * mkdir -p $HOME/backups && mysqldump cpuser_dbname | gzip > $HOME/backups/db-$(date +\%F).sql.gz

علامت % در cron باید با بک اسلش نوشته شود. این روش فایل ها را در همان حساب نگه می دارد و اگر حساب هک شود یا سرور از بین برود، بکاپ هم با آن می رود. کپی بیرون از سرور را از راه دانلود دوره ای یا انتقال خودکار به یک سرویس ذخیره سازی بگیرید و پوشه backups را هر چند وقت یک بار پاک کنید تا سهمیه پر نشود.

بازیابی بکاپ در cPanel

بازیابی جزئی از همان صفحه Backup و بخش Restore انجام می شود.

  1. برای فایل ها، Restore a Home Directory Backup را باز کنید، فایل tar.gz را انتخاب کنید و Upload را بزنید. cPanel فایل ها را به پوشه Home برمی گرداند و فایل های هم نام را عوض می کند.
  2. برای دیتابیس، Restore a MySQL Database Backup را باز کنید، فایل sql.gz را انتخاب کنید و آپلود کنید. دیتابیس مقصد باید از قبل با همان نام وجود داشته باشد.
  3. برای فوروارد و فیلتر ایمیل هم دو گزینه جدا هست.

آپلود در این صفحه به سقف حجم هاست محدود است و برای دیتابیس بزرگ ممکن است خطا بدهد. در این حالت فایل را با File Manager یا FTP آپلود کنید و دیتابیس را با phpMyAdmin در تب Import یا با دستور زیر برگردانید:

gunzip < db-2026-10-06.sql.gz | mysql -u cpuser_dbuser -p cpuser_dbname

فایل ها را هم می شود با File Manager استخراج کرد. فایل tar.gz را در public_html آپلود کنید، روی آن راست کلیک کنید و Extract را بزنید. بعد از استخراج، فایل بکاپ را پاک کنید.

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

بعد از بازیابی چه چیزی را بررسی کنید

بازیابی با برگرداندن فایل ها تمام نمی شود. به این چند مورد نگاه کنید:

  • در wp-config.php نام دیتابیس، نام کاربری و رمز را با دیتابیس فعلی مقایسه کنید. اگر بکاپ را روی هاست جدید برگردانده اید، این مقدارها فرق می کنند و صفحه Error establishing a database connection نمایش داده می شود.
  • نسخه PHP را با نسخه ای که سایت قبلا روی آن اجرا می شد یکی کنید. روش آن در تغییر نسخه PHP در cPanel آمده است.
  • اگر .htaccess خراب باشد، سایت خطای 500 می دهد. راه حل آن در رفع خطای 500 در cPanel هست.
  • در وردپرس، یک بار Settings و بعد Permalinks را باز کنید و ذخیره کنید تا قوانین بازنویسی دوباره ساخته شوند.
  • فرم تماس، ورود به پیشخوان و فرایند خرید را امتحان کنید و ایمیل های ارسالی را چک کنید.

اگر بکاپ را به دامنه یا هاست جدید می برید، مراحل کامل تر و نکته های DNS در راهنمای انتقال سایت وردپرس آمده است.

خطاهای رایج بکاپ گیری و بازیابی

مشکلعلت محتملراه حل
ساخت بکاپ کامل هیچ وقت تمام نمی شود یا فایلی ساخته نمی شودسهمیه دیسک پر است یا حجم حساب زیاد استفایل های اضافه را پاک کنید و دوباره امتحان کنید
دانلود بکاپ نیمه کاره قطع می شودقطع اتصال یا حجم بالااز FTP یا SCP برای انتقال استفاده کنید
آپلود در صفحه Restore خطا می دهدحجم فایل از سقف آپلود بیشتر استفایل را با File Manager یا FTP بفرستید و دستی استخراج کنید
دیتابیس بعد از بازیابی خالی است یا ناقصدیتابیس مقصد وجود نداشت یا فایل ناقص دانلود شدهدیتابیس را بسازید، کاربر را به آن اضافه کنید و دوباره import کنید
سایت بعد از بازیابی به دامنه قدیمی ریدایرکت می شودآدرس سایت در دیتابیس عوض نشده استsiteurl و home را در جدول options به آدرس جدید تغییر دهید

چک لیست بکاپ منظم

بکاپ تا وقتی یک بار آزمایش نشود، مطمئن نیست. بهتر است ماهی یک بار فایل بکاپ را روی یک ساب دامین آزمایشی برگردانید و ببینید سایت بالا می آید یا نه. همین کار نشان می دهد فایل سالم است و شما روش بازیابی را بلدید.

  1. پیش از هر آپدیت بزرگ وردپرس، قالب یا PHP یک بکاپ از فایل ها و دیتابیس بگیرید.
  2. یک کپی بیرون از سرور نگه دارید، مثلا روی کامپیوتر یا یک سرور دیگر.
  3. بکاپ های قدیمی را پاک کنید تا سهمیه دیسک پر نشود.
  4. اگر هاست بکاپ خودکار دارد، بپرسید هر چند وقت یک بار گرفته می شود، چند نسخه نگه می دارد و بازیابی با چه فرایندی انجام می شود. روی بکاپ هاست به تنهایی تکیه نکنید، چون ممکن است شرایط آن با نیاز شما فرق داشته باشد.
  5. اگر سایت پرتغییر است، مثل فروشگاه، بکاپ دیتابیس را بیشتر از فایل ها بگیرید، چون سفارش ها در دیتابیس است.

فهرست کلی تنظیم های هاست وردپرس در چک لیست انتخاب هاست وردپرس هست و جزئیات رسمی صفحه Backup را در مستندات cPanel می بینید.