~2 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴
1. چرا استفاده از Borg؟
اگر از روش FTP برای بکآپ ریموت راضی نیستید و به دنبال یک سیستم بکآپ حرفهایتر، سریعتر و افزایشی هستید، Borg یکی از بهترین گزینههاست. Borg قابلیتهای زیر را ارائه میدهد:
- بکآپ افزایشی (Incremental)
- فشردهسازی و Deduplication
- امکان نگهداری نسخههای روزانه، هفتگی و ماهانه
- امکان استفاده از مخزن محلی یا ریموت
2. مرحله اول: ساخت بکآپ DirectAdmin بدون دادههای حجیم
به مسیر زیر بروید:
Admin Backup/Transfer → Scheduleسپس:
- بکآپ را روزانه یا طبق نیاز زمانبندی کنید
- گزینههای
Domains DirectoryوE-mail Dataرا غیرفعال کنید - مسیر ذخیرهسازی را
/home/admin/admin_backupsقرار دهید
3. مرحله دوم: نصب Borg
CentOS:
yum -y install epel-release
yum -y install borgbackup
Debian/Ubuntu:
apt install borgbackup
4. مرحله سوم: ساخت مخزن (Repository)
مخزن محلی:
borg init --encryption=none /backups
مخزن ریموت:
REPOSITORY=borgbackup@YOUR_SERVER_IP:/backups/`hostname -f`
برای اتصال بدون پسورد، کلید SSH روت را روی سرور مقصد اضافه کنید.
5. مرحله چهارم: ساخت اسکریپت خودکار پس از بکآپ
فایل زیر را ایجاد کنید:
/usr/local/directadmin/scripts/custom/all_backups_post.sh
محتوا:
#!/bin/sh
REPOSITORY=borgbackup@YOUR_SERVER_IP:/backups/`hostname -f`
borg create -v --stats \
$REPOSITORY::'{hostname}-{now:%Y-%m-%d_%H:%M}' \
/home \
/var/www/html \
/etc \
/usr/local/directadmin > /tmp/borg-stat.tmp 2>&1
if [ "$?" -le 1 ]; then
borg prune -v $REPOSITORY --prefix '{hostname}-' \
--keep-daily=7 --keep-weekly=4 --keep-monthly=6
else
date >> /tmp/borg-stat.tmp
mail -s "backup failed on server `hostname -f`" [email protected] \
< /tmp/borg-stat.tmp
fi
اعمال دسترسی:
chmod 700 /usr/local/directadmin/scripts/custom/all_backups_post.sh
این اسکریپت پس از هر بکآپ DirectAdmin اجرا شده و دادهها را به Borg منتقل میکند.
6. نگهداری نسخهها (Retention)
در اسکریپت بالا، نگهداری نسخهها به شکل زیر تنظیم شده:
- ۷ نسخه روزانه
- ۴ نسخه هفتگی
- ۶ نسخه ماهانه
میتوانید این مقادیر را تغییر دهید.
7. ریاستور از Borg
مخزن Borg در فایل اسکریپت قابل مشاهده است. مثال:
REPOSITORY=ssh://[email protected]:2200/home/rbackup/`hostname -f`
7.1 لیست بکآپها
borg list ssh://[email protected]:2200/home/rbackup/`hostname -f`
7.2 Mount کردن بکآپ
مثال:
mkdir /mnt/mybackup
borg mount ssh://[email protected]:2200/home/rbackup/`hostname -f`::server.mycompany.tld-2019-11-13_05:06 /mnt/mybackup
پس از mount:
ls -l /mnt/mybackup
7.3 بازیابی یک فایل خاص
مثلاً فایل index.php حذف شده:
cd /mnt/mybackup/home/admin/domains/clientdomain.com/public_html/wp-admin
cp -a index.php /home/admin/
7.4 Unmount کردن
umount /mnt/mybackup
rmdir /mnt/mybackup
8. بازیابی دیتابیسها
دیتابیسها در مسیر زیر ذخیره میشوند:
/home/admin/admin_backups/
میتوانید فایل بکآپ را استخراج کرده و دیتابیس موردنظر را ریاستور کنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی