Sunucuları veya hatta kişisel bir Linux bilgisayarını yönetmek söz konusu olduğunda, şansa bırakılamayacak bir şey vardır: veri yedeklemeleri. Ne kadar önlem alırsak alalım, donanım arızaları, insan hatası veya güvenlik saldırıları gerçek bir olasılıktır ve işte burada rsync devreye giriyor . Bu araç sadece dosya kopyalama programı değil; verilerimizin güvende olduğunu bilerek rahat uyumamızı sağlayan son derece güçlü bir senkronizasyon protokolüdür.
Rsync'i sistem yöneticileri için tercih edilen seçenek yapan şey, inanılmaz verimliliğidir . Dosyanın tamamını tekrar tekrar kopyalayan diğer yöntemlerin aksine, rsync yalnızca değişen kısımları taşır ve bu da büyük miktarda bant genişliği ve zaman tasarrufu sağlar. İster klasörlerinizin anlık görüntülerini oluşturmak isteyen bir masaüstü kullanıcısı olun, ister çok sunuculu bir altyapıyı yöneten bir uzman olun, bu yardımcı programı öğrenmek kesinlikle şarttır.
rsync'in büyüsü nasıl çalışıyor?
rsync'in neden bu kadar hızlı olduğunu anlamak için, arka plana bakmanız gerekiyor. Program, delta transfer algoritmasını kullanıyor. İlk olarak, kaynak ve hedef dosyaları boyut ve değiştirme tarihine göre karşılaştırıyor. Bir şeyin değiştiğini tespit ederse, dosyayı bloklara ayırıyor ve hangi parçaların farklı olduğunu tam olarak belirlemek için sağlama toplamlarını hesaplıyor. Daha sonra yalnızca değiştirilen bloklar iletiliyor ve hedef, nihai dosyayı yeniden oluşturuyor. Bu, basit cp veya scp komutlarından çok daha akıllı bir işlem.
Kurulum ve ilk adımlar
Ubuntu veya Debian gibi çoğu modern dağıtımda rsync önceden yüklenmiş olarak gelir. Eğer herhangi bir nedenle sizde durum böyle değilse, aşağıdaki komutla hızlıca yükleyebilirsiniz: sudo apt install rsyncRed Hat veya CentOS tabanlı sistemlerde komut şu şekilde olurdu: sudo yum install rsyncKurulum tamamlandıktan sonra, aşağıdaki komutu çalıştırarak her şeyin yolunda olup olmadığını kontrol edebilirsiniz. rsync --version terminalinizde.
Sözdizimi ve temel seçenekler
Temel yapı basittir: rsync origen destinoAncak gerçek potansiyeli parametrelerinde yatmaktadır. En yaygın kullanılanlardan biri şudur: -a (dosya modu)Bu, temelde izinleri, sahipliği, zaman damgalarını ve sembolik bağlantıları koruyan ve kopyanın orijinaliyle tamamen aynı olmasını sağlayan bir pakettir. Gerçek zamanlı olarak neler olup bittiğini görmek istiyorsanız, şunu ekleyin: -v (ayrıntılı)Ve eğer verileri bir ağ üzerinden aktaracaksanız, bu seçenek... -z Yolculuk sırasında bilgileri sıkıştıracaktır.
Sıklıkla baş ağrısına neden olan teknik detaylardan biri şudur: son eğik çizgi güzergahlarda. Eğer yazarsanız /directorio/ (Eğik çizgiyle birlikte), rsync o klasörün içeriğini kopyalayacaktır. Eğer şunu yazarsanız: /directorio (Eğik çizgi olmadan), tüm klasörü hedef konuma kopyalayacaktır. Bu küçük bir ayrıntı, ancak düzenli bir yapıya sahip olmak ile kaotik bir klasör yığını arasında büyük bir fark yaratır.
Kullanım senaryoları ve gelişmiş yapılandırma
İhtiyaçlarınıza bağlı olarak rsync'i kullanmanın birkaç yolu vardır. Standart bir yedekleme arıyorsanız , dosya modu en iyi seçeneğinizdir. Ancak hedef konumun kaynak konumun birebir aynısı olmasını ve kaynakta artık bulunmayan dosyaların silinmesini istiyorsanız, `--delete` seçeneğini eklemelisiniz . Bu, yedeklemelerin temiz kalması ve gereksiz dosyaların birikmesinin önlenmesi için hayati önem taşır.
Ayrıca seçici de olabilirsiniz. Yedeklemek istemediğiniz klasörler varsa (önbellekler veya geçici dosyalar gibi), belirli kalıpları tanımlamak için `--exclude` seçeneğini kullanabilir veya hariç tutma listesini içeren bir metin dosyası oluşturup `--exclude-from` ile çağırabilirsiniz. Çok büyük boyutlu dosyalarla çalışanlar için, dosya boyutuna göre kopyalanacakları filtrelemenizi sağlayan `--max-size` ve `--min-size` parametreleri mevcuttur.
Otomasyon: Komutları manuel olarak çalıştırmayı unutun.
Manuel yedeklemeler felakete yol açar çünkü er ya da geç unuturuz. Klasik çözüm şudur: cronCrontab'ı düzenlerken crontab -e, yapabiliriz Linux'ta yedeklemeleri rsync ve cron ile otomatikleştirin. Komutu örneğin her gece saat 3'te çalışacak şekilde planlayarak. Şöyle bir satır: 0 3 * * * rsync -av /home/usuario /mnt/backup O bizim için zor işleri halledecek.
Daha modern bir şey tercih edenler için systemd zamanlayıcıları mevcuttur . Bunlar, net bağımlılıklar ve sistem günlükleriyle daha iyi entegrasyon ile daha sağlam bir yönetim sağlar. Görev için bir .service dosyası ve zamanlama için bir .timer dosyası oluşturularak yapılandırılırlar ve eski cron'a göre çok daha ayrıntılı kontrol sunarlar.
Yedekleme stratejileri: İtme, Çekme ve Anlık
Profesyonel ortamlarda iki ana yaklaşım vardır. "İtme" modeli , üretim sunucusunun verileri yedekleme sunucusuna göndermesidir. Basit bir modeldir, ancak birincil sunucunun hedef sunucu üzerinde yazma izinlerine sahip olmasını gerektirir. " Çekme" modeli ise bunun tersidir: yedekleme sunucusu verileri talep eder. Bu çok daha güvenlidir, çünkü üretim sunucusunun yedekleme sistemi hakkında bilgi sahibi olması veya ona erişmesi gerekmez.
Tek bir hatanın tüm geçmişi silmesini önlemek için ideal çözüm, şunu uygulamaktır: yedek rotasyonKopyanın üzerine yazmak yerine, şu komutu kullanarak geçerli tarihle klasörler oluşturabiliriz. date +%Y-%m-%dGelişmiş bir teknik, aşağıdakileri kullanmayı içerir: sabit bağlantılar ile cp -alBu sayede, değişmeyen dosyalar tüm sürümler arasında paylaşıldığı için disk alanının aşırı artmasına neden olmadan birden fazla geçmiş sürüm (anlık görüntü) oluşturulabilir.
rsync sunucusunun (daemon) yapılandırılması
Bir makineyi özel bir yedekleme sunucusuna dönüştürmek istiyorsanız, aşağıdaki yapılandırmayı yapmanız gerekir. rsync arka plan programıBu, dosyanın düzenlenmesini içerir. /etc/rsyncd.confBurada veri modüllerini, yetkili kullanıcıları ve erişimin salt okunur olup olmadığını tanımlıyoruz. Güvenlik açısından, bir yapı oluşturmak çok önemlidir. Kopyalarınız için şifrelenmiş yedekleme. ve parola dosyası izinlerini kısıtla /etc/rsyncd.passwd ile chmod 0600 Böylece başka kimse onları okuyamaz.
Ortak sorunların çözümü
Her şey mükemmel değildir ve bazı engellerle karşılaşmak normaldir. " İzin reddedildi" hatası genellikle rsync'i çalıştıran kullanıcının kaynak dosyaya okuma ve hedef dosyaya yazma erişimine sahip olduğundan emin olunarak çözülür. Yedeklemenin internet bağlantınızı aşırı derecede kullandığını fark ederseniz, `--bwlimit` seçeneğiyle bant genişliğini sınırlayabilirsiniz.
Sık karşılaşılan bir diğer uyarı ise aktarım sırasında bazı dosyaların kaybolmasıdır . Bu genellikle rsync dosyaları okurken sistemin sildiği günlük veya geçici dosyalarla olur; genellikle ciddi bir sorun değildir ve göz ardı edilebilir veya dışlama komut dosyaları kullanılarak çözülebilir.
Onaylamanın altın kuralı
Kullanılan araç ne olursa olsun, rsync daha geniş bir stratejinin parçası olmalıdır; örneğin 3-2-1 kuralı : verilerinizin üç kopyasını iki farklı depolama ortamında saklayın, bir kopyayı da farklı bir yerde muhafaza edin. Verileri geri yükleyebileceğinizi doğrulamadan önce yedeklemenin gerçekten güvenilir olmadığını unutmayın. Yıkıcı komutları çalıştırmadan önce -n (deneme çalıştırma) seçeneğiyle simülasyonlar çalıştırmak, hayatınızı birden fazla kez kurtaracak bir uygulamadır.
rsync'i ustaca kullanmak, basit manuel yedeklemelerden, veri bütünlüğünü koruyan otomatik, sürümlü bir sisteme geçmek anlamına gelir. İster özel bir sunucu kurarak, ister cron işleri planlayarak veya sabit bağlantılar kullanarak rotasyonlar uygulayarak olsun, anahtar tutarlılık ve düzenli veri doğrulamasıdır; böylece öngörülemeyen herhangi bir durumda kurtarma hızlı ve etkili olur.
Genel olarak bayt ve teknoloji dünyası hakkında tutkulu bir yazar. Bilgilerimi yazarak paylaşmayı seviyorum ve bu blogda da bunu yapacağım; size gadget'lar, yazılım, donanım, teknolojik trendler ve daha fazlasıyla ilgili en ilginç şeyleri göstereceğim. Amacım dijital dünyada basit ve eğlenceli bir şekilde gezinmenize yardımcı olmaktır.




