
ที่มาภาพ: Unknown Source
วิธีตั้งค่า BorgBackup เพื่อสำรองข้อมูลเข้ารหัสอัตโนมัติบน Linux
⚡ สรุป 30 วิ
**บทความนี้ช่วยให้คุณตั้งค่า BorgBackup เพื่อสำรองข้อมูลอัตโนมัติบน Linux อย่างครบวงจร**
บทความนี้ช่วยให้คุณตั้งค่า BorgBackup เพื่อสำรองข้อมูลอัตโนมัติบน Linux อย่างครบวงจร โดยใช้เครื่องมือพื้นฐานของระบบ ไม่ต้องพึ่งซอฟต์แวร์เพิ่มเติม และสามารถปรับแต่งตามความต้องการได้ง่าย
ภาพรวม — Overview
BorgBackup (หรือ Borg) เป็นโซลูชันสำรองข้อมูลแบบบีบอัดและเข้ารหัสที่เร็วและปลอดภัย เหมาะสำหรับ Linux ที่ต้องการสำรองไฟล์หลายเทราในเวลาเดียว คุณจะได้เรียนรู้ขั้นตอนตั้งค่าเริ่มต้น การสร้าง repository, การกำหนด schedule ผ่าน systemd timer รวมถึงเคล็ดลับในการตรวจสอบสถานะ
- Borg ใช้เทคโนโลยี deduplication ลดปริมาณข้อมูลที่ต้องเก็บ
- รองรับการเข้ารหัสแบบ AES‑256 เพื่อความปลอดภัยของข้อมูลสำรอง
- สามารถทำงานร่วมกับ systemd timer ทำให้เป็นอัตโนมัติเต็มรูปแบบ
การติดตั้ง Borg — Installation
ก่อนเริ่มใช้งาน ควรตรวจสอบว่ามี Borg อยู่ใน repository ของระบบหรือไม่ หากไม่มี ให้เพิ่มแหล่งที่มาหรือคอมไพล์จากซอร์สโค้ด การติดตั้งผ่านแพ็คเกจจัดการจะง่ายและอัพเดตอัตโนมัติ
- บน Ubuntu/Debian: `sudo apt-get install borgbackup`
- บน Fedora/CentOS: `sudo dnf install borgbackup` หรือ `yum install borgbackup`
- หากต้องการเวอร์ชันล่าสุด ให้ดาวน์โหลดจาก https://github.com/borgbackup/borg/releases แล้วติดตั้งด้วย `pip3 install borgbackup`
**Tip: ตรวจสอบเวอร์ชันที่ติดตั้งด้วย `borg --version` เพื่อยืนยันว่ามีอย่างน้อย 1.2.x (รองรับการเข้ารหัสและฟีเจอร์ใหม่)
การเตรียม Repository — Initial Setup
Repository คือพื้นที่เก็บสำเนาข้อมูลที่ Borg จะบันทึก คุณสามารถสร้างได้บนดิสก์ภายในหรือใช้ NAS/SSH remote ตามความต้องการ ขั้นตอนต่อไปนี้จะช่วยให้คุณตั้งค่า repository อย่างปลอดภัย
- **ขั้นที่ 1: สร้างโฟลเดอร์เก็บข้อมูล เช่น `/mnt/backup/borg-repo`
- **ขั้นที่ 2: เริ่มต้น Repository ด้วยคีย์เข้ารหัส `borg init --encryption=repokey /mnt/backup/borg-repo`
- **ขั้นที่ 3: บันทึก passphrase ไว้ใน password manager หรือไฟล์ `.env` ที่มีสิทธิ์อ่านเฉพาะ root
- **ขั้นที่ 4: ทดสอบการสร้าง backup ครั้งแรก `borg create --stats /mnt/backup/borg-repo::initial /home/user`
การทำงานอัตโนมัติด้วย systemd Timer — Automation with systemd timers
systemd timer เป็นวิธีมาตรฐานของ Linux ในการตั้งเวลาให้บริการทำงานตามกำหนด แทนการใช้ cron ที่ซับซ้อน สร้างสองไฟล์: service unit สำหรับเรียก Borg และ timer unit เพื่อกำหนดช่วงเวลาที่ต้องการ
- **ขั้นที่ 1: สร้างไฟล์ `/etc/systemd/system/borg-backup.service`
```ini [Unit] Description=BorgBackup automated job Wants=network-online.target After=network-online.target
[Service] Type=oneshot User=root EnvironmentFile=/etc/default/borg-backup ExecStart=/usr/bin/borg create --stats $REPO::$(date +%%Y-%%m-%%d_%%H%%M) $SOURCE_DIR ```
- **ขั้นที่ 2: สร้างไฟล์ `/etc/systemd/system/borg-backup.timer`
```ini [Unit] Description=Run BorgBackup daily at 02:30
[Timer] OnCalendar=-* 02:30:00 Persistent=true
[Install] WantedBy=timers.target ```
- **ขั้นที่ 3: ตั้งค่า environment ที่ `/etc/default/borg-backup`
```bash REPO=/mnt/backup/borg-repo SOURCE_DIR=/home/user ```
- **ขั้นที่ 4: เปิดใช้งาน timer
```bash sudo systemctl daemon-reload sudo systemctl enable --now borg-backup.timer ```
**Tip: ใช้ `systemctl list-timers` เพื่อตรวจสอบว่า timer ถูกโหลดและกำหนดเวลาอย่างถูกต้อง
กลยุทธ์การสำรองข้อมูล — Backup Strategies
เลือกกลยุทธ์ที่สอดคล้องกับความถี่และขนาดของข้อมูล จะช่วยให้ใช้พื้นที่เก็บได้คุ้มค่า
| กลยุทธ์ | คำอธิบาย | ความเหมาะสม |
|---|---|---|
| Full backup ทุกวัน | สร้าง snapshot ใหม่ทุกครั้ง | ใช้พื้นที่มาก แต่เรียกคืนเร็ว |
| Incremental (default) | บันทึกเฉพาะไฟล์ที่เปลี่ยนแปลงหลังจาก backup ล่าสุด | ประหยัดพื้นที่, ต้องใช้ `borg prune` เพื่อลบเก่า |
| Mixed schedule | Full weekly + incremental daily | สมดุลระหว่างความเร็วและการใช้งานพื้นที่ |
- ใช้คำสั่ง `borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 $REPO` เพื่อล้าง snapshot เก่าตามนโยบาย
- ปรับ `--keep-*` ให้ตรงกับนโยบายองค์กรหรือการเก็บข้อมูลส่วนบุคคล
การตั้งค่า Encryption & Compression — Encryption and Compression
Borg มีตัวเลือกหลายแบบสำหรับการบีบอัดและเข้ารหัส ควรเลือกให้เหมาะกับประเภทไฟล์ที่สำรอง
- **Compression: `lz4` (เร็วแต่บีบอัดน้อย), `zstd` (สมดุล), `gzip` (บีบอัดสูง)
ตัวอย่าง: `borg create --compression zstd $REPO::$(date +%F) /var/www`
- **Encryption: ใช้ `repokey` หรือ `keyfile` ขึ้นอยู่กับความต้องการจัดการคีย์
- `repokey` เก็บ key ภายใน repository (ง่ายต่อการย้าย)
- `keyfile` แยกไฟล์คีย์ออกมา (ปลอดภัยมากกว่า)
- คำสั่งตัวอย่างร่วมกัน
```bash borg create --compression zstd --encryption=repokey $REPO::$(date +%F) /etc /var/log ```
การตรวจสอบและบันทึกผล — Monitoring and Logs
ระบบควรแจ้งเตือนเมื่อ backup ล้มเหลวหรือพื้นที่ใกล้เต็ม เพื่อให้ดำเนินการแก้ไขทันที
- ตรวจสอบสถานะล่าสุดด้วย `borg info $REPO`
- ดู log ของ systemd ด้วย `journalctl -u borg-backup.service -b`
- สร้างไฟล์ `/etc/systemd/system/borg-backup.service.d/override.conf` เพื่อส่งอีเมลเมื่อมี error
```ini [Service] StandardOutput=append:/var/log/borg-backup.log StandardError=inherit ```
**Tip: ตั้งค่า `OnFailure=` ใน service unit ให้เรียกสคริปต์ส่ง Slack หรือ Email แจ้งเตือน
ข้อควรระวังทั่วไป — Common Pitfalls
การตั้งค่าที่ไม่เหมาะสมอาจทำให้ข้อมูลสำรองเสียหายหรือสูญหายได้
- อย่าใช้ `--compression none` กับไฟล์ที่มีขนาดใหญ่หลาย GB จะทำให้ backup ช้า
- ตรวจสอบสิทธิ์ของโฟลเดอร์ repository ให้เป็น `700` เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
- หากใช้ remote repository ผ่าน SSH อย่าลืมตั้งค่า `SSHKey` ที่ไม่มี passphrase หรือใช้ ssh‑agent
- ทำการทดสอบ restore อย่างสม่ำเสมอ: `borg extract $REPO::snapshot_name /path/to/restore`
สรุป — Summary
BorgBackup เป็นเครื่องมือสำรองข้อมูลที่ทรงพลังเมื่อผสมกับ systemd timer จะทำให้ระบบ Linux ของคุณมีการสำรองอัตโนมัติแบบไม่มีช่องโหว่
- ติดตั้ง Borg ผ่าน package manager หรือ pip เพื่อได้เวอร์ชันล่าสุด
- สร้าง repository ด้วย encryption ที่เหมาะกับความปลอดภัยขององค์กร
- ใช้ systemd service + timer ตั้งเวลา backup ให้ทำงานโดยอัตโนมัติทุกวันหรือตามที่กำหนด
- ปรับกลยุทธ์การสำรอง (full, incremental) และตั้งค่า prune เพื่อลดพื้นที่เก็บข้อมูลเก่า
- เลือก compression ที่เหมาะกับประเภทไฟล์และตรวจสอบ log อย่างสม่ำเสมอ
สิ่งที่ควรจำ
- **ความปลอดภัย: เก็บ passphrase หรือ key ไว้ในที่ปลอดภัย
- **ประสิทธิภาพ: ใช้ `lz4` สำหรับ backup เร็ว, `zstd` หากต้องการบีบอัดสูง
- **การตรวจสอบ: ตั้ง systemd alerts เพื่อรับแจ้งเตือนเมื่อเกิดข้อผิดพลาด
- **การทดสอบ: ทำการ restore อย่างน้อยเดือนละครั้งเพื่อยืนยันความสมบูรณ์ของข้อมูลสำรอง
ด้วยขั้นตอนเหล่านี้ คุณจะมีระบบสำรองข้อมูลบน Linux ที่ทำงานอัตโนมัติ ปลอดภัย และประหยัดพื้นที่อย่างเต็มที่.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธีตั้งค่า BorgBackup เพื่อสำรองข้อมูลเข้ารหัสอัตโนมัติบน Linux
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 19 สิงหาคม 2569 เวลา 17:51



