LinuxNasıl yapılırSunucu

Linux rsync Komutu Kullanımı

rsync
Linux rsync

Rsync, güvenli bir bağlantı ile iki sunucu arasında dosya ve dizinleri senkronize etmek için kullanılan hızlı ve kullanımı kolay bir komuttur. Rsync komutu, hızlı artımlı dosya aktarımı sağlar. Hedef sunucuda aynı dosya veya dizinin mevcut olup olmadığını kontrol eder, ardından yalnızca artımlı verileri veya ek verileri aktarır. Bu çok verimli bir şekilde iki sunucu arasında dosya aktarımı ya da belli bir klasörün senkronize edilmesi için kullanılabilir.

Rsync, dosyaları ve dizinleri sunucular arasında kopyalayarak artımlı yedeklemeler için de kullanılır. Rsync, scp, sftp komutlarına benzer de diyebiliriz. Tabiki sadece sunucudan sunucuya dosya aktarımı için düşünülmemelidir. Sunucu içerisinde iki klasör arasında dosyaları senkronize etmek için de kullanılabilir.

Bu yazımızda rsync komutunun genel olarak nasıl kullanılacağını öğreneceğiz. Eğer Ubuntu sunucu kurduysanız, bu yazımıza göz atmanızı öneririz: Ubuntu sunucu ilk kurulumdan sonra yapılması gerekenler

Rsync Kurulumu

Linux dağıtımlarının çoğunda rsync komut önceden yüklenmiştir. Linux sisteminizde bir rsync komutu yüklü değilse, yüklemek için aşağıdaki komutu kullanabilirsiniz.

Ubuntu ve Debian’a rsync yükleme

sudo apt install rsync

CentOS ve Fedora’ya rsync yükleme

sudo yum install rsync

Rsync Komut Sözdizimi

rsync komutunun söz dizimini inceleyelim:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTION – rsync seçenekleri veya özellikleri
  • SRC – Kaynak dizin veya dosya
  • DEST – Hedef dizini
  • USER – Uzak kullanıcı adı
  • HOST – Uzak ana bilgisayar adı veya IP Adresi

rsync, bunlar aracılığıyla çeşitli seçenekler sunar, bu şekilde komutun nasıl davranacağını kontrol edebiliriz. En sık kullanılan seçenekler:

  • -a (--archive, arşiv modu) -Dizinleri yinelemeli olarak senkronize etmek için kullanılır. Sembolik bağlantıları, değişiklik zamanlarını, grupları, mülkiyeti ve izinleri korur.
  • -P ( --partial , --progress) –  Büyük veriyi yavaş veya kararsız bir bağlantı üzerinden aktarırken çok kullanışlı bir seçenektir. Veri aktarımı sırasında bir ilerleme çubuğu gösterir ve kısmen aktarılan dosyaları tutar.
  • -z (--compress)- Verileri sıkıştırılmış biçimde aktarmak için kullanılır. Bu seçenek yalnızca uzak makinenin bağlantısı yavaşsa kullanılır.
  • --delete – Hedef konumdan gereksiz dosyaları silmek için kullanılır. Çoğunlukla yansıtmada kullanışlıdır.
  • -q  (--quiet) – Hata olmayan mesajları bastırmak için kullanılır.
  • -e – Farklı uzak shell seçmek için kullanılır. rsync tarafından kullanılan varsayılan shell ssh’dir.

Temel rsync Kullanımı

  • rsync komutunun en temel kullanımı, tek bir dosyayı bir yerelden başka bir yerele kopyalamaktır. /Download/filename.zip Kaynak dosyayı temsil eder, /home/ hedefi temsil eder.
rsync -a /Download/dosyaadı.zip /home/

Bu komutu root olmayan bir kullanıcı çalıştırıyorsa, o kullanıcının kaynak dosya üzerinde okuma iznine ve hedef üzerinde yazma iznine sahip olması gerekir.

  • Hedefe farklı bir adla dosya veya dizini kopyalamak istiyorsak, o adı şu komutla belirtmeliyiz:
rsync -a /Download/dosyaadı.zip /home/yenidosyaadı.zip
  • Örneğin, aşağıdaki komutta bir web sitesi dosyalarının yerel bir yedeğinin nasıl oluşturulacağını göreceğiz:
rsync -a /var/www/narweb.net/public_html/ /var/www/narweb.net/backup_public_html/

Hedef dizin mevcut değilse, rsync onu oluşturacaktır.

Kaynak dizinin sonunda /  varsa, komut yalnızca dizin içeriğini hedef dizine kopyalar. Kaynak dizinin sonunda / olmazsa komut, kaynak dizini hedef dizinin içine kopyalar.

Uzak bir Makineden Verileri Senkronize Etmek için rsync’i kullanma

Verileri uzaktan aktarmak için rsync komutunu kullanırken, rsync komutunun hem kaynak hem de hedef sunucuya yüklenmesi gerekir. Varsayılan olarak, rsync komutu, uzak kabuk olarak ssh’yi kullanır.

  • Aşağıdaki örnekte, bir dizini yerel bir makineden uzak bir sunucuya aktaracağız.
rsync -a /opt/media/ remote_user@remote_host_or_ip_address:/opt/media/

Yukarıdaki komutta -a argümanından hemen sonra kaynaktan bahsettik, Bir dosya aktardığımızı gösterir.

  • Verileri uzak bir sunucudan yerel bir sisteme aktarırken, kaynak olarak uzak bir sunucu kullanın:
rsync -a remote_user@remote_host_or_ip_address:/home/media/ /home/media/

Yukarıdaki komutta, kaynağından hemen sonra : , bir dosya istediğimizi gösterir.

  • Hedef sunucunun bağlantı noktası 22’de dinlemiyorsa, komutta -e seçeneğiyle dinleme bağlantı noktasından bahsetmemiz gerekir:
rsync -a -e "ssh -p 2322" /home/Document/ remote_user@remote_host_or_ip-address:/home/Document/

Not :- Büyük miktarda veri aktarıyorsanız veya -p seçeneğini kullanıyorsanız, her zaman screen içerisinde rsync komutunu çalıştırın:

rsync -a -P remote_user@remote_host_or_ip_address:/home/Document/ /home/Document/

Dosyaları ve Dizinleri Hariç Tutma

Verileri bir sunucudan başka bir sunucuya aktarırken bazen bazı dosya veya dizinleri hariç tutmamız gerekir. Dosyayı veya dizini hariç tutmak için aşağıdaki yöntemimiz var:

  •  –exclude argümanı seçeneği, rsync komutuyla birlikte kullanılır ve hariç tutmak istediğiniz dosya ve dizinler seçilir:

Aşağıdaki örnekte, bir dosyaadı.txt dosyasını ve bir test dizinini hariç tutacağız:

rsync -a --exclude=test --exclude=dosyaadı.txt /home/narweb root@192.168.200.11:/home/

Bitirirken

Bu yazımızda, bir sunucudaki dosyaları ve dizinleri başka bir sunucuya kopyalamak ve senkronize etmek için rsync komutunun nasıl kullanılacağını öğrendik. rsync komutuyla ilgili daha ayrıntılı bilgi için terminalde man rsync yazabilirsiniz.

Bu yazımızı beğendiyseniz, bu yazılarımız da ilginizi çekecektir:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir