Bir bakışta
- VPS'te veri kaybını önlemek için otomatik yedekleme politikası kurmak insan hatasını ortadan kaldırır.
- Tam, artımlı ve fark alan yedekleme yöntemleri farklı avantajlar sunar, doğru strateji seçimi önemlidir.
- Cron job ile zamanlama ve 3-2-1 kuralıyla yedekleri farklı ortamlarda saklamak veri güvenliğini artırır.
Giriş: Neden Otomatik Yedekleme Politikasına İhtiyacınız Var
Bir VPS üzerinde veri kaybı, çoğu zaman beklenmedik bir anda gerçekleşir. Donanım arızaları, yanlışlıkla silinen bir dosya, hatalı bir güncelleme komutu ya da kötü niyetli bir siber saldırı; hepsi aynı sonucu doğurabilir: aylar süren emeğin bir anda yok olması. Küçük işletme sahipleri ve kendi sunucusunu yöneten geliştiriciler için bu tür bir kayıp, sadece teknik bir sorun değil, aynı zamanda ciddi bir iş kaybı anlamına gelir.
Manuel yedekleme, "hatırladığım zaman yaparım" mantığıyla ilerlediği için güvenilir bir çözüm değildir. İşler yoğunlaştığında ya da tatile çıkıldığında yedek alma unutulur, tam da veri kaybının yaşandığı gün en güncel yedeğin haftalar öncesine ait olduğu fark edilir. Bu yüzden otomasyon, yedekleme sürecinin insan hatasından bağımsız, düzenli ve güvenilir şekilde işlemesini sağlayan tek gerçekçi yoldur.
Bu rehber, ileri seviye sistem yönetimi bilgisi olmayan ama kendi VPS'ini yöneten kişilere, otomatik yedekleme politikasını sıfırdan nasıl planlayıp kurabileceklerini adım adım, sade bir dille anlatmayı amaçlıyor.
Adım 1: Hangi Verilerin Yedekleneceğini Belirlemek
Yedekleme politikası kurmadan önce atılması gereken ilk adım, sunucunuzdaki verileri kategorilere ayırmaktır. Genellikle üç ana grup söz konusudur:
- Veritabanları: Web siteniz veya uygulamanız bir veritabanı kullanıyorsa (MySQL, PostgreSQL gibi), bu veriler genellikle en kritik kısımdır. Sipariş bilgileri, kullanıcı hesapları, içerikler gibi dinamik veriler burada tutulur.
- Site/uygulama dosyaları: Yüklenen resimler, eklentiler, tema dosyaları, uygulama kodları gibi statik ya da yarı dinamik içerikler.
- Sunucu konfigürasyon dosyaları: Web sunucusu ayarları, güvenlik duvarı kuralları, ortam değişkenleri gibi sunucunun nasıl çalıştığını belirleyen dosyalar.
Bu ayrımı yapmak önemlidir çünkü her verinin değişim hızı ve kritiklik seviyesi farklıdır. Örneğin bir e-ticaret sitesinde veritabanı her dakika değişebilirken, tema dosyaları haftalarca aynı kalabilir. Kritik veriyle geçici ya da kolayca yeniden oluşturulabilir veriyi (örneğin önbellek dosyaları) ayırt etmek, hem yedekleme süresini kısaltır hem de gereksiz disk kullanımını önler. Bu aşamada basit bir öncelik listesi çıkarmak, sonraki adımları çok daha netleştirir.
Yedekleme Türleri: Tam, Artımlı ve Fark Alan Yedekleme
Yedekleme dünyasında üç temel yöntem vardır ve bunları anlamak, doğru stratejiyi kurmanın temelidir.
Tam yedekleme (full backup), adından da anlaşılacağı gibi, seçilen tüm verinin komple bir kopyasını alır. En basit ve en güvenilir yöntemdir çünkü geri yükleme sırasında tek bir dosya setine ihtiyaç duyarsınız. Dezavantajı ise her seferinde tüm veriyi kopyaladığı için hem zaman hem de depolama alanı açısından maliyetli olmasıdır.
Artımlı yedekleme (incremental backup), yalnızca bir önceki yedekten bu yana değişen verileri kaydeder. Bu sayede işlem çok daha hızlı tamamlanır ve daha az yer kaplar. Ancak geri yükleme yaparken tam yedek ile ondan sonraki tüm artımlı parçaların sırayla uygulanması gerekir, bu da süreci biraz daha karmaşık hale getirir.
Fark alan yedekleme (differential backup) ise ikisinin arasında bir konumdadır: her seferinde son tam yedekten bu yana yapılan tüm değişiklikleri kaydeder (artımlıdan farklı olarak bir önceki yedeğe değil, hep tam yedeğe göre kıyaslar). Geri yükleme, artımlıya göre daha basittir çünkü sadece tam yedek ile en son fark yedeğine ihtiyaç duyulur.
Genel bir kural olarak, küçük ölçekli bir VPS için haftalık bir tam yedek alıp aradaki günlerde artımlı yedekler oluşturmak, hem depolama hem de geri yükleme kolaylığı açısından makul bir denge sunar.
Adım 2: Cron Job ile Otomatik Zamanlama Kurmanın Mantığı
Linux tabanlı VPS sunucularda otomasyonun temel taşı cron job'dır. Cron, belirlediğiniz zaman aralıklarında belirli komutları otomatik olarak çalıştıran bir zamanlayıcı sistemdir. Yedekleme scriptinizi yazdıktan sonra, bu scriptin ne sıklıkla çalışacağını cron'a tanımlarsınız ve sistem sizin için düzenli olarak yedek almaya devam eder.
Zamanlama sıklığını belirlerken sunucunuzun kullanım yoğunluğunu göz önünde bulundurmalısınız. Sürekli güncellenen bir e-ticaret sitesi için günlük, hatta bazı kritik veriler için birkaç saatte bir yedekleme mantıklı olabilirken, nadiren güncellenen bir kurumsal tanıtım sitesi için haftalık yedekleme yeterli olabilir.
Cron'a bir görev eklemek genellikle sunucunuzdaki crontab dosyasını düzenlemekle yapılır ve komut satırında belirli bir zaman deseniyle (dakika, saat, gün gibi) hangi scriptin çalıştırılacağı belirtilir. Bu konuda sunucu sağlayıcınızın veya kullandığınız işletim sisteminin resmi dokümantasyonuna başvurmanız, doğru sözdizimini öğrenmeniz açısından faydalı olacaktır.
Otomasyonun bir diğer önemli parçası ise log tutmaktır. Yedekleme scriptiniz her çalıştığında başarılı mı oldu, hata mı verdi, bunu bir log dosyasına yazdırmalısınız. Aksi halde yedeklemenin haftalardır sessizce başarısız olduğunu, tam da ihtiyaç duyduğunuz anda fark edebilirsiniz — ki bu, otomasyonun amacını tamamen boşa çıkarır.
Yedekleri Sunucu Dışında Saklamak: 3-2-1 Kuralı
Yedeklerinizi yalnızca aynı VPS üzerinde tutmak, aslında yarı yarıya bir çözümdür. Sunucunun kendisi arızalanırsa ya da bir saldırı sonucu tüm disk zarar görürse, üzerindeki yedekler de veriyle birlikte kaybolur.
Bu nedenle yedekleme dünyasında yaygın kabul gören 3-2-1 kuralı işe yarar bir çerçeve sunar:
- 3 kopya: Verinin orijinali dahil en az üç kopyası bulunmalı.
- 2 farklı ortam: Bu kopyalar en az iki farklı depolama ortamında (örneğin sunucu diski ve harici bir bulut depolama) tutulmalı.
- 1 uzak konum: Kopyalardan en az biri, fiziksel olarak farklı bir konumda, yani sunucunuzdan bağımsız bir yerde saklanmalı.
Pratikte bu, yedeklerinizi hem VPS üzerinde tutup hem de düzenli olarak bir bulut depolama hizmetine veya ayrı bir uzak sunucuya aktarmanız anlamına gelir. Böylece sunucunuzda yaşanacak herhangi bir felaket senaryosunda veriniz güvende kalır. Sadece yerel diskte yedek tutmak, kısa vadeli hatalardan (yanlışlıkla silinen dosya gibi) korunmanızı sağlasa da, sunucu düzeyinde yaşanacak büyük bir arızaya karşı hiçbir koruma sunmaz.
Yönetim Panelleri Üzerinden Otomatik Yedekleme Ayarları
Komut satırıyla uğraşmak istemeyen kullanıcılar için birçok yönetim paneli, yedekleme işlemini görsel arayüz üzerinden yönetme imkânı sunar. cPanel gibi popüler panellerde genellikle "Backup" veya "Backup Wizard" adı altında bir bölüm bulunur. Bu bölümden hangi verilerin (veritabanı, dosyalar, e-postalar) dahil edileceğini, yedekleme sıklığını ve hedef depolama konumunu (uzak FTP, bulut depolama gibi) yapılandırabilirsiniz.
Panel üzerinden yapılan ayarlar genellikle arka planda yine cron benzeri bir zamanlayıcı kullanır, ancak kullanıcıya teknik detayları gizleyerek işlemi kolaylaştırır. Eğer VPS'inizde böyle bir yönetim paneli kurulu değilse ya da panelsiz, sade bir kurulum tercih ediyorsanız, bir önceki bölümde bahsedilen komut satırı tabanlı cron çözümüne yönelmeniz gerekecektir. Her iki yöntem de aynı hedefe hizmet eder: düzenli, insan müdahalesi gerektirmeyen bir yedekleme akışı kurmak.
Yedeklerin Şifrelenmesi ve Güvenli Saklanması
Yedekleme dosyaları, genellikle veritabanı şifreleri, kullanıcı bilgileri ve hassas konfigürasyon verilerini içerir. Bu dosyalar şifrelenmeden saklandığında, yedek dosyasına erişim sağlayan biri (örneğin bulut depolama hesabınıza sızan bir saldırgan) tüm bu bilgilere doğrudan ulaşabilir.
Bu riski azaltmak için yedek dosyalarınızı bir şifreleme aracıyla koruma altına almanız önerilir. Birçok yedekleme aracı ve script, sıkıştırma işlemiyle birlikte şifreleme seçeneği de sunar; bu sayede yedek dosyası hem daha küçük boyutta olur hem de içeriği yetkisiz erişime karşı korunur.
Şifrelemenin yanı sıra, yedek dosyalarına kimlerin erişebileceğini de sınırlamak gerekir. Yedeklerinizi sakladığınız bulut hesabı veya uzak sunucu için güçlü, benzersiz parolalar kullanmak ve gereksiz yere paylaşım yetkisi vermemek, güvenlik açısından basit ama etkili bir önlemdir.
Yedekleme Sürecini Test Etmek: Geri Yükleme Denemeleri
Yedek almak, işin sadece yarısıdır. Birçok kullanıcı yıllarca düzenli yedek aldığını düşünürken, gerçek bir kriz anında yedek dosyasının bozuk olduğunu ya da geri yükleme sırasında beklenmedik hatalarla karşılaştığını fark eder. Bu yüzden yedeklerinizin gerçekten işe yarayıp yaramadığını düzenli aralıklarla test etmeniz gerekir.
Test geri yükleme, ayrı bir test ortamında (mümkünse canlı sunucudan bağımsız bir alanda) yedek dosyasını geri yükleyip verinin eksiksiz ve tutarlı şekilde açılıp açılmadığını kontrol etmek anlamına gelir. Bu süreçte karşılaşılabilecek yaygın sorunlar arasında eksik dosya izinleri, uyumsuz veritabanı sürümleri veya yarım kalmış/bozuk yedek dosyaları sayılabilir. Bu tür sorunları gerçek bir kriz yaşanmadan önce fark etmek, yedekleme politikanızın gerçek anlamda işe yarayıp yaramadığını gösteren tek güvenilir yöntemdir.
Yedekleme Sıklığı ve Saklama Süresi (Retention Policy) Belirleme
Yedekleme sıklığı, herkes için aynı olamaz. Bir sunucunun ne kadar sık yedeklenmesi gerektiği, o sunucudaki verinin ne kadar hızlı değiştiğine bağlıdır. Sürekli sipariş alan bir e-ticaret sitesi için günlük, hatta bazı durumlarda daha sık yedekleme mantıklıyken, ayda birkaç kez güncellenen bir kurumsal blog için haftalık yedekleme yeterli olabilir.
Bir diğer önemli konu ise saklama süresidir (retention policy): yani kaç adet eski yedeğin saklanacağı. Yedekleri sonsuza kadar biriktirmek disk alanını hızla tüketir ve bulut depolama kullanıyorsanız maliyeti artırır. Bu yüzden makul bir denge kurmak gerekir; örneğin son 7 günlük günlük yedekleri, son 4 haftalık haftalık yedekleri ve son birkaç aylık aylık yedekleri saklayıp bunun öncesindeki eski yedekleri otomatik olarak silmek, hem disk alanını kontrol altında tutar hem de makul bir geçmişe erişim imkânı sunar.
Bu rotasyon mantığını da yine yedekleme scriptinize veya panel ayarlarınıza otomatik silme kuralı olarak tanımlayarak, elle temizlik yapma zorunluluğundan kurtulabilirsiniz.
Sonuç: Sürdürülebilir Bir Yedekleme Alışkanlığı Oluşturmak
Otomatik yedekleme politikası, bir kez kurulup tamamen unutulacak bir sistem değildir. Sunucunuzdaki veri hacmi büyüdükçe, kullanım yoğunluğu değiştikçe ya da yeni uygulamalar eklendikçe yedekleme kapsamınızı ve sıklığınızı gözden geçirmeniz gerekir. Ayrıca log kayıtlarını zaman zaman kontrol etmek ve test geri yüklemelerini periyodik olarak tekrarlamak, sistemin sessizce bozulmadığından emin olmanın tek yoludur.
Küçük işletmeler ve bireysel geliştiriciler için karmaşık, kurumsal düzeyde bir yedekleme altyapısı kurmak şart değildir. Doğru veri kategorilerini belirlemiş, makul bir zamanlama kurmuş, yedeklerinizi sunucu dışında güvenli ve şifreli şekilde saklıyor ve arada bir test ediyorsanız, bu basit ama tutarlı yaklaşım çoğu senaryoda veri kaybına karşı yeterli bir güvence sağlar.



