بکآپ در Gentoo — rsync، Borg و قانون ۳-۲-۱
آموزش کامل بکآپگیری در Gentoo: استراتژی rsync، BorgBackup با رمزنگاری و کاهش حجم، Timeshift، مقایسهٔ ابزارها، قانون ۳-۲-۱ و بازیابی سیستم با chroot.
بکآپ تنها دفاع واقعی در برابر از دسترفتن داده است. در Gentoo که هر بسته کامپایل میشود و پیکربندی سیستم غنی است، بکآپ منظم از /etc، /home و /var/lib/portage بسیار مهم است. این مستند چهار روش بکآپ (rsync، Borg، Timeshift و tar) را معرفی میکند و قانون طلایی ۳-۲-۱ را توضیح میدهد.
قانون ۳-۲-۱
قانون ۳-۲-۱ یک اصل ساده برای بکآپ امن است:
| عدد | معنی |
|---|---|
| ۳ | سه نسخه از داده (یک نسخه اصلی + دو بکآپ) |
| ۲ | روی دو نوع رسانه متفاوت (مثلاً هارد محلی + ابری) |
| ۱ | یک نسخه خارج از سایت (offsite) |
به عبارت دیگر: یک نسخه روی سیستم، یک نسخه روی هارد اکسترنال، و یک نسخه در فضای ابری یا سرور دور.
بکآپ تستنشده، بکآپ نیست
بسیاری از سیستمادمینها ماهها بکآپ میگیرند اما هرگز آن را بازیابی نکردهاند. اولین بار که به بازیابی نیاز پیدا میکنند، متوجه میشوند بکآپ فاسد یا ناقص است. حداقل هر سه ماه یکبار، یک فایل یا کل سیستم را از بکآپ بازیابی کنید تا از سلامت آن مطمئن شوید.
rsync — بکآپ ساده و سریع
rsync ابزار کلاسیک بکآپ است؛ فقط بخشهای تغییر کرده را منتقل میکند و با حفظ مجوزها و لینکهای نمادین کار میکند:
# بکآپ کل سیستم بهجز دایرکتوریهای مجازی
rsync -aAXv \
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} \
/ /backup/gentoo-root/
# خروجی:
# sending incremental file list
# ./
# bin/
# boot/
# etc/
# etc/portage/make.conf
# ...
# sent 12.345.678 bytes received 45.678 bytes 1.234.567 bytes/sec
# total size is 23.456.789 speedup is 1.90توضیح پرچمها:
| پرچم | کاربرد |
|---|---|
-a | حالت archive (حفظ مجوز، زمان، لینک) |
-A | حفظ ACLها |
-X | حفظ extended attributes |
-v | خروجی verbose |
--delete | حذف فایلهای مقصد که در مبدا حذف شدهاند |
--exclude | عدم انتقال مسیرهای مشخص |
--link-dest=DIR | بکآپ افزایشی با hard link |
بکآپ افزایشی روزانه با link-dest
برای داشتن چندین snapshot با اشتراک فضا:
#!/bin/bash
# /usr/local/bin/backup-rsync.sh
DATE=$(date +%Y-%m-%d)
PREV=$(date -d "yesterday" +%Y-%m-%d)
SRC=/
DST=/backup/
rsync -aAXv --delete \
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/backup/*} \
--link-dest=$DST$PREV \
$SRC $DST$DATE
# حذف بکآپهای قدیمیتر از ۳۰ روز
find $DST -maxdepth 1 -type d -mtime +30 -exec rm -rf {} +rsync روی شبکه
برای بکآپ روی سرور دور، rsync از SSH استفاده میکند:
rsync -aAXv --delete /home/ali/ user@backup-server:/backup/ali/این روش سریع و امن است، اما بهازای هر فایل، checksum بررسی میشود؛ برای فایلهای بسیار زیاد، --checksum را اضافه نکنید چون کند میشود.
BorgBackup — بکآپ رمزنگاریشده و کاهشی
Borg بهترین ابزار بکآپ برای Gentoo است؛ رمزنگاری end-to-end، deduplication (حذف تکرار) و فشردهسازی را همزمان دارد:
# نصب
emerge --ask app-backup/borgbackup
# [ebuild N ] app-backup/borgbackup-1.4.0
# ساخت مخزن (یکبار)
borg init --encryption=repokey /backup/borg-repo
# Enter new passphrase:
# Enter same passphrase again:
# Do you want your passphrase to be displayed for verification? [yN]: y
# Your passphrase (with unicode normalization): ...
# بکآپ اول
borg create --stats --progress \
/backup/borg-repo::gentoo-{hostname}-{now:%Y-%m-%d} \
/etc /home /var/lib/portage /root
# خروجی:
# Creating archive at "/backup/borg-repo::gentoo-host-2026-06-22"
# Archive name: gentoo-host-2026-06-22
# Archive fingerprint: a1b2c3d4...
# Time (start): Tue, 2026-06-22 10:23:45
# Time (end): Tue, 2026-06-22 10:24:12
# Number of files: 24567
# Utilization of max. archive size: 0%
# Original size: 12.3 GB
# Deduplicated size: 1.2 GB (کاهش ۹۰ درصدی)
# Compressed size: 845 MB
# Unique chunks: 12345
# Average compression ratio: 1.4نگهداری و هرس (prune)
Borg بهطور خودکار بکآپ قدیمی را حذف نمیکند؛ با prune سیاست نگهداری تعریف کنید:
# نگهداشتن: ۷ بکآپ روزانه، ۴ هفتگی، ۱۲ ماهانه
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=12 \
/backup/borg-repo
# خروجی:
# Keeping archive: gentoo-host-2026-06-22
# Keeping archive: gentoo-host-2026-06-21
# ...
# Pruning archive: gentoo-host-2026-06-01بازیابی از Borg
# لیست بکآپها
borg list /backup/borg-repo
# gentoo-host-2026-06-22 Tue, 2026-06-22 10:23:45
# gentoo-host-2026-06-21 Mon, 2026-06-21 10:23:45
# بررسی محتوای یک بکآپ
borg list /backup/borg-repo::gentoo-host-2026-06-22
# بازیابی کامل به دایرکتوری
borg extract /backup/borg-repo::gentoo-host-2026-06-22
# بازیابی یک فایل خاص (mount)
mkdir /tmp/borg-mount
borg mount /backup/borg-repo /tmp/borg-mount
# حالا میتوانید در /tmp/borg-mount مرور و فایل را کپی کنید
fusermount -u /tmp/borg-mount # قطعTimeshift — بکآپ سیستم با رابط گرافیکی
Timeshift (مشابه System Restore ویندوز) برای دسکتاپ مناسب است؛ بکآپ افزایشی با rsync و رابط گرافیکی ساده:
# نصب (در overlay layman یا github موجود است)
emerge --ask app-backup/timeshift
# اجرا (با sudo)
sudo timeshift-gtkTimeshift snapshotهای منظم (ساعتی، روزانه، هفتگی) میگیرد و امکان بازیابی از محیط live را دارد.
بازیابی کامل سیستم با chroot
اگر سیستم خراب شده و از بکآپ rsync استفاده کردهاید، میتوانید بهصورت زیر بازیابی کنید:
# ۱. از محیط Live USB بوت کنید
# ۲. مونت کردن پارتیشنها
mount /dev/sda3 /mnt/gentoo
mount /dev/sda1 /mnt/gentoo/boot
# در صورت UEFI:
mount /dev/sda2 /mnt/gentoo/boot/efi
# ۳. بازیابی بکآپ
rsync -aAXv --delete /backup/gentoo-root/ /mnt/gentoo/
# ۴. مونت کردن سیستمفایلهای مجازی
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
# ۵. ورود به chroot
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
# ۶. نصب مجدد GRUB و rebuild initramfs
grub-install /dev/sda # یا grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
emerge @module-rebuild
# ۷. خروج و ریبوت
exit
rebootبکآپ از بوتلودر
علاوه بر فایلها، بکآپ از پارتیشنهای EFI و MBR را فراموش نکنید. برای MBR میتوانید با dd if=/dev/sda of=backup.mbr bs=512 count=1 بوتسکتور را ذخیره کنید. برای UEFI، پارتیشن ESP را بکآپ کنید. جزئیات بوتلودر را در آموزش GRUB ببینید.
مقایسه ابزارها
| ابزار | رمزنگاری | Dedup | فشردهسازی | رابط | بهترین کاربرد |
|---|---|---|---|---|---|
| rsync | خیر (در سطح فایل) | خیر | خیر | CLI | بکآپ محلی سریع، بازیابی ساده |
| Borg | بله (AES-256) | بله | بله (zstd) | CLI | بکآپ دور و رمزنگاریشده |
| restic | بله (AES-256) | بله | بله | CLI | بکآپ ابری (S3، B2) |
| tar | خیر | خیر | بله | CLI | آرشیو ساده، انتقال |
| Timeshift | خیر | بله (hard link) | خیر | GUI | snapshot دسکتاپ |
| Borgmatic | — | — | — | YAML | پیکربندی بکآپ خودکار Borg |
restic برای فضای ابری
اگر بکآپ روی S3، Backblaze B2 یا MinIO میخواهید، restic بهترین انتخاب است. نصب:
emerge --ask app-backup/resticRestic از پروتکلهای S3، B2، Azure و SFTP پشتیبانی میکند و کد منبع سبکتری از Borg دارد.
خطاهای رایج
۱. خطای "No space left on device" هنگام بکآپ
دلیل: rsync بدون --delete اجرا شده یا dedup Borg خاموش است. راهحل:
# با --delete بکآپ بگیرید
rsync -aAXv --delete /home/ali/ /backup/ali/
# بررسی حجم بکآپ Borg
borg info /backup/borg-repo
# اگر deduplicated size به original size نزدیک بود، چیزی درست نیست۲. Borg خطای "Repository does not exist"
دلیل: مخزن به مسیر اشتباه اشاره میکند یا mount نشده است. راهحل:
# بررسی مسیر
ls -la /backup/borg-repo/
# باید شامل config، data، index، README باشد
# اگر هارد اکسترنال است، مطمئن شوید mount شده
mount | grep backup
# /dev/sdb1 on /backup type ext4 (rw,...)۳. ریکاوری فایل با مجوز اشتباه
دلیل: rsync بدون -a اجرا شده یا کاربر اشتباه. راهحل:
# همیشه با -a بکآپ بگیرید
rsync -aAXv ...
# اگر مجوزها خراب شد، از لیست بکآپ قبلی بازسازی کنید
# ذخیره لیست مالکان فایلها
find /home -printf "%u:%g %p\n" > /tmp/perms.txt
# بازیابی مجوزها
while read -r user path; do
chown "$user" "$path"
done < /tmp/perms.txtخلاصه و مرحله بعد
بکآپ در Gentoo با چهار ابزار اصلی انجام میشود: rsync برای بکآپ محلی سریع، Borg برای بکآپ رمزنگاریشده با dedup، restic برای فضای ابری و Timeshift برای دسکتاپ. قانون ۳-۲-۱ را رعایت کنید (سه نسخه، روی دو رسانه، یکی خارج از سایت) و حداقل هر سه ماه یکبار بازیابی بکآپ را تست کنید.
پیش از بهروزرسانی سیستم، حتماً از /etc و /var/lib/portage بکآپ بگیرید؛ آموزش بهروزرسانی سیستم را ببینید. برای امنسازی بیشتر سیستم به آموزش امنیت و برای رفع خطاهای بعد از بازیابی به آموزش عیبیابی مراجعه کنید.
این صفحه در تاریخ ۱ تیر ۱۴۰۵ بهروزرسانی شده است.