Ortak Dosya Kullanımı – UNISON

19 Ağustos 2008

Birçok dosyadan oluşan projelerde, herkesin kendi bilgisayarından çevrimdışı (ing. offline) çalışarak ortak havuzda güncelleme yapması, yeni dosyalar oluşturması, dosyaları birbirleri ile paylaşmaları hep sorun olmuştur. İlgili dosyayı en son kimin güncellediği, en güncel kopyanın kimde olduğu, acaba benden önce birisi güncel bir halini ortak havuza attı mı gibi soru işaretleri nedeni ile ortak çalışmalarda güçlük çekilmektedir. Bahsettiğimiz ortak projeler yazılım projeleri değil. Yazılım projelerinde bu sorunları CVS/SVN çözmektedir. Ancak onlara benzer bir mantıkla metin, hesap tablosu, sunu gibi dökümanlarımızı da yönetme ihtiyacımız oluyor. Bu ihtiyaçlarımızı karşılamak üzere UNISON projesi geliştirilmiş.Unison Unix ve Windows için bir dosya eşitleme (ing. file synchronization) aracıdır. İki veya daha fazla kopya olarak aynı bilgisayarda veya farklı bilgisayarlarda bulunan bir dizi dosya ve klasör hiyerrşisinin, ayrı ayrı değiştirilebilmesine ve zaman zaman bir araya getirilerek en güncel değişikliklerin taraflar arasında paylaşılarak her tarafın en güncel hale sahip olmasını sağlar. Unison Windows ve birçok tür UNIX platformu arasında dosya eşitleme imkanı sağlamaktadır. Düşük hızlı ağ bağlantılarında bile etkili ve hızlı bir şekilde çalışmaya olanak veren özel bir rsync protokolü kullanmaktadır. Ağ transferleri ssh üstünden veya doğrudan socket bağlantısı ile gerçekleştirilmektedir.

Unison Kullanımı

Unison temel olarak kendisine verilen iki klasörü birbirleri ile eşitler. Soldakileri sağa, sağdakiler sola atar, bir tarafta silinme durumu varsa kullanıcı onayı alınarak diğer taraftan da siler, değişiklik durumu varsa değişen taraftan değişmeyen tarafa dosyaları aktarır, iki tarafta birden değişiklik varsa bu çakışma (ing. conflict) durumudur ve kullanıcıya son değiştirilme tarihlerini sunarak hangisini asıl olarak kabul edeceğini sorar. Bu hali ile Unison sadece iki klasörü eşitler gibi görünse de, aslında bir tanesini havuz gibi kullanarak, diğer kullanıcıların hep o havuzla eşitlemesi sağlandığında 3, 4, 5, … çok sayıda klasör eşit tutulabilir.

Unison ile gelen ayrı bir kullanım kılavuzu yoktur. Unison’un kendi içinden çıkan kullanım kılavuzları tüm özelliklerini özet bir şekilde sunmaktadır.

$ unison -doc topics
Documentation topics:
          about About Unison
         people People
          lists Mailing Lists and Bug Reporting
         status Development Status
        copying Copying
            ack Acknowledgements
        install Installation
       tutorial Tutorial
         basics Basic Concepts
       failures Invariants
        running Running Unison
            ssh Installing Ssh
           news Changes in Version 2.13.15
Type "unison -doc <topic>" for detailed information about <topic>
or "unison -doc all" for the whole manual
$

Yukarıdaki komutla unison içinde yazılı olan tüm kullanım kılavuzlarının konuları listelenmektedir. Okumak istediğiniz kullanım kılavuzu için de “unison -doc konu” biçiminde komut vermelisiniz.

Unison’u kullanmak için ilgili kullanıcı ev dizininde ~/.unison adlı bir klasör oluşturulmalıdır. Bu klasör altında .prf uzantılı unison profile dosyaları oluşturulmalıdır. Ön tanımlı profile dosyası default.prf’dir. İçeriği aşağıdaki gibidir.

root = /home/kullanici/evraklar/aprojesi
root = ssh://kullanici@dosyasunucusu/evraklar/aprojesi
auto = true

Yukarıdaki örnek ssh üstünden iki farklı klasör kökünün eşit tutulması için oluşturulmuş bir örnektir. Yukarıda iki adet root tanımı, bir adet auto tanımı yer almaktadır. root tanımları eşitlenecek olan klasörleri temsil eder. Auto tanımı da true olarak yapılandırılırsa çakışma olmayan durumlarda kullanıcı onayı alınmaksızın eşitlemenin iki taraflı olarak otomatik yapılmasını tercih ettiğimiz manasına gelmektedir. Profile dosyasında kullanılabilecek tüm tanımları ve ne işe yaradıklarını “unison -doc running” komutu ile öğrenebiliyoruz. Tüm tanımlar komut satırından kullanılabildiği gibi yukarıdaki gibi profile dosyası aracılığı ile de kullanılabilmektedir. Aşağıdaki örnek yukarıdaki örneğin komut satırından kullanılma biçimidir ve ilave olarak SSH üstü sıkıştırma özelliği etkinleştirilmiş halidir:

$ unison /home/kullanici/evraklar/aprojesi ssh://kullanici@dosyasunucusu/evraklar/aprojesi -auto true -rshargs "-C"

Windows ortamında Unison aynı biçimde kullanılabilmektedir. Bilgisayarlar arası eşitleme ya Unison’un kendisinin sağlamış olduğu socket bağlantı özelliği ya da rsh / ssh ile yapılabilir. Socket bağlantı özelliği herhangi bir kullanıcı doğrulaması özelliği sağlamadığından dolayı güvenilir değildir. SSH ise hem kullanıcı doğrulaması sağlamaktadır hem de iletişim için şifreli altyapı sağlamaktadır. Windows ortamında ssh veya sshd için Cygwin ile gelen SSH’ın kullanılması unison tarafından önerilmektedir (ssh kurulumu için “unison -doc ssh”). Unison’un windows sürümünün .unison klasörünün yeri windows kullanıcı profilinin köküdür. Örneğin “ismet” isimli kullanıcı için “C:\Documents and Settings\ismet\.unison” klasörüdür. Unison için GTK tabanlı görsel arayüz de kullanılabilir.

Etiketler: , , , , , , , , ,

Yorum Yapın