BLOG

ANASAYFA > BLOG > + RSYNC Başlangıç
2008-07-19

RSYNC Başlangıç

RSYNC hakkında çok kısa giriş seviyesi bir anlatımla kullanılabilirliğini ve kullanılacak alanları nasıl kullanılabilir olduğunu kısaca anlatacağım. Sonraki yazılarımda daha geniş olarak ileri düzey anlatımlarımla RSYNC hakkında bilgi vermeye devam edeceğim.


Standart anlatımlar dışında daha iyi kavrayacağınız biçimde sizlere RSYNC uygulamasını anlatayım.. Çok fazla anlaşılmaz terim kullanmadan en anlaşılır dilde anlatmaya çalışacağım. RSYNC özellikle cluster yaptığımız makinelerde vazgeçilmez bir kopyalama sistemidir. Kopyalama işleminden ziyade güncelleme yazılımı olarak da RSYNC uygulamasını kullanabilirsiniz. Örneklersek X ve Y birer sunucu olsun X sunucusundan /home dizinini RSYNC ile Y sunucusuna kopyalarız. Toplamda 10GB veri kopyalanmış olur.. aradan 1 gün geçer ve tekrar X sunucusundan Y sunucusuna dosya kopyalarız ve 2. Kopyalamamızda 1 günlük süre içinde sadece boyutu veya biçimi yada tarihi değişen dosyaların kopyalanmasını sağlarız.. Bu sefer X sunucusundan Y sunucusuna aktarılan dosya boyutu sadece 400MB olur.. Buradan şunu çıkartıyoruz 1 günde 400MB dosya değişmiş ve sadece onları kopyalıyor.. Bu bize çok büyük bir bant tasarrufu sağlar.


Temel amacı aslında bu değildir.. SCP dışında ben sık sık RSYNC kullanırım kopyalama sırasında bağlantının kopması durumunda tekrar RSYNC ile kopyalamaya kaldığım yerden devam edebilirim.. Yada sshkey ler oluşturup birbirine bağlı gibi makineler oluşturup yedekleme işlemini RSYNC kullanarak yaptırabilirim. İstanbul da olan hosting suncusu içindeki /backup dizininde yer alan tüm backupları her gece 2 de Denizli de yer alan ofis içindeki sunucuya sadece değişen dosyaları aktarmak sureti ile backup alabiliriz. Böylece hem sunucu içinde hem elimizin altında backuplar olur.


RSYNC rsh veya ssh gibi şeffaf kabukları kullanabilmektedir. Root yetkisine ihtiyaç duymaz kopyalama sırasında dosyanın sahiplikleri gurubu veya izinlerini (chmod değerlerini) bozmadan diğer noktaya aktarabilir. Dosya aktarımını sıkıştırarak yapması ile dosya aktarım hızı normal aktarımdan çok daha hızlıdır.


RSYNC birçok farklı yöntemle kullanılabilir. RSYNC yi aynı sunucu içinde bir dosyayı bir dosyaya güncelleme yada kopyalama işlemi yapabiliriz. Yine bir sunucudan diğerine ssh yardımı ile kopyalama yapabiliriz. Bu işlemin tam tersini yapabiliriz dizinini bildiğimiz uzaktaki dosyayı mevcut sunucuya kopyalama veya güncelleme işlemi ile veri trasferi yapabiliriz. RSYN sunucuları oluşturabilir rsync:// şeklinde kullanarak çalıştırabiliriz. RSYNC ile birden fazla makineye dosya kopyalama işlemi yapabiliriz. Veya dosyaların listesini çıkartabiliriz.


Kullanımını şimdi anlatmaya başlayacağım. Lütfen bu ileri düzey bir uygulamadır fazla ssh bilginiz yoksa yazacağım şeyleri mevcut dosyalarınız üzerinde denemeyin bir bilene baş vurun o size yardım etsin!


RSYNC tahmin edebileceğiniz gibi SCP gibi çalışır ancak RSYNC de parametreler çok önemlidir. Yapılacak işlemleri parametreler beliler


Örnek komutlar..


rsync -av /home/osman /home2


tahmin edebileceğiniz gibi osman yolunu home2 ye aktaracak burada her zaman olduğu gibi ilk yol /home/osman yolu kopyalanacak kısım sondaki dizin ise kopyalanacağı dizin olarak belirlenir.


kopyalanacak dizin sonuna / eklemez isek (örnek : /home/osman/ ) osman dizininin klasör halinde taşır yani yukarda verilen kod /home2/osman şeklinde klasörü taşır..


rsync -av /home/osman/ /home2


bu şekilde bir komut kullanırsak /home/osman/ dizini içersindeki her şeyi /home2 ye taşır.. dizinin içinde ne varsa /home2 ye kopyalanmış olur ve osman adında bir klasör oluşturmaz. bu her kullanımda aynıdır.. X sunucusundan Y sunucusuna dosya aktarırken de bu kuralı unutmuyoruz arkadaşlar..


bir başka komuta bakalım..


rsync /home/osman/public_html/images/*.jpg root@212.68.41.1:home/osman2/public_html/images/


bu komut images klasöründeki tüm jpg uzantılı dosyaların 212.68.41.1 bu sunucudaki osman2 kullanıcısının içindeki images klasörüne kopyalanmasını sağlar.


hemen bir örnek daha yapalım


rsync -avz root@212.68.41.1:home/osman2/yedek /backup/osman


bu komut üst kısımdaki komudun tersi olarak 212.68.41.1 sunucusundaki yedek klasörünü bulunduğumuz makinenin osman klasörüne kopyalayacaktır. bakın unutmuyoruz yedek/ olsaydı sadece içini osman klasörüne kopyalayacaktı..


RSYNC de bir çok parametre birbiri ile karışık birçok biçimde kullanılabilir. NAS Backup sunucularında biz RSYNC kullanıyoruz bu sayede müşteri sunucusu hack edilince Backup alımı cpanel üzerindeki ayarlarda yer alan ftp ye kopyalanmadıgı için hack edilen makinayı hack eden dümbük backupların FTP sini görememiş oluyor.. Backup lar daha güvenli şekilde kopyalanmış oluyor…


Benim sıkca kullandığım parametreler şunlar. -t dosyaların tarihlerini değiştirmeden kopyalar.. -p izinleri yani chmod değerlerini koruyarak dosyayı aktarmak içindir. -l kısa yol dosyalarını da aktarır.. -z dosyayı sıkıştırarak kopyalar -v olan biteni görmek içindir kopyalanan dosyaları falan gösterir..


rsync -avz -l -p -t /osman/dosya /home/osman


bu komutu her çalıştırdığınızda sadece değişen dosyaları kopyalar.


Örnek 10gb dosya var dosya klasöründe ve bu her dakika güncelleniyor.. Bir resim sitesinin database dosyası olarak düşünelim.. ilk işlemde 10gb dosya kopyalanır 1 gün sonra dosya klasörüne fazladan 1gb dosya geldiyse komutu tekrar çalıştırdığımızda sadece 1gb dosya kopyalanacaktır.


Böylelikle çok büyük zaman kazancımız olacaktır. Ve kopyalamalar bir sunucudan diğerine aynı ağ içinde olmayan sunucularsa daha az trafik harcayarak transfer edilecek buda bize faydalı olacaktır.


Konu ile ilgili sormak istediklerinizi konu altına yazabilirsiniz. Yine RSYNC ile ne yapmak istersiniz? bu düşüncelerinizi konu altına yazabilirsiniz.


İyi Çalışmalar Dilerim!

Avatar
Abdullah Altunbaş Teknik Şef
Netinternet Bilişim Teknolojileri A.Ş.'de teknik konularda liderlik yapıyorum. 15 yıldır bu alanda çalışıyorum ve özellikle sistem yönetimi, ağ teknolojileri ve yazılım geliştirme konularına odaklanıyorum.
Yorumlar

Henüz yorum yok.

Yorum Yap