1. Önkoşullar
Yürütmek için rsync Yerel sistem ile uzak sunucu arasında şunlara ihtiyacınız var:
İki aygıt: biri yerel (bilgisayarınız) ve diğeri Linux sunucusu (VPS veya özel sunucu)
rsyncHer iki sisteme de kurulduİki sistem arasında SSH erişimi (böylece sürekli olarak şifre girmeden iletişim kurabilirsiniz)
Dosyadaki hedef sunucudaki SSH genel anahtarı
yetkili_anahtarlaryerleştirilmek
2. rsync kavramı ve işlevi (yeni başlayanlar ve profesyoneller için özel ve anlaşılır sürüm)
rsync Linux'ta kullanılan güçlü bir komut satırı aracıdır. Senkronizasyon (Sync) Ve Veri aktarımı Aynı sistem üzerinde veya iki ayrı sunucu üzerinde bulunan iki yol arasında kullanılır.
Peki rsync neden bu kadar popüler?
Bu yüzden Dosyaların tamamını aktarmak yerine, sadece değişen kısımları aktarır.
Rsync tam olarak nasıl çalışır? (Basit ve net bir şekilde anlaşılması)
Rsync'i çalıştırdığınızda araç öncelikle:
İki parçanın yapısı ve içeriği (örneğin hedef klasör ve kaynak klasör) karşılaştırır.
Çekler Hangi dosyalar yeni, hangileri değişti, hangileri silindi veya değiştirilmedi?.
Tüm dosyayı göndermek yerine, sadece Değişen verilerin bir kısmı Transferler.
Bu tekniğin adı:
Delta Transfer Algoritması
Bu rsync algoritması Çok hızlı ve verimli Evet, çünkü:
Tüketilen bant genişliği azalır.
Transfer süresi çok daha kısadır.
Sunucudaki CPU kaynakları daha az kullanılır
Rsync işlevselliğini daha iyi anlamak için basit bir örnek
Diyelim ki 1GB'lık bir dosyanız var ve bunun sadece 5MB'ı değişti.
Yaygın araçlar gibi
SCP-18111GB'ın tamamını tekrar yüklüyorlar.Ancak rsync sadece değişen 5MB'ı gönderiyor..
Bu şu anlama gelir:
Daha fazla hız
Daha az internet kullanımı
Sunucu üzerinde daha az baskı
rsync ve sunucular: Sunucu yönetimi için neden en iyi araçtır?
Bir yolculuktayken Sunucu Veya Sanal Özel Sunucu (VPS) Çalışırken genellikle şunlara ihtiyacınız olur:
Yedeklemeleri iki sunucu arasında taşıyın
Site dosyalarını mevcut sunucudan yeni sunucuya taşıyın
Önemli klasörleri (örneğin /var/www) her zaman senkronize tutun.
Bant genişliğini boşa harcamadan büyük dosyaları aktarın
Tüm bu durumlarda rsync en iyi seçimdir çünkü:
SSH ile güvenli aktarım
rsync, transferler için SSH protokolünü kullanır, bu nedenle:
Veriler şifrelenmiştir.
Ek port açmaya gerek yok
İletişim güvenliği garanti altına alınmıştır.
Hedefteki ekstra dosyaları silin
Bayrakla --silmek Hedefi kaynakla birebir aynı tutabilir.
Özgeçmiş özelliği
Eğer aktarım sırasında internet bağlantısı kesilirse rsync dosyanın geri kalanını sıfırdan değil, doğrudan aktaracaktır.
Otomasyona Uygun
Cronjob'lara kolayca uyum sağlar ve otomatik yedekleme süreçleri oluşturur.
Daha iyi anlaşılması için gerçek bir örnek:
Aşağıdaki yolu sunucu A'dan sunucu B'ye senkronize etmek istiyorsanız:
Bu komut:
Yalnızca klasör değişiklikleri
/var/wwwTransferlerHedefte günceller.
SSH üzerinden güvenli iletimi sağlar
Rsync'e yeni başlayanlar için basit bir özet:
| Özellik | Açıklama |
|---|---|
| Ana uygulama | Veri aktarımı ve klasör senkronizasyonu |
| Ana avantaj | Sadece değişiklikler aktarılır, dosyanın tamamı aktarılmaz. |
| Güvenlik | Güvenli aktarımlar için SSH kullanımı |
| Yüksek hız | Delta transfer algoritması nedeniyle |
| Profesyonel ve sunucu dostu | VPS'ler arasında yedekleme ve geçiş için en iyi araç |
3. Temel rsync sözdizimi
Genel yapı rsync Diğer dosya araçlarına benzer şekilde SCP-1811 şudur:
Basit yerel örnek:
Yerel sistemde iki test klasörü oluşturun
Uygulama:
Bu durumda yalnızca içerik
dir1İledir2Taşınan şey klasör değil, kendisidir.
Seçenek -A (arşiv) önerilir çünkü:
Dizini yinelemeli olarak senkronize eder
Dosya sahipliğini, değişiklik zamanını ve izinleri korur
Önemli: Kaynak yolunun sonuna “/” koyarsanız, yalnızca dizinin içeriği senkronize edilir; koymazsanız, orijinal klasörün kendisi aktarılır.
4. Güvenli bir önizleme çalıştırın --deneme çalışması
Hassas işlemler gerçekleştirmeden önce (özellikle aşağıdaki gibi seçenekleri kullanırken) --silmek (kullandığınız) için önce bir deneme çalışması yapmak en iyisidir:
Seçenek
-NVeya--deneme çalışmasıDeğişiklik yapmadan işlemleri simüle eder-v(ayrıntılı) Senkronize edilen veya silinen dosyaların ayrıntılı çıktısını sağlar.
Bu önizleme, dosyaları silmeden önce tam olarak ne olacağını görmenize ve riskli hatalardan kaçınmanıza yardımcı olur.

5. Dosyaları yerel sistem ile sunucu arasında itin ve çekin
Sunucuya gönder (Push)
Yerel bir dizini sunucuyla senkronize etmek için:
-A: Dosya özniteliklerini koru~/yerel-dizin/: Yerel rotakullanıcı@uzak-sunucu: Kullanıcı ve sunucu adresi:/uzak/yol/: Sunucudaki yol
Eğer kaynak kodunun sonunda "/" varsa sadece klasörün içeriği gönderilir; aksi takdirde klasörün kendisi de aktarılır.
Sunucudan al (Çek)
Ters işlem: Sunucudan yerel sisteme senkronizasyon:
Tekrar söylüyorum, kaynak yolundaki (burada sunucu yolu) eğik çizgiye dikkat etmek önemlidir çünkü bu, senkronizasyon davranışını belirler.
6. Gelişmiş seçenekler rsync
-z: Ağ kullanımını azaltmak için gönderirken verileri sıkıştırın-P: Bir kombinasyonu--ilerlemekVe--kısmiTransferin ilerleyişinin görüntülenmesini ve tamamlanmamış transferlerin devam ettirilmesini sağlar
Örnek:
--silmek: Hedefte var olan ancak artık kaynakta bulunmayan dosyaları silin (yansıtma için uygundur)--hariç tutmakVe--katmak: Daha hassas etkileşim için dosyaları/klasörleri filtreleyin--yedeklemeVe--yedekleme-dizini: Silinen dosyaların yedeğini ayrı bir yolda oluşturun
7. Cron ile senkronizasyonu planlayın
Periyodik bir senkronizasyon çalıştırmak için şunları yapabilirsiniz: rsync içinde cron Takvim:
Crontab'ı düzenle:
Senkronizasyon için günlük bir cronjob örneği:
Bu komut her gün sabah 3'te çalışır ve yerel dizini sunucu sürümüyle senkronize eder.
Cron-job için önemli öneriler:
Mutlak yollardan
rsyncve dizinleri kullanınŞifresiz SSH anahtar girişinin ayarlanması
Cron çıktısını bir günlük dosyasına kaydedin veya hataları işleyin
8. Yaygın sorunların giderilmesi ve en iyi uygulamalar
Kullanırken karşılaşılan bazı yaygın sorunlar rsync Ve çözümleri:
Kaynak/hedef yolunda hata: Kullanımı
--deneme çalışmasıAyrıntılı inceleme içinİstenmeyen dosya silinmesi: Yalnızca kesinlikle emin olduğumuzda
--silmekHadi kullanalımİzin hataları: ile
-ASahipliği ve izinleri koruyun.Otomasyon sorunları: Tam yolları ve parolasız SSH kimlik doğrulamasını kullanın
Çözüm
rsync Yerel makine ile sunucu arasında veri senkronizasyonu için oldukça güçlü ve optimize edilmiş bir araçtır. Delta aktarım algoritması sayesinde bu araç, yedekleme, veri aktarımı ve yansıtma ortamları oluşturmak için düşük güç tüketimli, güvenli ve doğru bir seçenektir. Gelişmiş seçenekleri kullanarak, --deneme çalışması ve planlama ile cronSenkronizasyon sürecini optimize edebilir, güvenli hale getirebilir ve otomatikleştirebilirsiniz.









