Bunu ingilizce öğreniyorum, takla atmayı öğreniyor veya okuma yazma öğreniyorum gibi ufak bir el kitapçığı olarak düşünün. RSYNC nedir ve RSYNC ile neler yapılır öncelikle bir giriş yapalım.
Standart anlatımlar dışında daha iyi kavrayacağınız biçimde sizlere RSYNC uygulamasını anlatayım.. RSYNC özellikle cluster yaptığımız makinelerde vazgeçilmez bir kopyalama sistemidir. Kopyalama işleminden ziyade güncelleme yazılımı olarak da görebiliriz RSYNC uygulamasını. Ö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..
Temel amacı 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 herzaman 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ırkende 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ü bulundugumuz makinanın 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 hacklenince 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ısayollarıda aktarır.. -z dosyayı sıkıştırarak kopyalar -v olan biteni görmek içindir kopyalanan dosyaları falan gösteirr..
rsync -avz -l -p -t /osman/dosya /home/osman
bu komudu her çalıştırdığınızda sadece değişen dosyaları kopyalar.
Örnek 10gb dosya var dosya klasöründe ve bu her dk güncelleniyır.. Bir resim sitesinin db si olarak düşünelik.. ilk işlemde 10gb dosya kopyalanır 1 gün sonra dosya klaösrüne fazladan 1gb dosya geldiyse komudu tekrar çalıştırdıgı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 trasfer edilecek buda bize faydalı olacaktır.
Anlatım:Ni-Osman
30 Ocak 2009 Cuma
Kaydol:
Kayıt Yorumları (Atom)
0 yorum:
Yorum Gönder