SSH üzerinden rsync komutu, iki sunucu arasında büyük dosyaları hızlı, güvenli ve kesintiye dayanıklı taşımak için kullanılan en pratik Linux yöntemlerinden biridir. Özellikle yüzlerce GB boyutunda web sitesi dosyaları, yedek arşivleri, medya klasörleri veya uygulama verileri taşınırken rsync yalnızca değişen blokları aktarabildiği için klasik kopyalama yöntemlerine göre ciddi hız avantajı sağlar. Temel kullanım mantığı şudur: kaynak sunucudaki dosyalar, SSH tüneli üzerinden hedef sunucuya şifreli olarak senkronize edilir; bağlantı koparsa işlem kaldığı yerden sürdürülebilir.
Sunucu taşıma, hosting yükseltme, veri merkezi değişimi veya yedekleme operasyonlarında hız kadar veri bütünlüğü de önemlidir. Büyük bir arşivi tek parça halinde indirip tekrar yüklemek hem zaman kaybettirir hem de bağlantı hatalarında baştan başlamanıza neden olabilir. rsync burada devreye girerek dosya zaman damgalarını, izinleri, sahiplik bilgilerini ve klasör yapısını koruyabilir. Bu nedenle Linux sistem yöneticileri, DevOps ekipleri ve web hosting uzmanları tarafından günlük operasyonlarda sıkça tercih edilir.
Bu rehberde iki Linux sunucu arasında SSH üzerinden rsync ile dev dosyaları taşıma sürecini, gerçek komut örnekleriyle adım adım ele alacağız. Ayrıca performans artırma parametrelerini, güvenlik kontrollerini, hata senaryolarını, test aktarımı yöntemini ve üretim ortamına geçmeden önce dikkat edilmesi gereken noktaları paylaşacağız. Eğer yeni bir VPS ya da hosting ortamına geçiş planlıyorsanız, bu rehberi uygulamadan önce kaynak ve hedef sunucunuzda yeterli disk alanı, SSH erişimi ve doğru kullanıcı izinleri olduğundan emin olun. İlgili altyapı seçimi için Hostragons VPS sunucu çözümleri ve Linux hosting paketleri sayfalarını inceleyebilirsiniz.
rsync Nedir ve Büyük Dosya Taşımada Neden Tercih Edilir?
rsync, dosya ve dizinleri yerel sistemde ya da uzak sunucular arasında senkronize etmeye yarayan güçlü bir komut satırı aracıdır. En önemli özelliği delta transfer algoritmasıdır. Bu algoritma, dosyanın tamamını her seferinde yeniden göndermek yerine sadece değişen parçaları karşı tarafa aktarır. Örneğin 80 GB boyutunda bir yedek dosyasında yalnızca 2 GB değişiklik varsa, uygun koşullarda tüm dosyayı yeniden taşımak yerine değişen blokların aktarılması mümkündür.
SSH ise aktarımı şifreli hale getirir. Böylece rsync komutu, ağ üzerinden veri gönderirken dosya içeriğini düz metin olarak taşımaz. Bu özellik özellikle müşteri verileri, e-ticaret sipariş kayıtları, medya arşivleri, veritabanı yedekleri ve özel uygulama dosyaları için önemlidir. Hosting dünyasında veri güvenliği yalnızca SSL sertifikasıyla sınırlı değildir; sunucular arası aktarım kanalı da güvenli olmalıdır. Web sitesi trafiği için SSL sertifikası kullanırken, sunucular arası dosya transferinde de SSH ile şifreleme tercih edilmelidir.
rsync, FTP veya manuel indirme-yükleme yöntemlerine göre daha esnektir. İzinleri koruyabilir, sembolik bağlantıları taşıyabilir, silinen dosyaları hedefte de silebilir, bant genişliğini sınırlayabilir ve aktarım öncesinde ne yapılacağını test edebilir. Büyük dosya taşıma gibi riskli işlemlerde bu kontrol seviyesi ciddi avantaj sağlar.
Ne Zaman SSH Üzerinden rsync Komutu Kullanmalısınız?
SSH üzerinden rsync komutu özellikle büyük, çok sayıda veya sık değişen dosyaların taşınmasında idealdir. Basit bir görsel klasörü için manuel SFTP yeterli olabilir; ancak binlerce dosya, farklı izinler ve büyük arşivler söz konusu olduğunda rsync çok daha güvenilir bir seçenek haline gelir.
- Eski sunucudan yeni VPS sunucuya web sitesi taşıyorsanız.
- WordPress uploads klasörü gibi binlerce medya dosyası içeren dizinleri aktarıyorsanız.
- Günlük, haftalık veya aylık yedekleri farklı bir sunucuya kopyalıyorsanız.
- Veri merkezi veya hosting sağlayıcı değişikliği yapıyorsanız.
- Uygulama dosyalarını üretim ve yedek ortam arasında senkronize ediyorsanız.
- Bağlantı kopması ihtimali olan uzun süreli transferler planlıyorsanız.
Örneğin 250 GB boyutunda bir medya klasörünü masaüstü bilgisayarınıza indirip sonra yeni sunucuya yüklemek iki ayrı aktarım yapmanız anlamına gelir. Bu hem toplam süreyi uzatır hem de ev veya ofis internet bağlantınızı darboğaz haline getirir. rsync ile kaynak sunucudan hedef sunucuya doğrudan aktarım yaparak bu ara adımı ortadan kaldırabilirsiniz.
Başlamadan Önce Gerekenler
Başarılı bir rsync operasyonu için komutu bilmek tek başına yeterli değildir. Kaynak ve hedef sunucu koşullarını kontrol etmek, işlem sırasında yaşanabilecek veri kaybı veya yarım aktarım riskini azaltır. Aşağıdaki kontroller üretim ortamlarında mutlaka yapılmalıdır.
1. SSH Erişimini Doğrulayın
Kaynak sunucudan hedef sunucuya SSH bağlantısı kurulabiliyor olmalıdır. Standart bağlantı şu şekilde test edilir: ssh kullanici@hedef-sunucu-ip. Eğer SSH farklı bir porttan çalışıyorsa bağlantı şu mantıkla denenir: ssh -p 2222 kullanici@hedef-sunucu-ip. Bu test başarılı değilse rsync de çalışmayacaktır. Güvenlik duvarı, Fail2ban, SSH portu, kullanıcı yetkisi ve parola ya da anahtar doğrulaması kontrol edilmelidir.
2. rsync Paketinin Kurulu Olduğunu Kontrol Edin
Çoğu Linux dağıtımında rsync yüklü gelir; yine de kontrol etmek gerekir. Debian ve Ubuntu tabanlı sistemlerde rsync --version komutu kullanılabilir. Kurulu değilse apt install rsync ile yüklenebilir. AlmaLinux, Rocky Linux veya CentOS türevlerinde dnf install rsync ya da yum install rsync komutu tercih edilir. Hostragons üzerinde Linux tabanlı VPS kullanıyorsanız kurulum genellikle birkaç saniye sürer.
3. Disk Alanını Hesaplayın
Hedef sunucuda yeterli boş alan yoksa aktarım yarıda kalır. Kaynak dizinin boyutunu görmek için du -sh /kaynak/dizin mantığı kullanılabilir. Hedefte df -h komutu ile disk durumu kontrol edilmelidir. Pratikte yalnızca dosya boyutu kadar alan değil, geçici dosyalar ve loglar için de pay bırakılmalıdır. Örneğin 500 GB veri taşıyacaksanız hedefte en az 550-600 GB kullanılabilir alan planlamak daha sağlıklıdır.
4. Kritik Servisleri ve Değişen Dosyaları Planlayın
Canlı çalışan web sitelerinde dosyalar aktarım sırasında değişebilir. Özellikle kullanıcı yüklemeleri, cache klasörleri ve log dosyaları sürekli güncellenir. Büyük taşımalarda önce ana veri aktarılır, ardından bakım moduna alınarak son bir rsync daha çalıştırılır. Böylece kesinti süresi dakikalara indirilebilir. WordPress siteleri için WordPress hosting taşıma rehberi gibi destek içerikleriyle işlem planınızı tamamlayabilirsiniz.
Temel rsync Komutu: İki Sunucu Arasında Dosya Taşıma
En sık kullanılan temel yapı şu şekildedir: rsync -avz /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/. Buradaki -a arşiv modudur ve izinler, zaman damgaları, sembolik bağlantılar gibi bilgileri korumaya çalışır. -v ayrıntılı çıktı verir. -z ise aktarım sırasında sıkıştırma uygular. Dizin sonundaki eğik çizgi önemli bir ayrıntıdır. /kaynak/dizin/ yazarsanız dizinin içeriği hedefe kopyalanır; /kaynak/dizin yazarsanız dizinin kendisi hedef altında oluşturulur.
Örnek senaryo düşünelim: Eski sunucuda /var/www/site/public_html/ klasöründeki 180 GB web dosyasını yeni sunucudaki /var/www/site/public_html/ dizinine taşımak istiyorsunuz. Komut şu mantıkla çalışır: rsync -avz /var/www/site/public_html/ root@203.0.113.20:/var/www/site/public_html/. Bu işlem kaynak sunucudan hedef sunucuya SSH üzerinden dosya aktarır.
Eğer root kullanmak istemiyorsanız, hedef sunucuda ilgili dizine yazma izni olan özel bir kullanıcı oluşturmanız daha güvenlidir. Örneğin deploy adlı kullanıcıyı kullanabilir ve gerekli klasör sahipliğini buna göre ayarlayabilirsiniz. Üretim ortamlarında doğrudan root ile işlem yapmak pratik olsa da güvenlik açısından sınırlı yetkili kullanıcı tercih edilmesi önerilir.
Önerilen Güvenli ve Dayanıklı rsync Parametreleri
Büyük dosya transferlerinde yalnızca temel komutla yetinmek her zaman doğru değildir. Bağlantı kesilmesi, kısmi dosyalar, yanlış silme işlemleri veya yavaş ağlar için ek parametreler kullanmak gerekir. Aşağıdaki komut, birçok gerçek taşıma senaryosu için sağlam bir başlangıç noktasıdır:
rsync -aHAXv --numeric-ids --partial --progress --append-verify -e ssh /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/
Bu komutta -a arşiv modunu, -H hard link bilgisini, -A ACL izinlerini, -X extended attributes değerlerini korumaya yardımcı olur. --numeric-ids kullanıcı ve grup adlarını değil ID değerlerini baz alır; farklı sunucularda kullanıcı adları değiştiğinde faydalı olabilir. --partial yarım kalan dosyaları silmeden bırakır. --progress aktarım durumunu gösterir. --append-verify ise özellikle büyük dosyalarda kaldığı yerden devam ederken eklenen kısmı doğrulamaya yardımcı olur.
Her parametre her sistemde gerekli olmayabilir. Örneğin basit bir web sitesi taşımasında -aHAX kullanımı yeterli olabilirken, özel dosya izinleri kullanılan bir uygulamada ACL ve extended attribute bilgilerinin korunması kritik hale gelir. Bu nedenle önce test aktarımı yapmak önemlidir.
Farklı SSH Portu Kullanıyorsanız Komut Nasıl Olmalı?
Güvenlik için SSH portu 22 yerine farklı bir portta çalışıyor olabilir. Bu durumda rsync içinde SSH parametresi belirtilir. Örnek: rsync -avz -e ssh -p 2222 /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/. Ancak komut satırında -e parametresinin değeri birlikte kullanılmalıdır. Doğru kullanım mantığı şudur: rsync -avz -e 'ssh -p 2222' /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/.
JSON ve bazı panellerde tek tırnak kullanımı farklı davranabileceği için terminalde doğrudan yazarken tırnakların doğru olduğundan emin olun. Eğer SSH anahtarıyla bağlantı kuruyorsanız -i parametresi de eklenebilir: rsync -avz -e 'ssh -p 2222 -i /root/.ssh/id_rsa' /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/. Bu yöntem otomasyon ve cron tabanlı yedekleme işlerinde sıkça kullanılır.
Aktarım Öncesi Test: --dry-run Kullanımı
Büyük veri taşımadan önce yapılacak en profesyonel adımlardan biri --dry-run kullanmaktır. Bu parametre dosyaları gerçekten kopyalamaz; sadece hangi dosyaların aktarılacağını gösterir. Böylece yanlış dizin, hatalı hedef yolu veya beklenmedik silme işlemleri önceden fark edilebilir.
Örnek test komutu: rsync -avz --dry-run /var/www/site/ kullanici@hedef-ip:/var/www/site/. Çıktıda taşınacak dosyaları, oluşturulacak dizinleri ve işlem özetini görürsünüz. Eğer --delete parametresi kullanacaksanız dry-run daha da kritik hale gelir. Çünkü --delete, kaynakta olmayan dosyaları hedefte silebilir. Doğru kullanıldığında hedefi birebir ayna haline getirir; yanlış dizinde kullanıldığında ciddi veri kaybına yol açabilir.
Profesyonel uygulama sırası genellikle şöyledir: önce SSH testi yapılır, sonra disk alanı kontrol edilir, ardından rsync --dry-run çalıştırılır, küçük bir dizinle gerçek test yapılır, sonrasında ana aktarım başlatılır. Bu yaklaşım birkaç dakika ek süre gerektirir ancak saatler sürebilecek hatalı transferleri önler.
Performans İçin Sıkıştırma, Bant Genişliği ve Şifreleme Ayarları
rsync performansı yalnızca dosya boyutuna bağlı değildir. Sunucuların CPU gücü, disk tipi, ağ gecikmesi, bant genişliği ve dosya sayısı da önemlidir. Çok sayıda küçük dosya, tek bir büyük dosyadan daha yavaş taşınabilir; çünkü her dosya için metadata işlemleri yapılır. NVMe diskli VPS ortamlarında dosya tarama ve yazma performansı belirgin şekilde daha iyi olabilir. Bu nedenle yoğun taşıma planlıyorsanız NVMe VPS sunucu seçeneklerini değerlendirmek mantıklıdır.
-z sıkıştırma parametresi metin dosyaları, loglar ve bazı yedek türlerinde fayda sağlar. Ancak zaten sıkıştırılmış zip, tar.gz, jpg, mp4 veya gzip dosyalarında CPU tüketip fazla kazanç sağlamayabilir. 1 Gbps bağlantıya sahip iki güçlü sunucu arasında dev medya dosyaları taşıyorsanız -z kullanmadan daha iyi performans alabilirsiniz. Buna karşılık düşük bant genişliğinde ve metin ağırlıklı dosyalarda -z ciddi tasarruf sağlayabilir.
Bant genişliğini sınırlamak için --bwlimit kullanılabilir. Örneğin --bwlimit=50000 yaklaşık 50 MB/s seviyesinde sınır koyar. Bu, canlı web sitesinin ağ trafiğini boğmamak için önemlidir. Üretim sunucusunda yoğun saatlerde tam hız transfer yapmak ziyaretçi deneyimini olumsuz etkileyebilir. Taşımayı gece saatlerine planlamak, bant genişliği sınırı koymak ve işlem sırasında load average değerlerini izlemek iyi bir pratiktir.
rsync, scp, SFTP ve FTP Karşılaştırması

Dosya taşıma için birden fazla yöntem vardır; ancak her yöntemin güçlü ve zayıf yönleri farklıdır. Aşağıdaki tablo, büyük dosya ve sunucu taşıma senaryolarında hangi aracın ne zaman daha uygun olduğunu özetler.
| Yöntem | Güvenlik | Kaldığı Yerden Devam | Büyük Dosya Performansı | En Uygun Kullanım |
|---|---|---|---|---|
| rsync + SSH | Yüksek | Güçlü | Çok iyi | Sunucu taşıma, yedekleme, senkronizasyon |
| scp | Yüksek | Sınırlı | Orta | Az sayıda dosyanın hızlı kopyalanması |
| SFTP | Yüksek | İstemciye bağlı | Orta | Manuel dosya yönetimi |
| FTP | Düşük | İstemciye bağlı | Değişken | Güvenlik kritik değilse eski sistemler |
Tablodan görüldüğü gibi rsync, özellikle tekrar eden senkronizasyonlarda ve büyük veri taşımada öne çıkar. scp basit ve kullanışlıdır ancak değişen dosyaları akıllıca algılama konusunda rsync kadar güçlü değildir. FTP ise şifreleme olmadan kullanıldığında modern güvenlik standartları için uygun değildir. Hosting panellerinde FTP erişimi pratik olabilir; fakat sunucular arası kritik taşımalarda SSH tabanlı yöntemler tercih edilmelidir.
Canlı Web Sitesi Taşıma İçin Örnek İş Akışı
Bir web sitesini eski sunucudan yeni sunucuya taşırken amaç yalnızca dosyaları kopyalamak değildir. DNS, veritabanı, SSL, PHP sürümü, dosya izinleri ve e-posta yapılandırması da kontrol edilmelidir. Aşağıda büyük dosyalı bir web sitesi için düşük kesintili örnek iş akışı yer alır.
- Yeni sunucuda web server, PHP, veritabanı ve gerekli modülleri hazırlayın.
- Alan adının DNS TTL değerini taşıma öncesinde 300 saniye gibi düşük bir değere çekin. Alan adı yönetimi için domain sorgulama ve domain yönetimi sayfasını değerlendirebilirsiniz.
- İlk rsync aktarımını site canlıyken başlatın. Bu aşama büyük verinin çoğunu taşır.
- Veritabanı yedeğini alın ve yeni sunucuya aktarın.
- Siteyi kısa süreli bakım moduna alın.
- İkinci rsync komutunu çalıştırarak değişen son dosyaları senkronize edin.
- Veritabanını tekrar güncel alın veya incremental strateji kullanın.
- Yeni sunucuda dosya izinlerini, site açılışını ve logları kontrol edin.
- SSL sertifikasını kurun veya yenileyin. Bunun için SSL sertifikası kurulumu içeriği faydalı olabilir.
- DNS kayıtlarını yeni IP adresine yönlendirin.
Bu yöntemde en uzun süren ana dosya aktarımı site çalışırken yapılır. Kesinti yalnızca son senkronizasyon ve DNS geçişi sırasında oluşur. Büyük medya arşivli WordPress sitelerinde bu yaklaşım saatler sürecek kesintiyi birkaç dakikaya indirebilir.
Veri Bütünlüğünü Kontrol Etme
Aktarım tamamlandığında yalnızca komutun bitmiş olması yeterli değildir. Dosya sayısı, boyutlar ve kritik dosyalar kontrol edilmelidir. Basit kontrol için kaynak ve hedefte du -sh komutu ile dizin boyutları karşılaştırılabilir. Ancak dosya sistemi blok farkları nedeniyle değerler birebir aynı görünmeyebilir. Daha detaylı kontrol için rsync tekrar aynı parametrelerle çalıştırılabilir. Eğer aktarılacak yeni dosya kalmadıysa çıktı minimum düzeyde olur.
Checksum doğrulaması için rsync -avc --dry-run /kaynak/dizin/ kullanici@hedef-ip:/hedef/dizin/ kullanılabilir. Buradaki -c parametresi dosyaları zaman damgası ve boyuta ek olarak checksum ile karşılaştırır. Çok büyük verilerde CPU ve disk yükü oluşturabileceği için dikkatli kullanılmalıdır. Kritik arşivler, veritabanı dump dosyaları veya müşteri belgeleri için bu ek doğrulama güven verir.
Web sitesi taşıdıysanız uygulama seviyesinde de kontrol yapın. Ana sayfa, yönetim paneli, görsel yükleme, ödeme sayfası, iletişim formu ve hata logları incelenmelidir. E-ticaret sitelerinde yalnızca dosyaların taşınması yeterli değildir; ödeme entegrasyonları ve cron görevleri de yeni sunucuda test edilmelidir.
Yaygın Hatalar ve Çözümleri
Permission denied Hatası
Bu hata genellikle SSH kullanıcı yetkisi, hedef dizin yazma izni veya anahtar doğrulaması nedeniyle oluşur. Önce aynı kullanıcıyla normal SSH bağlantısı kurmayı deneyin. Bağlantı başarılıysa hedef dizine dosya oluşturma testi yapın. Gerekirse hedef klasör sahipliğini chown ile ilgili kullanıcıya verin veya sudo tabanlı bir strateji planlayın.
No space left on device Hatası
Hedef diskte yeterli alan kalmadığında aktarım durur. df -h ile disk bölümlerini kontrol edin. Bazen ana disk dolu değildir ama /tmp veya hedef mount noktası doludur. Büyük taşımalarda log dosyaları, eski yedekler ve cache klasörleri temizlenebilir. Kalıcı çözüm için disk büyütme veya daha yüksek kapasiteli VPS planına geçiş gerekebilir.
Connection reset veya Broken pipe Hatası
Uzun süren aktarımlarda ağ kesintisi yaşanabilir. --partial ve --append-verify kullanıyorsanız komutu yeniden çalıştırarak kaldığınız yerden devam edebilirsiniz. Ayrıca SSH keepalive ayarları yardımcı olabilir. İstemci tarafında ServerAliveInterval 60 gibi bir ayar bağlantının boşta kopmasını azaltabilir.
Çok Yavaş Transfer
Yavaşlık dosya sayısından, disk I/O limitinden, sıkıştırma yükünden veya ağ kapasitesinden kaynaklanabilir. Çok sayıda küçük dosya varsa önce tar arşivi oluşturmak bazı durumlarda daha hızlı olabilir; ancak bu durumda rsync’in dosya bazlı değişiklik avantajı azalır. Büyük ve zaten sıkıştırılmış dosyalarda -z parametresini kaldırarak test yapın. Ayrıca iotop, htop ve iftop gibi araçlarla darboğazın CPU, disk veya ağ tarafında olduğunu belirleyin.
Güvenlik İçin En İyi Uygulamalar
Sunucular arası dosya aktarımı sırasında güvenlik ihmal edilmemelidir. Özellikle root erişimi, SSH anahtarları ve yedek dosyaları hassas kabul edilmelidir. Öncelikle parolalı giriş yerine SSH anahtarı kullanmak önerilir. Anahtar dosyalarının izinleri sıkı tutulmalı, özel anahtarlar paylaşılmamalı ve mümkünse passphrase ile korunmalıdır.
Taşıma için geçici bir kullanıcı oluşturup yalnızca gerekli dizinlere erişim vermek iyi bir yöntemdir. İşlem bittikten sonra bu kullanıcının yetkileri kaldırılabilir veya hesap devre dışı bırakılabilir. SSH erişimini belirli IP adresleriyle sınırlamak da saldırı yüzeyini azaltır. Güvenlik duvarı kuralları, Fail2ban ve güncel OpenSSH sürümü temel kontroller arasında yer almalıdır.
Veritabanı dump dosyaları, müşteri belgeleri veya kişisel veri içeren arşivler taşınıyorsa aktarım sonrasında kaynak ve hedefte gereksiz geçici dosyalar temizlenmelidir. Ayrıca web kök dizini altında .sql, .zip veya .tar gibi yedek dosyaları bırakmak ciddi güvenlik riski oluşturur. Bu dosyalar mümkünse web erişimine kapalı bir dizinde saklanmalı ya da işlem bitince silinmelidir.
Otomatik Yedekleme İçin rsync Kullanımı
rsync yalnızca tek seferlik taşıma için değil, düzenli yedekleme için de kullanılabilir. Örneğin her gece belirli bir klasörü yedek sunucuya göndermek için cron görevi tanımlanabilir. Bu senaryoda SSH anahtarıyla parolasız ama güvenli bağlantı kurulur, rsync yalnızca değişen dosyaları aktarır ve bant genişliği sınırı uygulanabilir.
Örnek mantık: rsync -a --delete --bwlimit=30000 /var/www/site/ backup@yedek-ip:/backup/site/. Bu komut hedef dizini kaynakla eşitleyebilir. Ancak --delete parametresi nedeniyle dikkatli kullanılmalıdır. Yanlışlıkla kaynakta silinen bir dosya hedefte de silinir. Bu nedenle kritik yedekleme stratejilerinde snapshot, günlük klasörler veya versioning destekli çözümler tercih edilmelidir.
Hosting operasyonlarında 3-2-1 yedekleme kuralı iyi bir referanstır: Verinin en az 3 kopyası, 2 farklı ortamda, 1 kopyası farklı lokasyonda tutulmalıdır. rsync, bu stratejinin sunucular arası kopya kısmını pratik hale getirir. Daha kapsamlı altyapı için yedekleme çözümleri ve kurumsal hosting hizmetleri içerikleriyle planınızı güçlendirebilirsiniz.
Son Kontrol Listesi
Dev dosya taşıma işlemini başlatmadan önce aşağıdaki kısa listeyi uygulamak hata riskini azaltır. Bu liste özellikle üretim ortamlarında standart prosedür haline getirilmelidir.
- Kaynak ve hedef sunucuda rsync kurulu mu?
- SSH bağlantısı doğru kullanıcı ve port ile test edildi mi?
- Hedef sunucuda yeterli disk alanı var mı?
- İlk işlem --dry-run ile kontrol edildi mi?
- Canlı site için bakım modu ve son senkronizasyon planlandı mı?
- --delete kullanılacaksa hedef yol kesin olarak doğrulandı mı?
- Aktarım sonrası dosya boyutu, izinler ve uygulama testleri yapılacak mı?
- Geçici yedek ve dump dosyaları güvenli şekilde temizlenecek mi?
Bu kontroller basit görünse de gerçek hayatta en çok yaşanan sorunlar genellikle yanlış hedef dizin, eksik izin, yetersiz disk alanı ve plansız DNS geçişinden kaynaklanır. Planlı bir rsync süreci, hem taşıma süresini kısaltır hem de geri dönüş ihtimalini artırır.
Sıkça Sorulan Sorular
SSH üzerinden rsync komutu ile bağlantı koparsa aktarım baştan mı başlar?
Hayır, doğru parametreler kullanılırsa baştan başlamaz. --partial ve --append-verify seçenekleri yarım kalan büyük dosyaların korunmasına ve komut tekrar çalıştırıldığında aktarımın kaldığı yerden devam etmesine yardımcı olur. Yine de kritik taşımalarda komutu tekrar çalıştırmadan önce hedef disk alanını ve yarım dosya durumunu kontrol etmek iyi olur.
rsync ile veritabanı doğrudan taşınır mı?
rsync dosya taşır; çalışan veritabanı dosyalarını doğrudan kopyalamak sağlıklı değildir. MySQL veya MariaDB için mysqldump ya da fiziksel yedekleme araçları kullanılmalı, oluşan yedek dosyası rsync ile hedef sunucuya aktarılmalıdır. Canlı sistemlerde veri tutarlılığı için bakım modu veya replikasyon stratejisi planlanmalıdır.
rsync kullanmak için iki sunucuda da root erişimi gerekir mi?
Root erişimi şart değildir. Hedef dizine yazma yetkisi olan bir kullanıcı yeterlidir. Ancak dosya sahipliği, sistem dizinleri, ACL veya özel izinlerin korunması gerekiyorsa daha yüksek yetki gerekebilir. Güvenlik açısından mümkün olduğunda sınırlı yetkili kullanıcıyla işlem yapmak daha doğrudur.
--delete parametresi güvenli midir?
--delete doğru kullanıldığında hedef dizini kaynakla birebir senkronize etmek için çok faydalıdır; ancak yanlış hedef dizinde kullanılırsa dosya kaybına neden olabilir. Bu nedenle --delete içeren komutlar mutlaka önce --dry-run ile test edilmeli, kaynak ve hedef yollar dikkatlice doğrulanmalıdır.
Büyük dosya transferinde rsync mi scp mi daha iyi?
Tek seferlik küçük kopyalamalarda scp yeterli olabilir; ancak büyük dosyalarda, çok sayıda dosyada ve tekrar eden senkronizasyonlarda rsync genellikle daha iyidir. Çünkü değişen verileri algılayabilir, yarım kalan aktarımları sürdürebilir, bant genişliği sınırlayabilir ve test modu sunar.
Özet ve Sonraki Adım
SSH üzerinden rsync komutu ile iki sunucu arasında dev dosyaları taşımak; hızlı, güvenli ve yönetilebilir bir yöntemdir. Doğru parametrelerle bağlantı kopmalarına dayanıklı hale gelir, yalnızca değişen dosyaları aktararak zaman kazandırır ve canlı site taşıma süreçlerinde kesintiyi azaltır. En iyi sonuç için önce SSH ve disk kontrollerini yapın, --dry-run ile test edin, ardından ana aktarımı planlı şekilde çalıştırın.
Eğer yeni bir sunucuya geçiş, yüksek kapasiteli depolama veya daha performanslı hosting altyapısı planlıyorsanız Hostragons çözümlerini inceleyebilir; ihtiyacınıza göre VPS, hosting, domain ve SSL seçenekleriyle taşıma sürecinizi daha güvenli hale getirebilirsiniz. Sorunsuz bir geçiş için küçük testlerle başlayın, ölçün ve son senkronizasyonu planlı gerçekleştirin.