Linux rsync komutu: Seçenekler ve kullanım örnekleri

Satış ortaklığı bildirimi v3.1
Satış ortaklığı bildirimi v3.2 (yalnızca mobil)
Test ortamıRHEL ailesiAlmaLinux 9.8root hesabı07.10.2026'da kontrol edildi

İki sunucunun klasörlerini eşitlemek için her seferinde tamamını yeniden kopyalarsanız, yalnızca bir dosya değişmiş olsa bile aktarım tüm boyut kadar olur. rsync komutu, remote sync ifadesinin kısaltmasıdır; kaynak ile hedefi karşılaştırıp yalnızca farklı dosyaları gönderir ve yerel klasörler arasında da SSH ile bağlı sunucular arasında da aynı şekilde çalışır. Bu yazıda temel kullanımı, seçenekleri ve SSH ile rsync daemon olmak üzere iki bağlantı yönteminin örneklerini derledik.

Bu yazıdaki çıktılar AlmaLinux 9.8'deki rsync 3.2.7'den alındı; rsync kurulu değilse paket yöneticisiyle kurun.

# RHEL ailesi
dnf -y install rsync
# Debian ailesi
apt -y install rsync

✅ Temel kullanım

Temel söz dizimi şöyledir.

rsync -seçenekler kaynak hedef

cp komutu gibi önce kaynağı, sonra hedefi yazarsınız. Kaynağın sonuna eğik çizgi [/] koyarsanız hedefe yalnızca klasörün içeriği gider; koymazsanız klasörün kendisi gider.

~]# rsync -av www/ backup/
sending incremental file list
index.html
img/
img/logo.png
~]# rsync -av www backup/
sending incremental file list
www/
www/index.html
www/img/
www/img/logo.png

Aynı komutu yeniden çalıştırınca dosya listesi boş kalır ve sent baytı birkaç yüz bayta düşer. Boyutu ve değişiklik zamanı aynı olan dosyalar atlanır.

~]# rsync -av www/ backup/
sending incremental file list

sent 166 bytes  received 13 bytes  358.00 bytes/sec
total size is 3,015  speedup is 16.84

-a olmadan yalnızca -r kullanırsanız değişiklik zamanları korunmaz ve sonraki çalıştırmada aynı dosyalar yeniden gönderilir. Klasör eşitlerken varsayılan olarak -a kullanın.

-n seçeneği hiçbir şey aktarmadan yalnızca değişecek dosyaları gösterir ve çıktının sonuna [(DRY RUN)] eklenir. --delete gibi hedefteki dosyaları silen seçenekleri önce -n ile kontrol edip sonra gerçekten çalıştırın.

~]# rsync -avn --delete www/ backup/
sending incremental file list
deleting old.bak
index.html

sent 188 bytes  received 39 bytes  454.00 bytes/sec
total size is 3,013  speedup is 13.27 (DRY RUN)

✅ rsync komutu seçenekleri & simülatör

SeçenekAçıklama
-a--archiveAlt dizinleri de kopyalar; izinleri, sahibi, değişiklik zamanını ve sembolik bağlantıları korur (-rlptgoD ile aynı)
-v--verboseAktarılan her dosyanın adını ve aktarım toplamını yazdırır
-z--compressAktarım sırasında dosya verisini sıkıştırır
-r--recursiveAlt dizinleri de kopyalar (-a içinde)
-t--timesDeğişiklik zamanlarını korur (-a içinde). Sonraki çalıştırmada hangi dosyaların atlanacağını bu belirler
-n--dry-runAktarmadan yalnızca değişecek dosyaları gösterir ve sona (DRY RUN) koyar
-u--updateHedefte daha yeni olan dosyaları atlar
-h--human-readableBayt sayılarını K, M ve G biriminde yazdırır
-P--partial --progress ile aynı. Dosya başına ilerlemeyi gösterir ve yarıda kalan aktarımları sürdürür
-i--itemize-changesHer dosyada neyin değiştiğini kodla yazdırır>f+++++++++ yeni dosya · >f.st...... boyut ve zaman değişti · *deleting silindi
-e--rsh=COMMANDUzak kabuğu belirtir-e 'ssh -p 2222 -i /root/.ssh/key.pem'
--deleteKaynakta artık olmayan dosyaları hedeften siler (-r ya da -a gerekir)
--exclude=PATTERNDesene uyan dosya ve dizinleri dışarıda bırakır--exclude '*.tmp' --exclude 'cache/'
--include=PATTERN--exclude'dan önce konunca yalnızca o deseni dışlamanın dışında tutar
--max-size=SIZEBelirtilen boyuttan büyük dosyaları aktarmaz (küçük dosyalar için --min-size)--max-size=3M --min-size=10k
--bwlimit=RATEAktarım hızını sınırlar, birim KiB/s
--statsDosya sayısını ve aktarım istatistiklerini yazdırır
rsync komutu simülatörürsync 3.2.7
[root@server work]#
Yalnızca tarayıcınızda çalışır, gerçek dosyalara dokunmaz. www klasörü kaynak, backup klasörü önceki yedektir; rsync'i farklı seçeneklerle yazıp sonucu ll, cat ve diff ile kontrol edin. Uzak adresler (user@host:yol) yalnızca biçim olarak kabul edilir, bağlantı kurulmaz. Değişikliklerinizi geri almak için [Start over] düğmesine basın. ↑↓ tuşlarıyla önceki komutları çağırabilir, uknew help yazarak kullanılabilen komutları görebilirsiniz.

✅ Bağlantı yöntemleri: SSH ve rsync daemon

Uzak sunucuyla eşitlemenin iki bağlantı yolu vardır. Ana makineden sonraki tek iki nokta [:] SSH üzerinden gider, çift iki nokta [::] ise 873 portundaki rsync daemon'a doğrudan bağlanır.

TürSSH yöntemi (:)rsync daemon yöntemi (::)
Bağlantı biçimirsync -seçenekler user@host:/yol /yerel/yolrsync -seçenekler host::modül/yol /yerel/yol
PortSSH portu (varsayılan 22)873
ŞifrelemeSSH ile şifrelenirŞifreleme yok
Kimlik doğrulamaSSH anahtarı ya da parolarsyncd.conf içinde hosts allow; hesap ve parola isteğe bağlı
Sunucu tarafı ayarıYok (SSH erişimi varsa çalışır)rsync-daemon kurulumu, /etc/rsyncd.conf, 873 portunu açma
AmaçSunucular arası yedekleme ve dağıtım (varsayılan seçim)SSH hesabı vermeden iç ağda yansılama

🔲 SSH yöntemi

SSH ile bağlanabildiğiniz bir sunucuda sunucu tarafında ayar yapmadan hemen kullanabilirsiniz. Port farklıysa ya da anahtar dosyası kullanıyorsanız -e seçeneğine ssh komutunu olduğu gibi yazın.

# yerel → uzak
rsync -avz /home/2server_data/ root@192.168.45.239:/home/1server_data/
# uzak → yerel
rsync -avz root@192.168.45.239:/home/1server_data/html_Remote /home/2server_data
# SSH portu ve anahtar dosyası
rsync -avz -e 'ssh -p 2222 -i /root/.ssh/key.pem' root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync komutu: uzaktan yerele çalıştırma sonucu

Belirli dosya ya da dizinleri dışarıda bırakmak için her desene bir --exclude ekleyin ya da desenleri süslü parantez içinde toplayıp bir kez yazın.

rsync -avz --exclude 'html_Remote_Excertion' --exclude 'Exception_File' root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync -avz --exclude={'html_Remote_excertion/*','Exception_File'} root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync komutu: uzaktan yerele, belirli dosya ve dizinler hariç

🔲 rsync daemon yöntemi

rsync daemon, SSH hesabı olmadan 873 portundan modül bazında erişim verir; iletişim şifrelenmediği için aynı iç ağdaki sunucular arasında kullanılır.

AlmaLinux 9'da rsync-daemon paketini kurup hizmeti başlatın. firewalld kullanan sunucularda 873 portunu açın; bulut sunucularda konsoldaki güvenlik duvarından açın. RHEL 8 ve öncesinde kullanılan xinetd yöntemi 9'da kalktı.

dnf -y install rsync-daemon
systemctl enable --now rsyncd
firewall-cmd --permanent --add-port=873/tcp
firewall-cmd --reload

Yapılandırma dosyası [/etc/rsyncd.conf] içine modül adını, yolunu ve izin verilen ana makineleri yazın. read only yes olursa uzaktan yalnızca çekme yapılabilir.

[myhome]
path = /home
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.45.182
max connections = 3
timeout = 30

Uzak tarafta ana makineden sonra yalnızca çift iki nokta yazarsanız modül listesi, modül adını da eklerseniz içindeki dosya listesi görünür.

~]# rsync 192.168.45.239::
myhome
home
~]# rsync 192.168.45.239::myhome
drwxr-xr-x          4,096 2025/06/12 22:14:39 .
drwxr-xr-x          4,096 2025/06/12 22:21:10 1server_data
drwxr-xr-x          4,096 2025/06/12 22:14:39 2server_data

Kopyalama [host::modül/yol] biçiminde yapılır. --delete kaynakta olmayan dosyaları hedeften siler, --include ise yalnızca --exclude'dan önce konan öğeleri dışlamanın dışında tutar.

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
./
Exception_File
html_Remote/
html_Remote_Excertion/

sent 58 bytes  received 332 bytes  780.00 bytes/sec
total size is 442  speedup is 1.13
~]# rsync -avz --delete 192.168.45.239::myhome/1server_data/ /home/2server_data/
~]# rsync -avz --include '*.html' --exclude 'exclude.txt' 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync komutu: uzaktan yerele, delete seçeneğiyle
rsync komutu: uzaktan yerele, delete, include ve exclude seçenekleriyle

SELinux açık bir sunucuda modül yoluna erişim [Permission denied (13)] ile engellenebilir. Testte [setenforce 0] ile SELinux kapatıldıktan sonra geçti.

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
rsync: change_dir "/1server_data" (in myhome) failed: Permission denied (13)
sent 8 bytes  received 90 bytes  65.33 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see Önceki errors) (code 23) at main.c(1658) [Receiver=3.1.2]

--bwlimit aktarım hızını KiB/s biriminde sınırlar; -P eklerseniz her dosyanın ilerlemesini de görürsünüz. --max-size ve --min-size yalnızca belirtilen boyut aralığındaki dosyaları aktarır.

rsync -avzP --bwlimit=100 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync -avz --max-size='3M' --min-size='10k' 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync komutu: uzaktan yerele, bant genişliği 100kb sınırlı ve ilerleme -P ile

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

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

İnsan olduğunuzu kanıtlayın: 2   +   8   =