آموزش بکاپگیری از سرور لینوکس؛ استراتژی ۳-۲-۱ و خودکارسازی
هیچکس به فکر بکاپ نیست تا روزی که دیر شده باشد: دیسکی که ناگهان از کار میافتد، دستوری که اشتباه اجرا میشود یا باجافزاری که همهچیز را قفل میکند. تفاوت یک اتفاق ناخوشایند با یک فاجعهی کامل، فقط داشتن نسخهی پشتیبان سالم است. در این راهنما استراتژی درست بکاپگیری از سرور لینوکس را میبینیم و آن را خودکار میکنیم.
قانون طلایی ۳-۲-۱
استاندارد جهانی بکاپ یک فرمول ساده است:
- ۳ نسخه از دادههایتان داشته باشید (اصلی + دو بکاپ).
- روی ۲ رسانهی متفاوت نگهداری کنید (مثلاً دیسک سرور + فضای ابری).
- ۱ نسخه خارج از سرور باشد — اگر کل سرور از دست برود، آن نسخه نجاتتان میدهد.
بکاپی که روی خود سرور ذخیره شده، بکاپ نیست؛ فقط یک کپی است که همراه سرور از بین میرود.
از چه چیزهایی بکاپ بگیریم؟
- فایلهای سایت: معمولاً مسیر
/var/www - دیتابیس: با ابزار خود دیتابیس، نه کپی فایل خام
- فایلهای پیکربندی: مثل
/etc/nginxو کانفیگ سرویسها
بکاپ دستی: دو دستور اصلی
آرشیو فایلها با tar:
tar -czf backup-$(date +%F).tar.gz /var/www /etc/nginx
خروجی گرفتن از دیتابیس MySQL:
mysqldump -u root -p --all-databases | gzip > db-$(date +%F).sql.gz
خودکارسازی با cron
بکاپی که به حافظهی انسان وابسته باشد، دیر یا زود فراموش میشود. با یک خط در crontab، بکاپ هر شب ساعت ۳ خودکار اجرا میشود:
0 3 * * * /root/backup.sh >> /var/log/backup.log 2>&1
داخل اسکریپت، بعد از ساخت آرشیو، فایل را به مقصدی خارج از سرور منتقل کنید. بهترین مقصد، فضای ذخیرهسازی ابجکت است: با ابزارهایی مثل rclone یا s3cmd آپلود میکنید، هزینهی هر گیگ پایین است و بکاپ از سرنوشت سرور جداست.
دو اشتباه رایج
- تستنکردن بازیابی: بکاپی که هیچوقت Restore نشده، فقط یک امید است. هر چند ماه یکبار بازیابی را واقعاً تمرین کنید.
- نگهنداشتن نسخههای قدیمی: اگر مشکل دیروز کشف شود و فقط بکاپ امروز را داشته باشید، بکاپتان هم خراب است. حداقل ۷ نسخهی روزانه و چند نسخهی ماهانه نگه دارید.
جمعبندی
بکاپ خوب یعنی: قانون ۳-۲-۱، اجرای خودکار با cron، ذخیره در مقصدی خارج از سرور و تمرین دورهای بازیابی. اسنپشاتهای سرور ابری منیجیت هم لایهی محافظ سریعی کنار این استراتژی هستند — اما جایگزین بکاپ خارج از سرور نمیشوند؛ مکمل آناند.