Büyük Dizinleri Unison ile Ubuntu 16.04 Üzerinde Yedekleme Rehberi
Bilgi çağında veri, işletmelerin ve bireylerin en değerli varlıklarından biridir. Bu verilerin kaybı, ciddi sonuçlar doğurabilir. Bu nedenle, düzenli ve güvenilir yedekleme stratejileri hayati önem taşır. Özellikle büyük dizinlerin, yani gigabaytlarca hatta terabaytlarca verinin yedeklenmesi, hem zaman hem de kaynak açısından zorlayıcı olabilir. Bu makalede, Ubuntu 16.04 işletim sistemi üzerinde Unison dosya senkronizasyon aracını kullanarak büyük dizinleri nasıl etkili bir şekilde yedekleyeceğimizi detaylı bir şekilde inceleyeceğiz. Unison, iki yönlü senkronizasyon yeteneği, çatışma yönetimi ve ağ verimliliği ile bu tür senaryolar için güçlü bir çözüm sunmaktadır.
Unison Nedir ve Neden Büyük Dizinler İçin İdealdir?
Unison, iki farklı konum (yerel disk, ağ sürücüsü, uzak sunucu vb.) arasında dosya ve dizinleri senkronize etmek için tasarlanmış, güçlü ve çok yönlü bir dosya senkronizasyon aracıdır. Diğer yaygın yedekleme araçlarından (örneğin rsync) farklı olarak, Unison hem tek yönlü (yedekleme) hem de iki yönlü (senkronizasyon) işlemleri destekler. Bu, özellikle aynı dizin üzerinde birden fazla konumda değişiklik yapıldığında ve bu değişikliklerin tüm kopyalara yayılması gerektiğinde Unison’ı benzersiz kılar.
Büyük dizinler söz konusu olduğunda Unison’ın öne çıkan bazı avantajları şunlardır:
* İki Yönlü Senkronizasyon: Unison, her iki taraftaki değişiklikleri algılar ve bunları diğer tarafa uygular. Bu, yedekleme ve geri yükleme işlemlerini daha esnek hale getirir. Örneğin, bir yedek kopyada yapılan bir değişiklik, ana kopyaya da otomatik olarak yansıtılabilir.
* Akıllı Çatışma Yönetimi: Aynı dosya üzerinde her iki tarafta da eş zamanlı değişiklikler yapıldığında, Unison bir çatışma algılar. Varsayılan olarak kullanıcıya sorar veya konfigürasyonda belirtilen bir kurala (örneğin, her zaman daha yeni olanı tercih et) göre otomatik olarak çözebilir. Bu, veri bütünlüğünü korumak için kritik bir özelliktir.
* Bant Genişliği Verimliliği: Unison, dosyaların yalnızca değiştirilen kısımlarını senkronize etmek için rsync benzeri bir algoritma kullanır. Bu, özellikle büyük dosyaların küçük bir bölümü değiştiğinde, tüm dosyanın yeniden aktarılmasına gerek kalmadan bant genişliğinden önemli ölçüde tasarruf sağlar. İlk senkronizasyondan sonraki tüm işlemler çok daha hızlıdır.
* Sağlamlık ve Güvenilirlik: Ağ bağlantısı kesilse veya sistem çökerse bile, Unison bir sonraki çalıştırmada kaldığı yerden devam edebilir. Bu, büyük veri aktarımlarında kesintilerin yol açabileceği sorunları minimize eder.
* Platform Bağımsızlığı: Unison, Linux, macOS ve Windows dahil olmak üzere birçok farklı işletim sisteminde çalışabilir. Bu, heterojen ortamlarda senkronizasyon için idealdir.
* Kullanıcı Dostu Arayüz (İsteğe Bağlı): Komut satırı arayüzünün yanı sıra, grafiksel bir arayüz (unison-gtk) de sunar, bu da teknik olmayan kullanıcılar için bile erişilebilir olmasını sağlar.
Ubuntu 16.04, uzun süreli destek (LTS) sürümü olması nedeniyle birçok sunucu ve iş istasyonunda hala kullanılmaktadır. Bu makaledeki adımlar ve konfigürasyonlar bu spesifik sürüme uygun olacaktır.
Unison Kurulumu ve Temel Yapılandırma
Unison’ı Ubuntu 16.04 sisteminize kurmak oldukça basittir. Öncelikle sisteminizin paket listesini güncelleyelim ve ardından Unison paketini kuralım. Uzak bir sunucuya yedekleme yapmayı planlıyorsanız, SSH bağlantısının da kurulu ve yapılandırılmış olması gerekmektedir.
Unison Kurulum Adımları
1. Paket Listesini Güncelleme:
sudo apt update
Bu komut, sisteminizdeki mevcut paketlerin listesini güncelleyecektir.
2. Unison Kurulumu:
Komut satırı arayüzünü kullanmak için unison paketini kurun:
sudo apt install unison
Eğer grafiksel arayüzü tercih ediyorsanız, unison-gtk paketini kurabilirsiniz:
sudo apt install unison-gtk
unison-gtk paketi, unison paketini bağımlılık olarak otomatik olarak kuracaktır.
3. SSH Kurulumu (Uzak Yedekleme İçin):
Uzak bir sunucuya yedekleme yapacaksanız, hem yerel makinenizde hem de uzak sunucuda SSH sunucusunun kurulu ve çalışır durumda olması gerekir. Ayrıca, şifresiz oturum açmak için SSH anahtar tabanlı kimlik doğrulamasını yapılandırmak, otomatik yedeklemeler için kritik öneme sahiptir.
* SSH Sunucusunu Kurma (Uzak Sunucuda):
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
* SSH Anahtar Çifti Oluşturma (Yerel Makinede):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Bu komut, .ssh dizini altında id_rsa (özel anahtar) ve id_rsa.pub (genel anahtar) dosyalarını oluşturacaktır. Parola sormadan geçmek için parolayı boş bırakın.
* Genel Anahtarı Uzak Sunucuya Kopyalama:
ssh-copy-id user@remote_host
user yerine uzak sunucudaki kullanıcı adınızı, remote_host yerine sunucunun IP adresini veya alan adını yazın. Bu komut, genel anahtarınızı uzak sunucudaki .ssh/authorized_keys dosyasına ekleyecektir. Artık uzak sunucuya parola girmeden SSH ile bağlanabilmelisiniz.
Test edin:
ssh user@remote_host
Eğer parola sormadan bağlanabiliyorsanız, SSH yapılandırmanız başarılı demektir.
Unison Nasıl Çalışır?
Unison, senkronizasyon işlemini yönetmek için her iki tarafta da bir “root” dizin belirler. Bu root dizinler, senkronize edilecek ana dizinlerdir. Unison, bu root dizinlerin her birinde, senkronizasyon durumunu ve dosya meta verilerini (boyut, değişiklik zamanı, içerik özetleri vb.) içeren gizli bir .unison dizini oluşturur. Bu dizin, Unison’ın sonraki senkronizasyonlarda hangi dosyaların değiştiğini veya silindiğini hızlıca tespit etmesini sağlar.
İlk senkronizasyon sırasında Unison, her iki taraftaki tüm dosyaları karşılaştırır ve eksik olanları kopyalar. Sonraki senkronizasyonlarda ise yalnızca değişen dosyaların bloklarını veya tamamını aktarır. Bu, büyük dizinlerle çalışırken performansı önemli ölçüde artırır.
Unison, bir profil dosyası kullanarak senkronizasyon ayarlarını saklar. Bu profiller, ~/.unison dizini altında .prf uzantısıyla bulunur. Bir profil, hangi dizinlerin senkronize edileceği, hangi dosyaların göz ardı edileceği, çatışma çözme kuralları ve diğer birçok seçeneği içerir. Profil kullanmak, karmaşık senkronizasyon işlemlerini tekrarlamayı ve yönetmeyi kolaylaştırır.
Unison ile Büyük Dizinleri Yedekleme Senaryoları
Unison’ı farklı yedekleme senaryolarında nasıl kullanabileceğimizi inceleyelim.
1. Yerel Yedekleme (Aynı Makine Üzerinde)
Büyük bir dizini aynı makine üzerindeki farklı bir diske veya dizine yedeklemek için Unison kullanılabilir. Bu, dahili veya harici bir sabit diske yedekleme yapmak için idealdir.
Örnek Komut:
Diyelim ki /home/user/data dizinini /mnt/backup_disk/data_backup dizinine yedeklemek istiyorsunuz.
unison /home/user/data /mnt/backup_disk/data_backup
Bu komutu ilk çalıştırdığınızda, Unison her iki dizini karşılaştıracak ve eksik olan dosyaları kopyalayacaktır. Eğer /mnt/backup_disk/data_backup dizini boşsa, tüm /home/user/data içeriği buraya kopyalanacaktır. Sonraki çalıştırmalarda ise sadece değişen veya yeni eklenen dosyalar senkronize edilecektir. Unison, varsayılan olarak etkileşimli çalışır ve her senkronizasyon eylemi için onay ister. Otomatikleştirmek için -batch ve -auto gibi parametreler kullanılabilir.
2. Uzak Yedekleme (SSH Üzerinden)
En yaygın yedekleme senaryolarından biri, verileri uzak bir sunucuya veya başka bir makineye yedeklemektir. Unison, SSH protokolünü kullanarak güvenli ve şifreli bir bağlantı üzerinden bu işlemi gerçekleştirebilir.
Örnek Komut:
Yerel makinenizdeki /home/user/projects dizinini uzak sunucudaki remote_host (örneğin 192.168.1.100) adresindeki /remote/backups/projects dizinine yedeklemek istiyorsunuz. Uzak sunucuda remote_user adında bir kullanıcınız olduğunu varsayalım.
unison /home/user/projects ssh://remote_user@remote_host//remote/backups/projects
Burada dikkat edilmesi gereken nokta, uzak yolun çift eğik çizgi (//) ile başlamasıdır. Bu, Unison’a yolun mutlak bir yol olduğunu ve SSH bağlantısının kök dizininden itibaren değil, uzak sistemin kök dizininden itibaren yorumlanması gerektiğini belirtir.
Eğer uzak SSH sunucusu standart 22 portu yerine farklı bir port kullanıyorsa, bunu da belirtebilirsiniz:
unison /home/user/projects ssh://remote_user@remote_host:2222//remote/backups/projects
Bu komut da ilk çalıştırmada tüm veriyi kopyalayacak, sonraki çalıştırmalarda ise sadece değişiklikleri senkronize edecektir.
3. Otomatik Yedekleme (Cron ile)
Manuel olarak komut çalıştırmak yerine, büyük dizinlerin düzenli olarak ve otomatik bir şekilde yedeklenmesi tercih edilir. Unison’ı cron zamanlayıcısı ile birleştirerek bu otomasyonu sağlayabiliriz. Otomatik yedeklemelerde, Unison’ın etkileşimli modda çalışmaması için bazı parametreler kullanmak gerekir.
Gerekli Unison Parametreleri:
* -batch: Tüm sorgulara otomatik olarak “evet” yanıtı verir.
* -auto: Çatışmalar dahil tüm senkronizasyon eylemlerini otomatik olarak çözer (genellikle prefer ayarı ile birlikte kullanılır).
* -silent: Çıktıyı minimuma indirir, sadece hataları gösterir.
* -logfile /path/to/log.txt: Senkronizasyon olaylarını belirtilen bir dosyaya kaydeder.
Örnek Cron Job Oluşturma:
1. Unison Profil Dosyası Oluşturma:
Otomatik yedekleme için bir profil dosyası kullanmak en iyi yaklaşımdır. Bu, tüm ayarlarınızı tek bir yerde toplamanızı sağlar. Aşağıdaki bölümdeki “Unison Konfigürasyon Dosyaları ve Profiller” başlığında daha detaylı anlatılacaktır. Şimdilik, ~/.unison/mybackup.prf adında bir dosya oluşturduğumuzu ve bu dosyanın yerel ve uzak kök dizinlerini içerdiğini varsayalım.
2. Cron Job Ekleme:
Terminalde crontab -e komutunu çalıştırarak cron tablosunu düzenleyin. Açılan editöre aşağıdaki satırı ekleyin:
0 2 * /usr/bin/unison mybackup -batch -auto -silent -logfile /var/log/unison-mybackup.log
Bu satır, her gün saat 02:00’de mybackup adlı Unison profilini kullanarak senkronizasyon işlemini otomatik olarak başlatacaktır. -batch, -auto, -silent parametreleri etkileşimli olmayan bir çalışma sağlar. Log dosyası, senkronizasyonun durumunu ve olası hataları izlemek için önemlidir.
Önemli Not: Cron ortamında, PATH değişkeni genellikle sınırlıdır. Bu nedenle unison komutunun tam yolunu (/usr/bin/unison) belirtmek iyi bir pratiktir. Ayrıca, cron işlerinin genellikle kullanıcı ortamında çalışmadığını ve SSH anahtarlarının düzgün bir şekilde yüklenmesi gerektiğini unutmayın. Eğer SSH anahtarınız için bir parola belirlediyseniz, cron bunu otomatik olarak giremez. Bu yüzden otomatik yedeklemeler için parola korumalı SSH anahtarları kullanmaktan kaçınılmalıdır.
Unison Konfigürasyon Dosyaları ve Profiller
Unison’ın gücünün önemli bir kısmı, esnek konfigürasyon seçeneklerinden gelir. Bu seçenekler, profil dosyaları aracılığıyla yönetilir. Profil dosyaları, ~/.unison/ dizininde .prf uzantısıyla saklanır.
Örnek Bir Profil Dosyası (~/.unison/mybackup.prf):
# Bu bir Unison profil dosyasıdır.
Yerel root dizin
root = /home/user/data
Uzak root dizin (SSH üzerinden)
root = ssh://remote_user@remote_host//remote/backups/data
Senkronizasyon sırasında göz ardı edilecek dosya ve dizinler
Örneğin, geçici dosyalar, cache dizinleri, log dosyaları
ignore = Path .cache
ignore = Path .thumbnails
ignore = Name *~
ignore = Name *.log
ignore = Name temp_*
ignore = Path node_modules
ignore = Path .git
Çatışma durumunda tercih edilecek taraf
'newer' daha yeni olanı, 'local' yerel olanı, 'remote' uzak olanı tercih eder.
prefer = newer
Dosya izinlerini senkronize et (varsayılan 1'dir)
0 olarak ayarlanırsa, izinler senkronize edilmez.
perms = 1
Dosya sahipliğini (owner) senkronize et
owner = true
Dosya grubunu (group) senkronize et
group = true
Daha hızlı kontrol için dosya içeriklerini değil, sadece meta verilerini kullan
Büyük dizinler için performans artırıcıdır. Ancak dikkatli kullanılmalıdır.
İçerik değişikliği olmadan sadece zaman damgası değişirse, senkronize etmeyebilir.
fastcheck = true
Maksimum eşzamanlı dosya aktarım iş parçacığı sayısı
Ağ bant genişliğine ve disk I/O'suna bağlı olarak ayarlanabilir.
maxthreads = 10
Senkronizasyon sırasında detaylı loglama
log = true
Log dosyasının yolu
logfile = /var/log/unison-mybackup.log
Senkronizasyon tamamlandığında bir komut çalıştırma
after = notify-send "Unison backup completed"
Senkronizasyon başlamadan önce bir komut çalıştırma
before = echo "Unison backup started..."
Bu profil dosyasını oluşturduktan sonra, senkronizasyonu başlatmak için sadece profil adını kullanmanız yeterlidir:
unison mybackup
Veya otomatik çalıştırmak için:
unison mybackup -batch -auto -silent
Profil dosyaları, farklı yedekleme ihtiyaçları için birden fazla konfigürasyon tanımlamanıza olanak tanır. Örneğin, farklı projeler veya farklı yedekleme hedefleri için ayrı profiller oluşturabilirsiniz.
Büyük Dizinlerle Çalışırken Dikkat Edilmesi Gerekenler
Büyük dizinlerin yedeklenmesi, bazı özel hususlar gerektirir. Unison ile çalışırken performansı ve güvenilirliği artırmak için aşağıdaki noktalara dikkat etmek önemlidir.
1. İlk Senkronizasyon
Büyük dizinler için ilk senkronizasyon işlemi, tüm verilerin kopyalanmasını gerektirdiğinden oldukça uzun sürebilir. Bu işlem sırasında:
* Zamanlama: Ağ trafiğinin ve sistem yükünün düşük olduğu saatlerde (örneğin gece veya hafta sonu) başlatmayı planlayın.
* Ağ Bant Genişliği: Özellikle uzak yedeklemelerde, yeterli ağ bant genişliğinin olduğundan emin olun.
* Disk I/O: Hem kaynak hem de hedef disklerin I/O performansı, senkronizasyon hızını doğrudan etkileyecektir. Yavaş diskler veya yoğun disk kullanımı olan sistemler, süreyi uzatabilir.
* Kesinti Durumu: Unison’ın sağlam yapısı sayesinde, ilk senkronizasyon sırasında bir kesinti yaşansa bile, bir sonraki çalıştırmada kaldığı yerden devam edecektir. Ancak, bu yine de süreci uzatabilir.
2. Performans Optimizasyonu
Sonraki senkronizasyonların hızlı olmasını sağlamak için bazı optimizasyonlar yapılabilir:
* ignore Kuralları: Geçici dosyalar, log dosyaları, cache dizinleri, versiyon kontrol sistemlerinin (örn. .git, .svn) meta veri dizinleri veya bağımlılık dizinleri (örn. node_modules, vendor) gibi yedeklenmesi gerekmeyen veya yeniden oluşturulabilecek dosyaları ve dizinleri ignore kurallarıyla dışarıda bırakın. Bu, Unison’ın taraması ve karşılaştırması gereken dosya sayısını azaltarak performansı artırır.
* fastcheck Kullanımı: Profil dosyasında fastcheck = true ayarını kullanmak, Unison’ın dosya içeriklerini karşılaştırmak yerine sadece meta verilerini (boyut, değişiklik zamanı) kullanarak değişiklikleri kontrol etmesini sağlar. Bu, senkronizasyon sürecini önemli ölçüde hızlandırabilir. Ancak, aynı boyut ve zaman damgasına sahip fakat içeriği değişmiş dosyalar varsa, bu değişiklikler gözden kaçabilir. Genellikle, içerik değişikliklerinin zaman damgasını da değiştirdiği sistemlerde güvenle kullanılabilir.
* maxthreads Ayarı: Aynı anda kaç dosya aktarımının yapılacağını belirler. Ağ bant genişliğiniz ve disk I/O kapasiteniz yüksekse, bu değeri artırmak senkronizasyonu hızlandırabilir. Ancak çok yüksek bir değer, sistemi aşırı yükleyebilir.
* Disk Türü: Mümkünse, yüksek performanslı SSD’ler veya RAID yapılandırmaları kullanmak, disk I/O darboğazlarını azaltarak senkronizasyon hızını artırır.
3. Dosya İzinleri ve Sahiplik
Farklı sistemler veya kullanıcılar arasında senkronize ederken dosya izinleri ve sahiplik önemli bir konu olabilir.
* perms Ayarı: Varsayılan olarak Unison, dosya izinlerini (okuma, yazma, çalıştırma) senkronize eder. Eğer hedef sistemde farklı izin modelleri veya kullanıcılar varsa ve izinlerin senkronize edilmesini istemiyorsanız, perms = 0 olarak ayarlayabilirsiniz.
* owner ve group Ayarları: Benzer şekilde, dosya sahipliğini ve grubunu senkronize etmek isteyip istemediğinizi owner = true/false ve group = true/false ile belirleyebilirsiniz. Özellikle farklı kullanıcı ID’leri (UID) ve grup ID’leri (GID) olan sistemler arasında senkronize ederken bu ayarlar kritik olabilir.
4. Çatışma Yönetimi
Unison’ın en güçlü özelliklerinden biri çatışma yönetimidir. Aynı dosya üzerinde her iki tarafta da değişiklik yapıldığında bir çatışma oluşur.
* prefer Ayarı: Profil dosyasında prefer = newer gibi bir ayar kullanarak, çatışma durumunda otomatik olarak daha yeni olan dosyanın tercih edilmesini sağlayabilirsiniz. Diğer seçenekler arasında prefer = older, prefer = local (her zaman yerel kopyayı tercih et) ve prefer = remote (her zaman uzak kopyayı tercih et) bulunur.
* Manuel Çözüm: -batch ve -auto parametrelerini kullanmadığınızda, Unison çatışma durumunda kullanıcıya sorar ve manuel olarak hangi kopyanın saklanacağını seçmenize olanak tanır. Kritik veriler için bu yaklaşım daha güvenli olabilir.
5. Ağ Kesintileri ve Hata Toleransı
Unison, ağ kesintilerine karşı oldukça dayanıklıdır. Bir senkronizasyon işlemi sırasında ağ bağlantısı kesilirse, Unison işlemi durdurur ve bir sonraki çalıştırmada kaldığı yerden devam edebilir. Bu, özellikle büyük dosya aktarımlarında ve kararsız ağ bağlantılarında büyük bir avantajdır.
6. Disk Alanı Yönetimi
Yedekleme yapılan hedef diskte yeterli boş alan olduğundan emin olun. Unison, senkronize edilen verilerin yanı sıra kendi meta verilerini (.unison dizinindeki dosyalar) da saklar. Bu meta verileri, büyük dizinler için önemli miktarda yer kaplayabilir. Düzenli olarak disk kullanımını kontrol etmek ve gereksiz dosyaları silmek önemlidir.
7. Güvenlik
* SSH Üzerinden Şifreli İletişim: Uzak yedeklemelerde SSH kullanmak, verilerin ağ üzerinden güvenli ve şifreli bir şekilde aktarılmasını sağlar.
* SSH Anahtar Güvenliği: SSH anahtarlarınızın güvenliğini sağlayın. Özel anahtarınızın (id_rsa) yetkisiz erişime karşı korunması kritik öneme sahiptir.
* Hedef Sistem Güvenliği: Yedekleme yaptığınız uzak sistemin de güvenli olduğundan emin olun. Güvenlik duvarları, güncel yazılımlar ve sağlam parola politikaları kullanın.
Sık Karşılaşılan Sorunlar ve Çözümleri
Unison ile büyük dizinleri yedeklerken bazı sorunlarla karşılaşmak olasıdır. İşte bazı yaygın sorunlar ve çözümleri:
1. “No such file or directory” veya “Permissions denied” Hataları:
* Çözüm: Root dizin yollarının doğru olduğundan ve hem yerel hem de uzak tarafta gerekli okuma/yazma izinlerine sahip olduğunuzdan emin olun. Uzak sistemde, Unison’ı çalıştıran kullanıcının hedef dizine yazma izni olmalıdır. SSH anahtar tabanlı kimlik doğrulamasının düzgün çalıştığını kontrol edin.
2. “Root mismatch” Hataları:
* Sorun: Bu hata, Unison’ın profil dosyasındaki veya komut satırı argümanlarındaki root dizinlerinin, daha önce senkronize edilmiş bir dizinin kaydedilmiş root bilgisiyle eşleşmemesi durumunda ortaya çıkar. Genellikle root dizinin yolunu değiştirdiğinizde veya yanlış bir profil kullandığınızda görülür.
* Çözüm: .unison dizini altındaki ilgili profilin meta veri dosyalarını (örn. ar7f8d97.prf) silerek Unison’ın senkronizasyon geçmişini sıfırlayabilirsiniz. Ancak bunu yapmadan önce dikkatli olun, çünkü bu, Unison’ın ilk senkronizasyonu sıfırdan yapmasına neden olacaktır. Alternatif olarak, unison -force seçeneğini kullanarak Unison’ı zorlayabilirsiniz, ancak bu, veri kaybına yol açabilecek çatışmaları otomatik olarak çözebilir.
3. Unison’ın Yavaş Çalışması:
* Çözüm: ignore kurallarını kullanarak gereksiz dosyaları dışarıda bırakın. fastcheck = true ayarını kullanmayı düşünün. maxthreads değerini optimize edin. Ağ bant genişliğinizi ve disk I/O performansınızı kontrol edin. Ağ gecikmesi (latency) yüksekse, bu da senkronizasyonu yavaşlatabilir.
4. Çatışmaların Doğru Çözülememesi:
* Sorun: prefer ayarı yanlış yapılandırıldığında veya beklenmeyen değişiklikler olduğunda çatışmalar doğru çözülemeyebilir.
* Çözüm: prefer ayarını dikkatlice gözden geçirin. Kritik veriler için -batch -auto yerine interaktif modu kullanmayı veya senkronizasyon öncesi manuel olarak kontrol etmeyi düşünün. Unison’ın log dosyalarını inceleyerek çatışmaların nasıl çözüldüğünü anlayabilirsiniz.
5. SSH Bağlantı Sorunları:
* Sorun: Uzak sunucuya SSH ile bağlanılamıyor, anahtar tabanlı kimlik doğrulama çalışmıyor veya port sorunları var.
* Çözüm: ssh user@remote_host komutuyla manuel olarak SSH bağlantısını test edin. ssh-agent kullanıyorsanız, anahtarınızın yüklü olduğundan emin olun (ssh-add -l). Güvenlik duvarı ayarlarını (yerel ve uzak) kontrol edin. Uzak SSH sunucusunun çalıştığından ve doğru portu dinlediğinden emin olun.
Unison’a Alternatifler ve Karşılaştırma
Unison, iki yönlü senkronizasyon ve akıllı çatışma yönetimi konusunda oldukça güçlü bir araç olsa da, bazı durumlarda farklı yedekleme çözümleri daha uygun olabilir.
* Rsync: Tek yönlü yedeklemeler için (kaynaktan hedefe) hala çok popüler ve etkilidir. Büyük dizinlerin ilk kopyalanması veya düzenli olarak birincil bir kaynaktan yedek alınması için idealdir. Ancak, iki yönlü senkronizasyon ve çatışma yönetimi özellikleri yoktur.
* Duplicity: Şifreli, artımlı, bant genişliği açısından verimli ve çeşitli uzak depolama hedeflerini (FTP, S3, Google Drive vb.) destekleyen bir yedekleme aracıdır. Tam yedeklemelerin üzerine artımlı yedeklemeler yapar ve veriyi şifreler. Ancak, Unison gibi gerçek zamanlı iki yönlü senkronizasyon sağlamaz.
* BorgBackup: Veri tekilleştirme (deduplication), şifreleme ve sıkıştırma özellikleri sunan modern bir yedekleme aracıdır. Özellikle büyük ve çok sayıda benzer dosya içeren dizinler için disk alanından tasarruf sağlar. Ancak yine, iki yönlü senkronizasyon Unison’ın uzmanlık alanıdır.
Unison, özellikle birden fazla konumda aynı veri setinin aktif olarak kullanıldığı ve tüm kopyaların güncel kalması gerektiği senaryolarda, diğer araçların önüne geçer. Projeler üzerinde birden fazla geliştiricinin çalıştığı veya bir sunucu ile yerel bir geliştirme ortamı arasında sürekli senkronizasyon gerektiği durumlarda Unison vazgeçilmezdir.
Sonuç
Büyük dizinleri Ubuntu 16.04 üzerinde Unison ile yedeklemek, doğru yapılandırıldığında oldukça etkili, güvenilir ve verimli bir çözümdür. Unison’ın iki yönlü senkronizasyon yeteneği, akıllı çatışma yönetimi ve bant genişliği verimliliği, onu özellikle aktif olarak kullanılan ve sürekli güncellenen veri setleri için ideal bir araç haline getirir.
Kurulum adımlarını takip ederek, SSH bağlantısını güvenli bir şekilde yapılandırarak ve profil dosyalarını kullanarak yedekleme işlemlerinizi otomatikleştirebilirsiniz. ignore kuralları, prefer ayarları ve fastcheck gibi performans optimizasyonları, büyük dizinlerle çalışırken senkronizasyon sürelerini önemli ölçüde azaltacaktır.
Unutmayın ki herhangi bir yedekleme stratejisinin başarısı, sadece kullanılan araçla değil, aynı zamanda doğru planlama, düzenli test ve sürekli izleme ile de doğrudan ilişkilidir. Unison’ın log dosyalarını düzenli olarak kontrol etmek ve yedeklemelerin beklendiği gibi çalıştığından emin olmak, veri güvenliğiniz için kritik öneme sahiptir. Bu rehber, büyük dizinlerinizi Unison ile Ubuntu 16.04 üzerinde güvenli ve verimli bir şekilde yedeklemeniz için sağlam bir temel sunmaktadır.