İster yönetici ister sıradan bir kullanıcı olun, büyük olasılıkla dosyalarınızı düzenli olarak yedeklemeniz ya da birden fazla sistem arasında senkronize etmeniz gerekiyordur. Bu işlem her seferinde tüm dosyaların üzerine yazmayı gerektiriyorsa hem zaman alıcı hem de yorucu olabilir. İşte tam burada Linux Rsync uzak sunucu aracı devreye giriyor. Bu kılavuz, Rsync'in en kullanışlı komutlarını tanıtarak bu aracın hızlı ve güvenli özelliklerinden yararlanmanızı sağlayacak.
Rsync Yardımcı Programı Nedir?
Uzak Senkronizasyon (Rsync) iyi bilinen bir Linux/Unix komutudur. Bu komutla uzaktan erişim veya yerel bağlantı üzerinden dosya ve dizinleri kopyalayabilir, senkronize edebilirsiniz. Rsync komutu; senkronizasyon, kopyalama ve yedekleme alma gibi çeşitli veri işlemleri yapmanıza olanak tanır. Bunun yanı sıra Linux sisteminizi başka bir sisteme yansıtabilirsiniz.
Rsync'i uzak sunucuyla kullanmanın temel mantığı, hızlı dosya transferinden yararlanmaktır. İki kaynak arasında veri aktarırken yalnızca aralarındaki farklılıkları dikkate alır. Başka bir deyişle Rsync komutu, iki Linux sistemi arasındaki değişiklikleri baz aldığından gereksiz veri transferine zaman harcamanızı önler.
Neden Rsync Kullanmalısınız?
Bildiğiniz üzere kullanabileceğiniz çeşitli yedekleme araçları mevcuttur. Peki Rsync'i diğer araç ve komutlardan ayıran nedir?
Örneğin, Dosya Aktarım Protokolü (FTP) ile web sitenizin yerel bir kopyasını oluşturabilir ya da bu iş için SCP (Güvenli Kopyalama Protokolü) kullanabilirsiniz. Ancak her ikisinin de dezavantajları vardır. FTP, veri şifrelemesi sunmaz; bu da beklediğimiz bir özellik değildir. SCP ise FTP gibi şifresiz transfer sorunu yaşatmasa da tünel oluşturma yöntemi nedeniyle aktarım süresi daha uzundur.
Bu sorunlara alternatif bir çözüm olarak anahtar tabanlı şifrelemeyle Rsync uzak sunucu kullanımına başvurabilirsiniz (kısaca Rsync SSH veya Rsync over SSH olarak bilinir). Bu yöntem yinelenen veri gönderimini engeller ve bir SSH anahtarı kullanır. Ayrıca Rsync'in veri gönderip alırken sıkıştırma ve açma işlemleri uyguladığını, bu sayede bant genişliği kullanımını azalttığını da belirtmek gerekir.
Rsync Nasıl Kurulur?
Rsync büyük olasılıkla sisteminizde zaten yüklüdür; yine de ayrıntılara girelim. Başlamadan önce şunu belirtmek gerekir: Rsync over SSH kullanacağımız için SSH'nin hem kaynak hem de hedef sistemde önceden kurulu olması gerekir.
Adım 1: SSH Sürümünü Kontrol Etme
SSH sürümünü aşağıdaki komutu kullanarak kontrol edebilirsiniz:
ssh -V
Rsync ile uzak bir sunucuya veri aktarmak için yerel bir sunucuya (kaynak) ve uzak sunucuya ihtiyacınız vardır. Yerel sunucuda yönetici ayrıcalıklarının (sudo) etkin olduğundan da emin olun.
Adım 2: Rsync Kurulumu Linux
Aşağıdaki komut, Ubuntu, Linux Mint ve Debian üzerine Rsync kurmanızı sağlar:
sudo apt install rsync -y
Fedora, CentOS, AlmaLinux ve Red Hat gibi farklı Linux dağıtımları kullanıyorsanız, sisteminize Rsync kurmak için şu komutu girin:
sudo dnf install rsync
Not: apt, Debian tabanlı dağıtımlarda kullanılan pratik bir paket yönetim aracıdır.
Adım 3: Rsync'i Başlatma
Rsync'i kullanmaya başlamak için önce başlatmanız, ardından etkinleştirmeniz gerekir. Bunun için aşağıdaki komutları kullanın:
sudo systemctl start rsync
sudo systemctl enable rsync
Adım 4: Rsync Kurulumunu Doğrulama
Linux sisteminizde Rsync'in doğru kurulup kurulmadığını kontrol etmek ve hangi sürümü kullandığınızı görmek için şu komutu girin:
rsync --version
Aşağıdaki bölümde, anahtar tabanlı kimlik doğrulama yöntemiyle yedekleme almak için bu aracın nasıl kullanılacağını ele alacağız.
SSH Üzerinden Rsync ile Yedek Nasıl Alınır?
Artımlı yedek almak, Rsync'in SSH üzerindeki kullanım alanlarından biridir. Nasıl çalıştığını anlamak için aşağıdaki komutu inceleyin:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Yukarıdaki komutu çalıştırmak, şunu senkronize etmenizi sağlar: sourceDir ve destinationDir. Bu komut, bilmeniz gereken başka seçenekler de içerir; örneğin -a (archive) ve -v (verbose)Not ("Note that" is incomplete — it needs context to translate properly) Could you provide the complete phrase or sentence you'd like translated to Turkish? -e ssh seçeneği, Rsync bağlantısının SSH protokolü üzerinden kurulmasını zorunlu kılar.
Eğer SSH bağlantısı varsayılan port yerine (port 22) farklı bir port üzerinden kabul edilmesini istiyorsanız, port numarasını şunun ardından belirtmeniz gerekir: -e ssh. Nasıl çalıştığını anlamak için aşağıdaki komuta bakın.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
Yukarıdaki komutta, 22 yerine 1998'i SSH portu olarak kullandığımızı varsayıyoruz.
SSH üzerinden uzak sunucuya Rsync'in işe yarar başka seçenekleri de vardır. Örneğin, –partial seçeneği, Rsync'in kesintiye uğraması gibi sorunlarda önceki yarım kalan aktarımı kaldığı yerden devam ettirmenizi sağlar. Ayrıca –progress seçeneği ile anlık dosya aktarım ilerlemenizi takip edebilirsiniz. Üstelik Linux Rsync, bu iki özelliği aynı anda kullanmanıza da olanak tanır. Bunun için komut satırında -p bayrağını kullanabilirsiniz.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Uzak sunucuya Rsync aktarımında anahtar komutu, verileri hedefe göndermeden önce sıkıştırmanıza imkan verir. Sıkıştırma işlemi CPU kullanımını artırsa da dosya aktarımını hızlandırdığı ve bant genişliği tüketimini azalttığı için oldukça kullanışlıdır.
Rsync komutunu kullanarak yerel veya uzak dosya ve dizinleri kopyalayabilirsiniz. Rsync'in temel avantajı şu ilkeye dayanmasıdır: delta transfer algoritması, kaynak ile hedef arasında yinelenen verilerin kopyalanmasını engeller. Daha önce de belirtildiği gibi, Rsync'in bu özelliği günlük yedeklemeler ve sistem yansıtma işlemleri için oldukça işe yarar. Şimdi Rsync komutunu yerel kullanım senaryoları için nasıl kullanacağımıza bakalım.
Rsync Yerel Senkronizasyon İçin Nasıl Kullanılır?
Yerel senkronizasyona ve Rsync komutunun bu amaçla nasıl kullanıldığına geçmeden önce, aşağıda gösterilen genel yerel Rsync yapısını tanımanız gerekir:
rsync [options] [Source] [Destination]
Dosyaları Yerel Olarak Kopyalama
Masaüstü dizininden (adı Cloudzy) için /home/Public klasörüne bir dosyayı senkronize etmek ya da kopyalamak istediğimizi varsayalım; girmeniz gereken komut şudur:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
Yukarıdaki Rsync komutu üç seçenek içerir: -zvh; kullanarak -z, aktarım sırasında dosyanızın sıkıştırılmasını sağlar. v seçeneği ayrıntılı çıktı için kullanılır; h seçeneği ise çıktıların insan tarafından okunabilir biçimde, yani anlaşılır bir formatta görüntülenmesini sağlar.
Dizinleri Yerel Olarak Kopyalama
Masaüstü dizinini (adı Cloudzy) için /home/Public klasörüne kopyalamak istiyorsak şu komutu yazmanız gerekir:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
Bu -a Bu komuttaki seçenek, senkronizasyon sırasında dizinleri ve dosyaları arşivler.
Dizinin kopyalanıp kopyalanmadığını doğrulamak için hedef klasördeki dizin listesini hızlıca kontrol edebilirsiniz. Bunun için şu komutu kullanın:
ls -ld /home/Public
Dosya ve Dizinleri Yinelemeli ve Yerel Olarak Senkronize Etme (Recursive Rsync)
Peki ya /desktop/Cloudzyiçinde birden fazla dizin ve dosya olsaydı ve bunları Linux Rsync komutuyla yinelemeli olarak kopyalamak isteseydik?
Bu durumda, -r seçeneği seçeneğini kullanarak yerel dosya ve dizinlerinizi yinelemeli biçimde senkronize edebilirsiniz. Yinelemeli kopyalama gibi farklı kullanım senaryoları için arşiv seçeneği (-a) seçeneğini de kullanabilirsiniz. Rsync yinelemeli komutlarını tanımak için aşağıdaki komuta göz atın.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Dizin ve Dosyaları Yerel Sistemden Uzak Sisteme Kopyalama
Daha önceki bölümlerde bahsettiğimiz Linux Rsync uzak sunucu özelliklerinin yanı sıra, bu iyi bilinen komut yerel makineden uzak sisteme dosya ve dizin senkronizasyonuna da olanak tanır.
Bir klasörü kopyalamak istediğimizi varsayalım (/desktop/Cloudzy/yeniklasör) yerel makineden uzak sisteme (192.168.1.79 ile) altında /mycpt; işleyişini gösteren bir örnek:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Rsync ile Dizinleri Dosyalar Olmadan Nasıl Kopyalanır?
Bazı durumlarda, dosyaları dahil etmeden yalnızca dizinleri kopyalamak için Linux Rsync'in uzak sunucuya aktarım özelliğini kullanmak isteyebiliriz. Bu senkronizasyon uzak makineden yerel sisteme ya da tam tersi yönde olabilir.
Bu makalede uzak sistemi şu adreste kullandık: 192.168.1.79. Bunun şurada bulunduğunu varsayalım: /mycpt klasörünün altında ve /desktop/Cloudzy dizinini dosyaları dahil etmeden yerel sistemden kopyalamak istiyorsunuz. Bunu yapmak için aşağıdaki komutu girin:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Diğer Kullanışlı Rsync Komutları
Bu bölümde, işinize yarayabilecek ek Linux Rsync komutlarını ele alacağız.
Rsync'te Dosya Transferi İçin Maksimum Boyut Belirleme
Rsync komutunu kullanarak dosya transferi için bir boyut sınırı belirleyebilirsiniz. Bu özellik, bant genişliği ve sürenin önemli olduğu ortamlarda Rsync'i düzenli olarak uzak sunucuya ve yerel makineye karşı çalıştırırken oldukça işe yarar. Rsync dosya transferinde boyut sınırı ayarlamayı öğrenmek için aşağıdaki komutu inceleyin:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Rsync'te Dosya Transferi İçin Minimum Boyut Belirleme
Maksimum boyut belirlemeye benzer şekilde, Rsync ile uzak sunucuya aktarmak istediğiniz dosyanın minimum boyutunu da ayarlayabilirsiniz. Aşağıdaki komutta minimum dosya boyutunu 10k olarak belirleyeceğiz:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Senkronizasyon Tamamlandıktan Sonra Kaynaktaki Dosyaları Silme
Rsync komutunu kullandıktan sonra dosyaların kaynak sistemde kalmasına gerek kalmayabilir. Bu durumda, kaynaktaki dosyaları silmek için aşağıdaki gibi Linux Rsync komutunu kullanabilirsiniz:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Kuru Çalıştırma (Dry Run) Senkronizasyonu
Linux Rsync aracına yeni başlıyorsanız ve seçeneklerine henüz aşina değilseniz, pilot çalışma iyi bir başlangıç noktasıdır. Rsync ile dry run kullandığınızda hiçbir dosya değiştirilmez; yalnızca komutun çıktısı görüntülenir. Komutu çalıştırmak istediğinizden emin olduktan sonra –dry-run seçeneğini kaldırıp terminalde çalıştırabilirsiniz. Dry run işlevselliği hakkında daha fazla bilgi için aşağıdaki komutu inceleyin.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Özet: Linux Rsync Komutlarının Kullanımı
Bu makalede, Linux Rsync'in uzak sunucuya (ve yerel sunucuya) aktarım özelliklerini çeşitli kullanım senaryoları için nasıl kullanacağınızı açıkladık: sistem yansıtma, dosya yedekleme ve SSH ile veri sıkıştırmadan yararlanarak dosya ve dizinleri yerel ya da uzaktan verimli bir şekilde kopyalama. Bu yaygın kullanılan Linux komutu, hızlı dosya transferinin yanı sıra SSH ve veri sıkıştırma desteği sunar.
Web sitenizi veya uzak masaüstünüzü barındırmak için ekonomik ya da premium bir Linux VPS edinin; piyasadaki en uygun fiyatlarla. VPS, daha yüksek verimlilik için Linux KVM üzerinde çalışır ve hız odaklı NVMe SSD depolama ile güçlü donanım altyapısından yararlanır.
Devamını OkuBu işletim sisteminden en iyi şekilde yararlanmak için bir Linux VPS Cloudzy tarafından sunulan ve KVM tabanlı hosting planlarından yararlanmanızı sağlayan bir çözüm. %99,95 uptime, kararlı çalışma, düşük gecikme, dünya genelinde 12 konumda veri merkezi, ultra hızlı SSD depolama ve 7/24 teknik destek ile yüksek performanslı VPS hizmetleri sunuyoruz. Linux VPS'nizi $4,95'ten başlayan fiyatlarla kullanmaya başlayabilir, daha gelişmiş bir çözüme ihtiyaç duyduğunuzda ölçeklendirebilirsiniz.
SSS
Rsync hangi TCP portunu kullanır?
SSH varsayılan olarak port 22'yi kullanır. Bu nedenle rsync, SSH üzerinden çalıştırıldığında bu port üzerinden iletişim kurar. Rsync daemon kullanıldığında ise port 873 devreye girer.
Rsync nedir?
Rsync, dosya ve dizinleri hem yerel hem de uzak sistemler arasında senkronize edebilen bir Linux aracıdır. Rsync komutuyla senkronizasyon, kopyalama ve yedekleme alma gibi çeşitli veri işlemlerini gerçekleştirebilirsiniz.