Rsync (Remote Sync), dosya senkronizasyonu ve yedekleme için kullanılan güçlü bir araçtır. Bu yazıda, Rsync’in ne olduğunu, nasıl kurulacağını, nasıl kullanılacağını ve temel parametrelerini ele alacağız.
Rsync Nedir?
Rsync, dosya senkronizasyonu ve yedekleme için kullanılan bir yazılımdır. İki farklı konumdaki dosyalar veya dizinler arasında verimli bir şekilde eşitleme yapar. Rsync, değişen veya güncellenen kısımları kopyalayarak ağ bant genişliği ve zaman açısından verimli çalışır.
Rsync Nasıl Kurulur?
Rsync, birçok Linux dağıtımında varsayılan olarak yüklü gelir. Ancak, yüklü değilse aşağıdaki adımları izleyerek kurabilirsiniz.
- Ubuntu veya Debian gibi Debian tabanlı bir sistem kullanıyorsanız, terminalde şu komutu çalıştırın:
sudo apt-get install rsync
- Red Hat veya CentOS gibi RPM tabanlı bir sistem kullanıyorsanız, terminalde şu komutu çalıştırın:
sudo yum install rsync
- macOS kullanıyorsanız, Homebrew aracılığıyla Rsync’i kurabilirsiniz:
brew install rsync
- Windows içinse, Cygwin veya MinGW gibi araçlarla Rsync’i kurabilirsiniz.
Rsync Nasıl Kullanılır?
Rsync’i kullanmak için aşağıdaki gibi bir komut yapısını kullanabilirsiniz:
rsync [parametreler] kaynak hedef
Parametreler
-a, --archive: Tüm dosya özelliklerini (izinler, sahiplik, zaman damgaları vb.) korur.
-v, --verbose: Ayrıntılı çıktı gösterir.
-r, --recursive: Dizinleri ve alt dizinleri kopyalar.
-z, --compress: Verileri sıkıştırarak iletişim verimliliğini artırır.
-h, --human-readable: İnsan tarafından okunabilir dosya boyutu gösterir.
-P, --partial --progress: Eksik dosyaları devam ettirir ve aktarım ilerlemesini gösterir.
--delete: Hedefdeki dosyaları kaynakta olmayan dosyaları siler.
--include: Sadece belirli dosyaları veya dizinleri senkronize eder.
--exclude: Belirli dosyaları veya dizinleri senkronizasyon dışında tutar.
--exclude-from: Bir dosyada belirtilen desenlere sahip dosyaları veya dizinleri senkronizasyon dışında tutar.
--bwlimit: Aktarım hızını sınırlar (örneğin, "--bwlimit=1000" ile 1000 KB/sn'ye sınırlanır).
--dry-run: Gerçek bir işlem yapmadan önce senkronizasyon işlemini simüle eder.
--rsync-path: Uzak sunucuda rsync'in yolunu belirtir.
Örnek Kullanımlar
Localden Sunucuya Aktarım
rsync -avz /local_klasor/local_altklasor/dosya kullanici@sunucu_ip:/uzak_klasor/uzak_altklasor/
Bu komut, /local_klasor/local_altklasor/dosya
üzerindeki dosyayı kullanici
adlı kullanıcının sunucu_ip
‘li sunucudaki /uzak_klasor/uzak_altklasor/
dizinine aktarır. -avz
parametreleri dosyaların izinlerini, sahiplik bilgilerini, zaman damgalarını ve dosyaları sıkıştırarak aktarımı optimize eder.
Sunucudan Local’e Aktarım
rsync -avz kullanici@sunucu_ip:/uzak_klasor/uzak_altklasor/uzak_dosya /local_klasor/local_altklasor/
Bu komut, kullanici
adlı kullanıcının sunucu_ip
‘li sunucudaki /uzak_klasor/uzak_altklasor
dosyasını /local_klasor/local_altklasor/
dizinine aktarır.
Sunucudan Sunucuya Aktarım
rsync -avz kullanici1@sunucu1_ip:/sunucu1_klasor/ kullanici2@sunucu2_ip:/sunucu2_klasor/
Bu komut, kullanici1
adlı kullanıcının sunucu1_ip
‘li sunucudaki /sunucu1_klasor/
dizinini kullanici2
adlı kullanıcının sunucu2_ip
‘li sunucudaki /sunucu2_klasor/
dizinine aktarır. İlk sunucudan dosyaları alırken -avz
parametrelerini kullanır.
Bu örneklerde, kullanici
ve sunucu_ip
‘yi kendi kullanıcı adınız ve sunucu IP adresinizle değiştirmeniz gerekmektedir. Ayrıca kendi dosya veya dizin yollarınızla değiştirmeniz gerekmektedir.
Rsync’in daha fazla parametresi ve kullanım seçeneği olduğunu unutmayın.
Bazı Parametre Örnekleri
Rsync ile exclude-from Parametresini Kullanma
*.log
private/
temp/
Bu dosyada, .log
uzantılı dosyalar, private/
dizini ve temp/
dizini senkronizasyon işlemi sırasında dışarıda bırakılacak.
rsync -avz --exclude-from=/klasor/exclude.txt /klasor/kaynak/ kullanici@sunucu_ip:/klasor/sunucu/
Bu komut, /klasor/kaynak/
dizinindeki dosyaları kullanici
adlı kullanıcının sunucu_ip
‘li sunucudaki /klasor/sunucu/
dizinine aktarırken exclude.txt
dosyasındaki desenleri dikkate alır. Yani, .log
uzantılı dosyaları, private/
dizinini ve temp/
dizinini senkronizasyon dışında tutar.
Rsync ile dry-run Parametresini Kullanma
rsync -av --dry-run /klasor/kaynak/ kullanici@sunucu_ip:/klasor/sunucu/
Bu komut, /klasor/kaynak/
dizinindeki dosyaları user
adlı kullanıcının sunucu_ip
‘li sunucudaki /
dizinine aktarmadan önce senkronizasyon işlemini simüle eder. Gerçek bir işlem yapmadan önce senkronizasyonun nasıl gerçekleşeceğini görmek için klasor
/sunucu/--dry-run
parametresini kullanabilirsiniz.
Komutu çalıştırdıktan sonra, Rsync çıktısı simüle edilen işlemleri gösterecektir. Dosyaların hangilerinin aktarılacağı, hangilerinin atlanacağı ve hangi dosyaların güncelleneceği hakkında bilgi sağlayacaktır. Ancak, herhangi bir dosya veya dizin gerçekten kopyalanmayacaktır.
--dry-run
parametresi, senkronizasyonun sonuçlarını önceden görmek ve olası hataları veya yanlış yapılandırmaları tespit etmek için faydalıdır. Bu şekilde gerçek senkronizasyon işleminden önce yapmanız gereken düzeltmeleri yapabilirsiniz.