Mari kita hadapi: setiap sysadmin tahu mereka sepatutnya mempunyai sandaran, tetapi kebanyakan kita mempunyai satu pelayan yang berjalan di atas sayap dan doa. Hakikatnya, kehilangan data bukan soal jika — ianya soal bila. Cakera yang gagal, `rm -rf` yang tidak disengajakan, serangan perisian tebusan atau pangkalan data yang rosak boleh menjadikan hari anda terbalik dalam beberapa saat.
Panduan ini berjalan melalui tiga alat sandaran Linux yang diuji pertempuran — rsync, Borg Backup dan restic — dan menunjukkan kepada anda cara membina saluran paip sandaran yang benar-benar berfungsi. Bukan sekadar skrip yang menjalankan dan membuang fail ke suatu tempat, tetapi strategi sebenar dengan penyahduplikasian, penyulitan, automasi dan pengesahan pemulihan.
Mengapa Anda Memerlukan Lebih Daripada Bola Tar
Melempar `tar -czf backup.tar.gz /important/stuff` pantas dan memanggilnya sehari berfungsi untuk projek peribadi, tetapi ia tidak akan mengurangkan pengeluarannya. Inilah sebabnya:
- Tiada sandaran tambahan — Setiap tar ialah sandaran penuh, membazir storan dan lebar jalur
- Tiada penyahduplikasi — Simpan fail yang sama sepuluh kali, dan anda membayarnya sepuluh kali
- Tiada penyulitan — Bola tar anda terletak pada cakera atau dalam storan awan sebagai data biasa
- Tiada pengesanan rasuah — Satu bit terbalik boleh merosakkan arkib anda secara senyap
Alat sandaran moden menyelesaikan semua masalah ini. Caranya ialah memilih alat yang sesuai untuk pekerjaan itu.
Alat 1: rsync — Yang Lama Boleh Dipercayai
rsync telah menjadi ruji sysadmin selama beberapa dekad, dan untuk alasan yang baik. Ia pantas, tersedia secara meluas pada setiap pengedaran Linux, dan sangat fleksibel.
Apa yang rsync Berfungsi dengan Baik
rsync menyegerakkan fail antara dua lokasi — setempat atau jauh — dengan hanya memindahkan perbezaan. Berikut ialah corak klasik untuk sandaran jauh:
```bash
rsync -avz --delete /data/ user@backup-server:/backups/data/
```
Bendera dalam bahasa Inggeris biasa:
- `-a` — Mod arkib (memelihara kebenaran, cap masa, pemilikan)
- `-v` — Verbose (tunjukkan perkara yang disalin)
- `-z` — Mampat semasa pemindahan (menjimatkan lebar jalur)
- `--delete` — Alih keluar fail pada destinasi yang telah dipadamkan pada sumber
Membina Sistem Syot Kilat Harian dengan rsync
Kuasa sebenar rsync bersinar apabila anda menggabungkannya dengan pautan keras untuk sandaran gaya syot kilat. Alat `rsnapshot` yang popular dan banyak skrip tempatan menggunakan corak ini:
```bash
#!/bin/bash
BACKUP_DIR="/backups/data"
SNAPSHOTDIR="$BACKUPDIR/$(tarikh +%Y-%m-%d)"
TERKINILINK="$BACKUPDIR/terkini"
Langkah 1: Buat salinan pautan keras bagi petikan terbaharu
jika [ -d "$LATEST_LINK" ]; kemudian cp -al "$LATESTLINK" "$SNAPSHOTDIR" fiLangkah 2: rsync menukar fail kepada syot kilat baharu
rsync -avz --delete /data/ "$SNAPSHOT_DIR/"Langkah 3: Kemas kini pautan terkini
rm -f "$LATEST_LINK" ln -s "$SNAPSHOTDIR" "$LATESTLINK" ```Keajaibannya ada dalam `cp -al` — ia mencipta salinan menggunakan pautan keras. Fail yang tidak berubah hanya dapatkan entri direktori lain yang menunjuk ke inod yang sama. Menukar fail mencipta inod baharu untuk fail itu sahaja. Hasilnya: setiap gambar kelihatan seperti sandaran penuh tetapi hampir tidak menggunakan ruang tambahan untuk fail yang tidak berubah.
Bila Menggunakan rsync
- Sandaran peringkat fail mudah di mana anda mahukan akses segera kepada fail yang boleh dibaca dan
- Menyegerakkan ke media luar talian (pemacu luaran, pemasangan NFS)
- Pemindahan tambahan melalui SSH ke pelayan jauh
- Penghijrahan data sekali sahaja
Had
- Tiada penyulitan terbina dalam (bergantung pada SSH)
- Tiada deduplikasi peringkat blok merentas syot kilat
- Tiada pemampatan semasa rehat (hanya semasa pemindahan dengan `-z`)
- Pemangkasan manual — anda menguruskan sendiri syot kilat lama
Alat 2: Sandaran Borg — Penyahduplikasian Dilakukan Betul
Borg Backup mengambil idea rsync dan mengecasnya dengan chunking ditentukan kandungan dan penyahduplikasian sebenar. Ia membahagikan fail kepada ketulan bersaiz berubah-ubah, mencincang setiap ketulan dan menyimpan setiap ketulan unik sekali sahaja — walaupun merentasi mesin yang berbeza.
Bermula dengan Borg
```bash
Pasang Borg pada Debian/Ubuntu
apt memasang borgbackup
Mulakan repositori
borg init --encryption=repokey /backups/borg-repoBuat sandaran
borg create --stats --compression lz4 \ /backups/borg-repo::data-$(tarikh +%Y-%m-%d) \ /data/ ```Bendera mampatan `lz4` adalah sangat pantas — lebih pantas daripada tidak memampatkan dalam kebanyakan kes kerana CPU menghabiskan lebih sedikit masa untuk memampatkan daripada menunggu I/O cakera pada data yang tidak dimampatkan.
Apa yang Membuatkan Borg Istimewa
Penyahduplikasi merentas sandaran: Borg menyimpan sebahagian secara global merentas keseluruhan repositori. Jika anda menyandarkan pangkalan data 100 GB yang sama setiap hari dan hanya 500 MB berubah, setiap sandaran baharu menyimpan kira-kira 500 MB — bukan 100 GB.
Penyulitan yang disahkan: Borg menggunakan penyulitan yang disahkan (AES-OCB atau AES-CTR + HMAC-SHA256) supaya anda tahu data anda tidak diusik.
Sandaran jauh melalui SSH: Borg menyokong repositori jauh secara asli:
```bash
borg create --stats \
user@backup-server:/backups/borg-repo::data-$(date +%Y-%m-%d) \
/data/
```
Pemangkasan dibuat mudah:
```bash
borg prune --simpan-harian 7 --simpan-mingguan 4 --simpan-bulanan 6 \
/backups/borg-repo
```
Borg dalam Amalan — Persediaan Pengeluaran
```bash
#!/bin/bash
REPO="/backups/borg-repo"
eksport BORG_PASSPHRASE="your-secure-passphrase"
Buat sandaran
borg create --stats --compression auto,lzma,6 \ "$REPO::server-$(tarikh +%Y-%m-%d_%H%M)" \ /etc /var/lib /home \ --exclude '/home/*/.cache' \ --kecualikan '*.log'Pangkas sandaran lama
borg prune "$REPO" \ --simpan-setiap hari 7 \ --simpan-mingguan 4 \ --simpan-bulanan 6 \ --simpan-setahun 2Padatkan repositori (menuntut semula ruang daripada arkib yang dipadam)
borg padat "$REPO" ```Bila Menggunakan Borg
- Set data besar dengan banyak data berulang (pelayan sandaran, imej VM)
- Arkib jangka panjang di mana kecekapan penyimpanan penting
- Persekitaran di mana anda memerlukan penyulitan yang kuat semasa berehat
- Saluran paip sandaran berasaskan cron automatik
Had
- Repositori Borg tidak boleh dibaca manusia — anda memerlukan Borg untuk mengekstrak fail
- Memulihkan satu fail memerlukan mengetahui nama arkib
- Kerumitan yang lebih tinggi sedikit untuk disediakan berbanding rsync
Alat 3: restic — Sandaran Cloud-Native Dipermudahkan
restic direka untuk era moden di mana sandaran sering hidup dalam storan awan. Ia menyokong AWS S3, Backblaze B2, Google Cloud Storage, Azure Blob, OpenStack Swift, dan juga destinasi tempatan atau SFTP — semuanya dengan antara muka yang sama.
Bermula dengan rehat
```bash
Pasang restic
apt install restic
Mulakan repositori pada Backblaze B2
restic init --repo b2:bucket-name:/backupsBuat sandaran
restic --repo b2:bucket-name:/backups \ sandaran /data/ ```Apa yang Membuatkan rehat Istimewa
Sokongan berbilang awan: restic bercakap S3, B2, GCS, Azure dan storan setempat secara asli. Beralih daripada satu pembekal kepada yang lain ialah satu perubahan bendera baris arahan.
Snapshot dan lekap: restic boleh memasang sandaran sebagai sistem fail FUSE, supaya anda boleh menyemak imbas dan memulihkan fail tanpa mengekstrak:
```bash
restic mount /mnt/restore
```
Ini adalah ciri pembunuh — sandaran anda menjadi pepohon direktori boleh semak imbas yang disusun mengikut tarikh syot kilat.
Periksa dan baiki: restic termasuk perintah `check` yang mengesahkan integriti repositori dan boleh membaiki jenis rasuah tertentu:
```bash
semak restic --read-data
```
Lupakan dan cantas:
```bash
restic lupa --simpan-harian 7 --simpan-mingguan 5 --simpan-bulanan 12
prun rehat
```
restic dalam Amalan — Setempat Hibrid + Awan
```bash
#!/bin/bash
eksport RESTIC_REPOSITORY="s3:s3.amazonaws.com/my-backup-bucket"
eksport RESTIC_PASSWORD="kata laluan-selamat-anda"
Sandarkan direktori kritikal
sandaran rehat \ /etc /home /var/lib/mysql \ --exclude="/home/*/Muat Turun" \ --tag setiap mingguPangkas gambar lama
rehat lupa \ --simpan-setiap hari 7 \ --simpan-mingguan 4 \ --simpan-bulanan 12 \ --pangkasSahkan integriti
pemeriksaan rehat ```Bila hendak menggunakan restic
- Aliran kerja sandaran asli awan
- Persediaan berbilang awan / hibrid
- Persekitaran di mana anda ingin memasang sandaran untuk penyemakan imbas yang mudah
- Pasukan yang memerlukan antara muka sandaran yang konsisten merentas bahagian belakang storan yang berbeza
Had
- Penyahduplikasian yang lebih perlahan daripada Borg untuk set data yang sangat besar
- Penggunaan memori yang lebih tinggi semasa operasi sandaran
- Tiada pemampatan terbina dalam (menggunakan pemampatan pembekal storan asas)
Membina Saluran Paip Sandaran Anda: Seni Bina Praktikal
Berikut ialah seni bina terbukti yang menggabungkan ketiga-tiga alatan untuk strategi sandaran pertahanan yang mendalam:
```
Lapisan 1 — Syot Kilat Tempatan (rsync)
Tujuan: Pemulihan segera, fail boleh semak imbas
Jadual: Setiap jam melalui cron
Lokasi: Cakera tempatan atau pelekap NAS
Lapisan 2 — Arkib Nyahduplikasi (Borg)
Tujuan: Pengekalan jangka panjang yang cekap ruang
Jadual: Setiap hari melalui cron
Lokasi: Pelayan sandaran khusus pada rangkaian yang sama
Lapisan 3 — Luar Tapak Awan (restic)
Tujuan: Pemulihan bencana, perlindungan perisian tebusan
Jadual: Setiap hari, selepas Borg selesai
Lokasi: Backblaze B2 atau AWS S3
```
Contoh Jadual cron
```
/etc/cron.d/backup-pipeline
Gambar rsync setiap jam (kekalkan 24 jam)
0 root /usr/local/bin/rsync-snapshot.shSandaran Borg harian (simpan 7 harian, 4 mingguan, 6 bulanan)
0 2 * root /usr/local/bin/borg-backup.shRestic harian kepada awan (simpan 30 setiap hari, 12 bulanan)
0 4 * root /usr/local/bin/restic-cloud.sh ```Peraturan Emas: Uji Pemulihan Anda
Ini tidak boleh cukup ditekankan. Sandaran yang belum diuji bukanlah sandaran — ia adalah harapan.
Tetapkan peringatan kalendar bulanan kepada:
- Pulihkan fail rawak dari setiap lapisan sandaran
- Masa berapa lama pemulihan penuh akan diambil
- Sahkan pembuangan pangkalan data dengan mengimportnya ke dalam contoh ujian
- Semak bahawa kunci penyulitan masih berfungsi
Masa paling teruk untuk mengetahui sandaran anda rosak ialah apabila anda paling memerlukannya.
Kesimpulan
Tiada alat sandaran "terbaik" tunggal — setiap satu mempunyai tujuan yang berbeza. rsync memberikan anda syot kilat yang pantas dan boleh disemak dengan overhed minimum. Borg menyampaikan arkib yang cekap ruang dan disulitkan dengan penyahduplikasian bertaraf dunia. restic membawa fleksibiliti asli awan dengan keupayaan untuk memasang sandaran sebagai sistem fail.
Strategi yang menang adalah menggunakannya bersama-sama. rsync untuk kelajuan tempatan dan akses segera, Borg untuk arkib yang cekap, dan restic untuk perlindungan awan luar tapak. Automatikkan saluran paip, sulitkan segala-galanya dan uji pemulihan anda setiap bulan. Sysadmin pintar bukan sahaja membuat sandaran — mereka mengesahkan.

Infografik: Strategi Sandaran Linux
💬 0 Comments