Bir anlık görüntü bir yedek değildir
Panelinizdeki anlık görüntü gerçekten faydalı bir şeydir ve riskli her değişiklikten önce bir tane almalısınız. Ama bir yedek değildir ve aradaki fark kılı kırk yarmak değildir — hayatta kalmaya çalıştığınız durumların tamamının listesidir. Bir anlık görüntü, koruduğu makineyle aynı host üzerinde, aynı hesabın içinde, aynı kimlik bilgilerinin arkasında yaşar. Tam olarak tek bir soruyu iyi yanıtlar: son yirmi dakikayı nasıl geri alırım? Diğerlerinin hiçbirini yanıtlamaz. Hesap giderse, anlık görüntü de onunla birlikte gider. Bölgeye erişilemiyorsa, geri alma da erişilemez olur. Bir saldırgan panele ulaşırsa, anlık görüntülere de ulaşır. Ve veriler anlık görüntü alındığında zaten bozuksa, bozukluğu takdire şayan bir sadakatle korumuş olursunuz.
Aynısı, insanların yedekle en sık karıştırdığı iki şey için de geçerlidir. RAID bir yedek değildir: bir diskin ölmesine karşı korur ve rm -rf'i tam hızda yansıya çoğaltır. Replikasyon da aynı nedenle bir yedek değildir — amacı, ikinci kopyayı olabildiğince hızlı biçimde birinciyle özdeş hale getirmektir; birinci kopya az önce yok edilmiş olsa bile. KYC'siz bir sağlayıcıda, o listenin hesap kısmı başka yerlere göre daha keskindir: kayıt, bir kullanıcı adı, bir parola ve sekiz kurtarma kodundan ibarettir; döngünün hiçbir yerinde e-posta ya da belge yoktur, dolayısıyla onları kaybederseniz tırmanacak bir destek merdiveni de yoktur. Bu, ürünün tasarlandığı gibi çalışmasıdır. Bu aynı zamanda gerçekten önemli olan kopyanın, kaybedebileceğiniz kimlik bilgilerinden erişilemeyen kopya olduğu anlamına gelir.
3-2-1, kimsenin kimliğini tespit edemeyeceği bir sunucu için yeniden yazıldı
Eski kural hâlâ geçerlidir: önemsediğiniz her şeyin üç kopyası, iki farklı sistemde, bunlardan biri de uzak konumda olacak şekilde. İnsanların 3-2-1-1-0 olarak yazdığı modern uzantı, 2026'da en çok önem taşıyan iki koşulu ekler — değişmez ya da çevrimdışı bir kopya ve doğrulama yapıldığında sıfır hata. Tek bir sunucuya uyarlandığında şöyle okunur: birinci kopya canlı veridir; ikinci kopya, sizden hiçbir çaba gerektirmeden gece ikideki sıradan hatayı halleden sağlayıcı tarafındaki anlık görüntü ya da günlük şifrelenmiş yedekler ek özelliğidir; üçüncü kopya, farklı bir bölgedeki ikinci bir makine üzerinde, birinci makinenin silme yetkisi olmayan şifrelenmiş bir depodur. Yalnızca üçüncü kopya, birinci makinenin hesabını kaybetmeyi atlatır ve yalnızca üçüncü kopya, başka hiç kimsenin onu üretmeye zorlanamaması anlamında gerçekten sizindir.
"Uzak konum" ifadesinin ne anlama geldiği konusunda net olun. Aynı binadaki başka bir raf, önemli hiçbir anlamda uzak konum sayılmaz; aynı hukuk düzeni altındaki başka bir bölge ise işin yalnızca yarısıdır — tek bir makineye ulaşan tek bir hukuki belge otomatik olarak ikisine birden ulaşmamalıdır. Seçebileceğiniz 6 bölgeyle birlikte bu, devreye alma sırasında bir kez verdiğiniz ve bir daha geri dönmeyeceğiniz bir karardır. Yine de açıkça söylemekte fayda var: buradaki iki sunucu, izolasyon ne kadar iyi olursa olsun, yine de tek bir sağlayıcıdaki iki sunucudur ve bu, birbiriyle ilişkili bir risktir. Tehdit modeliniz gerçekten bizi kaybetmeyi de kapsıyorsa, üçüncü kopya tamamen başka bir yere aittir — evdeki bir makine, bir arkadaşınızın rafı, başka bir kıtadaki farklı bir sağlayıcı. Bu rehberdeki her şey hedef nerede olursa olsun aynı şekilde çalışır; değişen tek şey bir ortam değişkeninin içindeki adrestir.
SP·03Makineden çıkmadan önce şifreleyin
Hedef, okuyamadığı baytları saklayan bir yer olmalıdır. Bu, bir sağlayıcıdan kabul ettiğiniz bir politika değil, kendinizin inşa ettiği bir özelliktir: veri kaynakta parçalara ayrılır, sıkıştırılır, şifrelenir ve doğrulanır; ağ üzerinden geçen şey zaten anlaşılmazdır. Borg'un repokey ve keyfile kipleri her parçayı sayaç kipinde AES-256 ile şifreler ve doğrular; -blake2 çeşitleri ise HMAC-SHA256 yerine BLAKE2b kullanır ki bu, modern 64 bit CPU'larda ölçülebilir şekilde daha hızlıdır. Dosya içerikleri, dosya adları ve onları listeleyen arşiv manifesti tamamen şifrelidir; hedef yalnızca numaralandırılmış segment dosyaları ve yorumlayamadığı bir indeks barındırır. restic size aynı sonucu farklı bir iç işleyişle sunar. Her iki durumda da doğru zihinsel model, güven değil disk alanı kiraladığınızdır.
İki dürüst uyarı. Birincisi, hâlâ sızan şey: hedef diski elinde tutan kişi ne kadar verinin ne zaman geldiğini görebilir. İçerik görünmese bile depo boyutu ve yazma zamanlaması görünürdür; bu, çoğu insan için önemsizdir, birkaç kişi için değildir. İkincisi, hedefteki durağan veri şifrelemesi — yedek makinesinde LUKS — diskin binadan çıkmasına karşı korur, çalışan host'a karşı değil; bu yüzden istemci tarafındaki şifrelemenin yerini almaz, onu tamamlar. Ve sonra insanları mahveden kısım: repokey ile anahtar malzemesi, parolanızla sarmalanmış biçimde deponun içinde yaşar, dolayısıyla depoyu kaybetmek anahtarı da kaybetmek demektir; keyfile ile ise yalnızca kaynakta yaşar, dolayısıyla kaynağı kaybetmek şimdiye kadar aldığınız her arşivi kaybetmek demektir. Anahtarı dışa aktarıp bu dışa aktarımı iki makineden de farklı bir yere koymadığınız sürece hiçbiri güvenli değildir. Bunu üçüncü adımda yapın, "sonra" değil.
Borg, restic, rclone: birini seçin ve nedenini bilin
Burada iki araç da doğru cevaptır ve seçim gerçekten hedefle ilgilidir. Borg; parça düzeyinde tekilleştirme, sıkıştırma ve kimlik doğrulamalı şifreleme yapar ve — aşağıdaki uygulamalı örnek olarak seçilmesinin nedeni budur — çalıştıracak bir daemon ve açacak ekstra bir port olmadan, düz SSH üzerinden bedavaya gelen gerçek bir sunucu tarafı append-only kipi sunar. Her iki uçta da borg'un kurulu olmasını gerektirir ve kendi protokolünü konuşur. restic ise arka uçtan bağımsız olarak aynı güvenceleri sunar: SFTP, S3 uyumlu nesne depolama, Backblaze B2 ya da kendi rest-server'ı. Düz bir SFTP hedefinde hiçbir şeyin kurulması gerekmez ki bu kullanışlıdır, ama append-only o zaman bir SSH kısıtlamasına değil, rest-server --append-only'a ya da bir bucket politikasına bağlı hale gelir. Genel kural: hedef kontrolünüzdeki bir sunucuysa Borg, nesne depolamaysa ya da birçok arka uç için tek bir araç istiyorsanız restic.
Neyin kullanılmaması gerektiği de önemli, çünkü işlerin en sık ters gittiği yer burasıdır. rclone bir senkronizasyon aracıdır. crypt uzak ucu size gerçekten istemci tarafında şifreleme sağlar, ama bir senkronizasyon silmeleri de yayar — saat 03:00'te kaybettiğiniz dosya, saat 03:15'te hedeften de sadakatle kaldırılır ki bu tam olarak atlatmaya çalıştığınız arızadır. Tamamlanmış bir Borg ya da restic deposunu üçüncü bir konuma göndermek için mükemmeldir; ama bir yedek değildir. Aynı itiraz, cron içindeki çıplak bir rsync --delete için de geçerlidir; bu da bir yedek kılığına girmiş bir yansıdır. tar | gpg ile uzak bir yola göndermek gerçek bir yedektir, ama tekilleştirme yoktur, saklama mantığı yoktur ve tek bir dosyayı geri almak, artımların tüm zincirinde yürümek anlamına gelir. Bunun için tasarlanmış araçları kullanın; bu rehberde adı geçen her dağıtımda paketlenmiş olarak bulunurlar.
Append-only, yoksa saldırgan yedeklerinizi de siler
İşte bir yedekleme sistemini bir yedekleme betiğinden ayıran senaryo budur. Biri üretim kutunuzda root ele geçirir — uygulama üzerinden, bir bağımlılık üzerinden, sızdırılmış bir anahtar üzerinden, nasıl olduğunun önemi yok. Yetkin bir fidye yazılımının yaptığı ilk şey de, yetkin bir insanın yaptığı ilk şey de yedekleri aramaktır, çünkü çalışan yedekleri olan bir kurban ne öder ne de paniğe kapılır. Gece işiniz gözetimsiz çalışır, dolayısıyla kimlik bilgileri zorunlu olarak o makinededir. İş arşivleri silebiliyorsa, saldırgan da arşivleri silebilir ve bunu tam da onlara ihtiyaç duyduğunuz anda öğrenirsiniz. Bu varsayımsal bir arıza kipi değildir; bu normal olanıdır.
Çözüm küçüktür ve bu rehberdeki en önemli satırdır. Hedefte, otomatikleştirilmiş anahtarı authorized_keys içinde tek bir komuta sabitleyin: command="borg serve --append-only --restrict-to-path /srv/borg",restrict. Bu anahtar artık tam olarak tek bir şey yapabilir — bir deponun altına, tek bir yol altında veri eklemek. Kabuk alamaz, port yönlendiremez, dosya sisteminizi listeleyemez ve tek bir arşivi bile kaldıramaz. restrict anahtar sözcüğü (OpenSSH 7.2 ve sonrası) pty ayırmayı ve her türlü yönlendirmeyi tek kelimeyle kapatır, dolayısıyla seçenekler eklendikçe kısıtlama çürümez. Şimdi çoğu eğitimin atladığı dürüst uyarı: append-only yürürlükteyken borg prune ve borg compact başarılı görünür ama gerçekte hiçbir şeyi boşaltmaz — silme işlemi, bir sonraki append-only oturumunun geri aldığı bir işlemde kaydedilir. Bu yüzden saklama politikası, dizüstü bilgisayarınızdan elle kullandığınız ve asla kaynakta saklamadığınız, ikinci ve kısıtlanmamış bir anahtar gerektirir. İki anahtar, iki iş: gece işi yalnızca yazabilir; bakım anahtarı silebilir ve ele geçirilmiş makinenin ulaşamayacağı bir yerde durur. O anahtarı bir amaç daha için el altında tutun — çalışırken öldürülen bir iş bayat bir kilit bırakır ve borg break-lock bir yazma işlemidir.
İkinci kopya nerede yaşamalı
Yedekler, gecikmenin önemli olmadığı tek iş yüküdür; bu yüzden makineyi kullanıcılarınıza yakın koyma içgüdüsünü bir kenara bırakın ve bunun yerine hukuk ile bağımsızlık için seçim yapın. Üretimden farklı bir ülke tabandır; farklı bir hukuk ailesi daha iyisidir. Bölgelerimizin her biri farklı bir soruyu yanıtlar — Romanya, DMCA bildirimlerinin basitçe işleme alınmadığı amiral gemimizdir; İsviçre, AB'nin dışında, olağandışı derecede sıkı veri koruma yasalarının arkasında durur; İzlanda'da IMMI çerçevesi vardır; Panama'da zorunlu bir veri saklama yasası ve yabancı talepler için hızlı bir şerit yoktur; Malezya bir kopyayı Five-Eyes'ın erişiminin tamamen dışına koyar; ve Hollanda peering merkezidir. Hangi offshore konumu seçmelisiniz? rehberi ödünleşimleri gerçek anlamda ele alır; bir yedek hedefi için cevap genellikle "üretimin olmadığı her yer"dir. Her planda portlar sınırsızdır, dolayısıyla ilk tam yükleme, paylaştırmanız gereken bir transfer kotasıyla değil, kaynağın kendi diskini ne kadar hızlı okuyabildiğiyle sınırlıdır.
Boyutlandırma, insanların beklediğinden daha az dramatiktir. Tekilleştirme artı zstd, deponun genellikle kaynağın bir kesri kadar olacağı anlamına gelir ve ilk çalıştırmadan sonra yalnızca değişen parçalar ağdan geçer — normal bir değişim oranına sahip, yoğun 40 GB'lık bir sunucu geceye birkaç yüz megabaytla oturur, dolayısıyla bir yıllık günlük arşivler, bir yıllık günlük tarball'lardan çok daha az disk alanına mal olur. Merdivendeki en küçük plan gayet iyi bir hedeftir; yalnızca gerçekten büyük bir şeyin derin geçmişini tutuyorsanız bir üst plana geçin ve tam teknik özellikleri, zamanla eskiyecek bir rehbere yazılmış bir sayıya güvenmek yerine planlar sayfasında okuyun. Kutunun kendisi hakkında tek bir kural var: ona başka hiçbir iş vermeyin. Web sunucusu yok, veritabanı yok, bir anahtarla SSH dışında herkese açık hizmet yok. Yan bir projeye de ev sahipliği yapan bir yedek hedefi, o yan projenin saldırı yüzeyine sahip bir yedek hedefidir ve tek bir arşiv almadan önce tam ilk saat muamelesinden geçmelidir.
SP·07Geri yüklemediğiniz bir yedek bir söylentiden ibarettir
Yedekleme sistemleri nadiren gürültülü biçimde başarısız olur. Başarısız olma nedenleri; bir dışlama deseninin veri dizinini sessizce yutması, yazmalar sürerken bir veritabanının dosya dosya kopyalanması ve dökümün bozuk bir tabloya geri yüklenmesi ya da zamanlayıcının bir dağıtım yükseltmesinin ardında altı haftadır başarısız olması ve kimsenin posta kuyruğunu okumamasıdır. Bunlardan herhangi birini tespit eden tek test bir geri yüklemedir. Bunu bir takvime bağlayın: rastgele bir arşiv seçin, onu geçici bir dizine çıkarın, birkaç dosyayı üretimle karşılaştırın, veritabanını dökümden başlatıp bir sorgu çalıştırın ve bütün bunların ne kadar sürdüğünü yazın. O sayı, varsaydığınız değil, gerçek kurtarma sürenizdir — ve sabahın üçünde kendinize aktarmaya değer tek rakamdır. En az bir kez, tatbikatı boş bir makineden yapın, çünkü gerçek senaryo budur: taze bir VPS, parola yöneticinizden bir parola, nereye koyduysanız oradan dışa aktarılmış bir anahtar ve başka hiçbir şey.
İzleme de yığının geri kalanına uyguladığınız şüpheciliği hak eder. Standart tavsiye, işinizin başarı durumunda pingleyeceği üçüncü taraf bir dead-man's-switch'tir; bu da sessizce dışarıdaki bir hizmete hostname'lerinizi, takviminizi ve altyapınızın ne zaman sağlıksız olduğunu söyler — hiçbir yere kimlik bırakmadan bilerek satın aldığınız bir makineye eklemek için tuhaf bir şeydir. Buna ihtiyacınız yok. Tazelik, anahtar hiç kullanılmadan hedeften kontrol edilebilir: depodaki en yeni segment dosyası bir zaman damgası taşır, dolayısıyla yedek kutusunda, yirmi beş saattir hiçbir şey gelmediğinde bağıran beş satırlık bir cron hiçbir şeye mal olmaz ve hiçbir şeyi ifşa etmez. Bütünlüğün de anahtarsız bir kontrolü vardır — borg check --repository-only, hedefte yerel olarak çalışır ve verinizi hiç görmeden segment yapısını doğrular. Derinlemesine --verify-data geçişini ara sıra, anahtarın ait olduğu yer olan kaynaktan, bakım anahtarıyla çalıştırın.
Maliyeti ve yığındaki yeri
Ekonomi tartışmaya bile açık değil. $8.00/aydan başlayan, aynı ön ödemeli bakiyeden $30.00'den başlayan yüklemelerle fonlanan ve yaklaşık 15 min içinde çevrimiçi olan ikinci bir VPS'in maliyetini, birinci makinedeki her şeyi kaybetmenin maliyetiyle kıyaslayın. Bunu, sağlayıcı tarafı yedeklerin yerine değil, onların yanında çalıştırın: günlük şifrelenmiş yedekler ek özelliği, sizden hiçbir çaba ve sabahın üçünde hiçbir düşünme gerektirmeden yanlış-dizini-sildim durumunu halleder; burada inşa ettiğiniz şey ise hesap, bölge ya da sağlayıcı ortadan kalktığında sizin kalan kopyadır. Farklı arızaları kapsarlar ve hiçbiri diğerinin yerine geçmez — üçe kadar saymanın bütün amacı da budur.
Yedeklerin geri kalan her şeye göre nerede durduğuyla bitirmekte fayda var, çünkü bunlar birbirinden bağımsız olarak başarısız olan dört kontroldür. Sağlayıcının sizin hakkınızda bildikleri birincisidir ve burada bu neredeyse hiçbir şeydir — bir kullanıcı adı ve bir kripto bakiyesi, barındırma için anonim ödeme yapma konusunun ta kendisi. Hangi hukukun uygulandığı ikincisidir; bu, sizin nerede olduğunuzdan değil, donanımın nerede durduğundan belirlenir. Makinenin neye izin verdiği üçüncüsüdür; bu, devreye alma sonrası ilk saattir ve yapılandırması yalnızca size aittir. Ve makineden sağ çıkan şey dördüncüsüdür — geleceğinizdeki kendinize verdiğiniz bir söz olan tek kontrol ve başlamak için çok geç olduğu güne kadar kimsenin size hatırlatmayacağı tek kontrol. Bu gece bir saat ve takvimde bir geri yükleme tatbikatı. Bütün mesele bu.
SP·09Adım adım
-
01
Yedek hedefini devreye alın ve ona başka hiçbir iş vermeyin
Üretimin yaşadığı bölgenin dışında bir bölgede ikinci bir VPS devreye alın ve onu tek amaçlı bir cihaz gibi ele alın. Üzerinde standart ilk-saat kontrol listesini çalıştırın — yalnızca anahtarla SSH, her iki IP ailesinde de varsayılan reddeden güvenlik duvarı, gözetimsiz güvenlik güncellemeleri — sonra başka hiçbir şey açmayın. Bu makinedeki tek gelen port SSH'tır.
ssh root@198.51.100.7 apt update && apt full-upgrade -y hostnamectl set-hostname vault-01 apt install -y borgbackup ufw unattended-upgrades ufw default deny incoming && ufw default allow outgoing ufw limit 22/tcp && ufw enable
-
02
İki anahtarlı, kısıtlanmış bir borg hesabı oluşturun
Kaynakta iki anahtar çifti oluşturun: biri gece işi için (parolasız — çünkü gözetimsiz çalışmak zorunda), diğeri ise yalnızca dizüstü bilgisayarınızda tuttuğunuz bakım için. Hedefte, yetkisiz bir
borgkullanıcısı oluşturun ve her anahtarı zorunlu bir komuta sabitleyin. İş anahtarı--append-onlyalır; bakım anahtarı almaz. Kaynaktaki bir saldırganın geçmişinizi silmesini engelleyen şey, tam olarak bu tek dosyadır.# on the source ssh-keygen -t ed25519 -N "" -f /root/.ssh/borg_job -C "job@edge-01" # on your laptop ssh-keygen -t ed25519 -f ~/.ssh/borg_maint -C "maint@laptop" # on the target adduser --disabled-password --gecos "" borg install -d -m 700 -o borg -g borg /home/borg/.ssh /srv/borg cat > /home/borg/.ssh/authorized_keys <<'EOF' command="borg serve --append-only --restrict-to-path /srv/borg",restrict ssh-ed25519 AAAA...job@edge-01 command="borg serve --restrict-to-path /srv/borg",restrict ssh-ed25519 AAAA...maint@laptop EOF chown borg:borg /home/borg/.ssh/authorized_keys chmod 600 /home/borg/.ssh/authorized_keys
-
03
Depoyu başlatın, ardından anahtarı her iki makineden de çıkarın
Dizüstü bilgisayarınızdan, bakım anahtarıyla başlatın — bir depo oluşturmak bir ekleme işlemi değildir. Kaynak host başına bir depo, saklamayı önemsiz ve etki alanını küçük tutar. Ardından anahtarı iki kez, iki biçimde dışa aktarın ve her iki dışa aktarımı da ne kaynak ne de hedef olan bir yere taşıyın: bir parola yöneticisi, şifrelenmiş bir USB bellek, bir çekmecedeki bir kağıt. Anahtarı yalnızca kendi içinde var olan bir depo, yazı-tura atmakla aynı şeydir.
export BORG_REPO='ssh://borg@198.51.100.7/srv/borg/edge-01' export BORG_RSH='ssh -i ~/.ssh/borg_maint' borg init --encryption=repokey-blake2 borg key export :: /tmp/edge-01.borgkey borg key export --paper :: /tmp/edge-01.paper # move both off this machine, then shred the copies shred -u /tmp/edge-01.borgkey /tmp/edge-01.paper
-
04
Diski okumadan önce uygulama durumunu dondurun
Canlı bir veritabanı dizinini dosya dosya kopyalamak, veritabanına benzeyen ama bir suç mahalli gibi geri yüklenen bir dosya üretir. Önce dökün (dump), dökümü yedekleyin ve ham veri dizinini dışlayın. Aynı mantık, disk üzerindeki biçimini kontrol etmediğiniz her şey için geçerlidir: onu dökün ya da anlık görüntünün sürdüğü birkaç saniye için durdurun.
install -d -m 700 /var/backups/dumps mariadb-dump --single-transaction --quick --all-databases \ > /var/backups/dumps/mariadb.sql # PostgreSQL: # sudo -u postgres pg_dumpall > /var/backups/dumps/pg.sql chmod 600 /var/backups/dumps/*.sql
-
05
Yedekleme işini yazın ve bir zamanlayıcıya bağlayın
Betiği sıkıcı tutun ve gürültülü biçimde başarısız olmasına izin verin. Parola, mod-600 bir dosyadan
BORG_PASSCOMMANDaracılığıyla gelir, dolayısıyla asla süreç listesinde görünmez. Arşivleri host adı ve bir ISO zaman damgasıyla adlandırın ki sıralansınlar. Bu betikte olmayan şeye dikkat edin:pruneyok,deleteyok — zaten iş anahtarı bunları gerçekleştiremezdi.Persistent=trueiçeren bir zamanlayıcı, yeniden başlatmadan sonra kaçırdığını telafi eder ve rastgele bir gecikme, tüm makinelerinizin aynı saniyede yükleme yapmasını engeller.cat > /usr/local/sbin/borg-backup.sh <<'EOF' #!/bin/bash set -euo pipefail export BORG_REPO='ssh://borg@198.51.100.7/srv/borg/edge-01' export BORG_RSH='ssh -i /root/.ssh/borg_job -o BatchMode=yes' export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase' borg create --stats --compression zstd,6 --one-file-system \ --exclude-caches --exclude '/var/cache/*' \ --exclude '/var/lib/mysql' --exclude '/home/*/.cache' \ ::'{hostname}-{now:%Y-%m-%dT%H:%M}' \ /etc /root /home /srv /var/www /var/backups/dumps EOF chmod 700 /usr/local/sbin/borg-backup.sh cat > /etc/systemd/system/borg-backup.service <<'EOF' [Unit] Description=Off-site Borg backup [Service] Type=oneshot Nice=10 IOSchedulingClass=idle ExecStart=/usr/local/sbin/borg-backup.sh EOF cat > /etc/systemd/system/borg-backup.timer <<'EOF' [Unit] Description=Nightly off-site Borg backup [Timer] OnCalendar=*-*-* 03:17:00 RandomizedDelaySec=900 Persistent=true [Install] WantedBy=timers.target EOF systemctl daemon-reload systemctl enable --now borg-backup.timer -
06
Bakım anahtarıyla budayın, hedefte sıkıştırın
Saklama politikası kaynaktan çalıştırılamaz, çünkü kaynağın anahtarı append-only'dir ve yaptığı silmeler sessizce geri alınır. Bunun yerine size uyan herhangi bir sıklıkta — ayda bir gayet yeterlidir — dizüstü bilgisayarınızdan çalıştırın.
prunehangi arşivlerin tutulacağına karar verir; diski gerçekten geri kazandıran isecompact'tir. Herhangi bir şeyi silmesine izin vermeden önce bir--dry-runyapın ve listeyi okuyun.export BORG_REPO='ssh://borg@198.51.100.7/srv/borg/edge-01' export BORG_RSH='ssh -i ~/.ssh/borg_maint' borg prune --dry-run --list \ --keep-daily 7 --keep-weekly 4 --keep-monthly 6 borg prune --list --stats \ --keep-daily 7 --keep-weekly 4 --keep-monthly 6 borg compact --progress
-
07
Geri yükleme tatbikatını yapın, ardından çalışma kılavuzunu yazın
İhtiyacınız olmadan önce geri yükleyin. Gerçek bir arşivi geçici bir dizine çıkarın, birkaç dosyayı orijinalleriyle karşılaştırın ve veritabanı dökümünü kullan-at bir şemaya yükleyin. Ardından dikkatiniz olmadan çalışan iki kontrolü ekleyin: hedefte anahtarsız bir tazelik alarmı ve periyodik bir bütünlük geçişi. Son olarak, en kötü gününüzde isteyeceğiniz üç bilgiyi yazıya dökün — dışa aktarılan anahtarın nerede durduğu, parolanın nerede durduğu ve aşağıdaki tam komutlar.
borg list :: mkdir -p /var/tmp/drill && cd /var/tmp/drill borg extract --list ::edge-01-2026-08-31T03:17 etc/nginx diff -r etc/nginx /etc/nginx && echo 'restore OK' # on the target, no key needed: borg check --repository-only /srv/borg/edge-01 find /srv/borg/edge-01/data -type f -mmin -1500 | head -1 # empty = stale


