Sunucuya Dosya Transferi: SCP, SFTP ve rsync Rehberi
SCP sözdizimi, SFTP etkileşimli mod, rsync ile senkronizasyon ve yedekleme, Windows kullanıcıları için WinSCP ve FileZilla rehberi. Linux sunucuya güvenli dosya transferi.
İçindekiler
Sunucuya Dosya Transferi: SCP, SFTP ve rsync Rehberi
Linux sunucunuza dosya aktarmak için birden fazla güvenli yöntem mevcuttur. SCP (Secure Copy Protocol), SFTP (SSH File Transfer Protocol) ve rsync, SSH altyapısını kullanarak şifreli dosya transferi sağlar. Bu rehberde her üç aracın kullanımını ve Windows kullanıcıları için grafik arayüzlü alternatifleri öğreneceksiniz.
SCP ile Dosya Transferi
SCP, SSH protokolü üzerinden dosya kopyalamak için kullanılan basit ve hızlı bir araçtır.
Temel SCP Sözdizimi
# Yerel dosyayı sunucuya kopyala
scp /yerel/dosya.txt kullanici@sunucu-ip:/uzak/dizin/
# Sunucudan yerel makineye kopyala
scp kullanici@sunucu-ip:/uzak/dosya.txt /yerel/dizin/
# Dizin kopyalama (-r recursive)
scp -r /yerel/dizin/ kullanici@sunucu-ip:/uzak/dizin/
# Özel port kullanımı (-P büyük harf)
scp -P 2222 dosya.txt kullanici@sunucu-ip:/hedef/
# SSH anahtar dosyası ile
scp -i ~/.ssh/id_rsa dosya.txt kullanici@sunucu-ip:/hedef/
# İki uzak sunucu arasında kopyalama
scp kullanici1@sunucu1:/dosya.txt kullanici2@sunucu2:/hedef/
SCP Seçenekleri
# Sıkıştırma ile transfer (-C)
scp -C buyuk-dosya.tar.gz kullanici@sunucu-ip:/hedef/
# İlerleme göster (-v verbose)
scp -v dosya.txt kullanici@sunucu-ip:/hedef/
# Bant genişliği sınırla (KB/s)
scp -l 1024 dosya.txt kullanici@sunucu-ip:/hedef/
# Birden fazla dosya
scp dosya1.txt dosya2.txt kullanici@sunucu-ip:/hedef/
# Wildcard ile
scp *.log kullanici@sunucu-ip:/var/log/backup/
SCP, basit dosya kopyalama için idealdir. Büyük dizin senkronizasyonu veya yedekleme için rsync daha verimlidir.
SFTP ile Dosya Transferi
SFTP, SSH üzerinden çalışan tam özellikli bir dosya transfer protokolüdür. FTP'nin güvenli alternatifidir.
SFTP Bağlantısı
# SFTP oturumu başlat
sftp kullanici@sunucu-ip
# Özel port ile
sftp -P 2222 kullanici@sunucu-ip
# SSH anahtar ile
sftp -i ~/.ssh/id_rsa kullanici@sunucu-ip
SFTP Etkileşimli Komutlar
SFTP oturumu açıldıktan sonra kullanabileceğiniz komutlar:
# Uzak sunucuda dizin listele
ls
ls -la
# Uzak dizin değiştir
cd /var/www/html
# Yerel dizin değiştir
lcd ~/Downloads
# Mevcut uzak dizini göster
pwd
# Mevcut yerel dizini göster
lpwd
# Dosya yükle (yerel → uzak)
put dosya.txt
put dosya.txt /hedef/dizin/
# Dizin yükle
put -r /yerel/dizin/ /uzak/dizin/
# Dosya indir (uzak → yerel)
get dosya.txt
get /uzak/dosya.txt ~/Downloads/
# Dizin indir
get -r /uzak/dizin/ /yerel/dizin/
# Uzak sunucuda dizin oluştur
mkdir yeni-dizin
# Uzak sunucuda dosya sil
rm dosya.txt
# Uzak sunucuda dosya taşı/yeniden adlandır
rename eski-ad.txt yeni-ad.txt
# SFTP oturumunu kapat
exit
quit
Toplu SFTP İşlemleri
# Batch modunda SFTP (script ile)
sftp -b - kullanici@sunucu-ip << 'EOF'
cd /var/www/html
put index.html
put style.css
put app.js
EOF
# Batch dosyası ile
cat > sftp-commands.txt << 'EOF'
cd /var/www/html
put -r ./dist/
EOF
sftp -b sftp-commands.txt kullanici@sunucu-ip
rsync ile Senkronizasyon ve Yedekleme
rsync, dosya ve dizinleri verimli şekilde senkronize eden güçlü bir araçtır. Sadece değişen dosyaları transfer eder.
Temel rsync Sözdizimi
# Yerel dizini sunucuya senkronize et
rsync -avz /yerel/dizin/ kullanici@sunucu-ip:/uzak/dizin/
# Sunucudan yerel makineye senkronize et
rsync -avz kullanici@sunucu-ip:/uzak/dizin/ /yerel/dizin/
# Özel SSH portu ile
rsync -avz -e "ssh -p 2222" /yerel/ kullanici@sunucu-ip:/uzak/
# SSH anahtar ile
rsync -avz -e "ssh -i ~/.ssh/id_rsa" /yerel/ kullanici@sunucu-ip:/uzak/
rsync Seçenekleri
# -a: archive (recursive + permissions + timestamps + symlinks)
# -v: verbose (ayrıntılı çıktı)
# -z: compress (sıkıştırma)
# -h: human-readable (okunabilir boyutlar)
# -P: progress + partial (ilerleme + kısmi transfer)
# --delete: hedefte olmayan dosyaları sil
# --dry-run: gerçek transfer yapmadan simüle et
# --exclude: belirli dosyaları hariç tut
# Tam yedekleme komutu
rsync -avzh --progress /var/www/ kullanici@sunucu-ip:/backup/www/
# Silinen dosyaları da senkronize et
rsync -avz --delete /yerel/ kullanici@sunucu-ip:/uzak/
# Önce simüle et
rsync -avz --dry-run /yerel/ kullanici@sunucu-ip:/uzak/
# Belirli dosyaları hariç tut
rsync -avz --exclude='*.log' --exclude='.git' /yerel/ kullanici@sunucu-ip:/uzak/
# Bant genişliği sınırla (KB/s)
rsync -avz --bwlimit=1024 /yerel/ kullanici@sunucu-ip:/uzak/
rsync ile Otomatik Yedekleme
# Cron ile günlük yedekleme
crontab -e
# Her gece 02:00'de yedekle
0 2 * * * rsync -avz --delete /var/www/ kullanici@yedek-sunucu:/backup/www/ >> /var/log/rsync-backup.log 2>&1
# Tarihli yedekleme
rsync -avz /var/www/ kullanici@sunucu-ip:/backup/www-$(date +%Y%m%d)/
rsync'in en güçlü özelliği delta transfer algoritmasıdır: sadece değişen blokları transfer eder. Bu, büyük dosyaların güncellenmesinde büyük bant genişliği tasarrufu sağlar.
Windows Kullanıcıları için Grafik Arayüzler
WinSCP
WinSCP, Windows için en popüler SFTP/SCP istemcisidir.
Kurulum ve Bağlantı:
- winscp.net adresinden indirin
- Yeni oturum oluşturun:
- Dosya protokolü: SFTP
- Sunucu adresi: sunucu-ip
- Port: 22
- Kullanıcı adı ve şifre
- SSH anahtar için: Gelişmiş → SSH → Kimlik Doğrulama → Özel anahtar dosyası
WinSCP Özellikleri:
- Sürükle-bırak dosya transferi
- Dizin senkronizasyonu
- Yerleşik metin editörü
- Komut satırı arayüzü (winscp.com)
- Arka plan transferleri
FileZilla
FileZilla, Windows, macOS ve Linux için çapraz platform SFTP istemcisidir.
Bağlantı Kurma:
- filezilla-project.org adresinden indirin
- Site Yöneticisi → Yeni Site:
- Protokol: SFTP - SSH File Transfer Protocol
- Sunucu: sunucu-ip
- Port: 22
- Oturum açma türü: Normal veya Anahtar dosyası
- Bağlan
SSH Anahtar Kullanımı:
- Düzenle → Ayarlar → Bağlantı → SFTP → Anahtar dosyası ekle
.ppkformatı için PuTTYgen ile dönüştürme gerekebilir
Cyberduck (macOS/Windows)
# Cyberduck CLI (duck) ile transfer
duck --upload sftp://kullanici@sunucu-ip/hedef/ /yerel/dosya.txt
SSH Config ile Kolay Bağlantı
# ~/.ssh/config dosyasını düzenle
nano ~/.ssh/config
Host rexe-sunucu
HostName 203.0.113.50
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
# Artık kısa adla bağlanabilirsiniz
scp dosya.txt rexe-sunucu:/hedef/
sftp rexe-sunucu
rsync -avz /yerel/ rexe-sunucu:/uzak/
Sorun Giderme
Bağlantı Reddedildi
# SSH bağlantısını test et
ssh -v kullanici@sunucu-ip
# Port kontrolü
nmap -p 22 sunucu-ip
# Firewall kontrolü
sudo ufw status
İzin Hatası
# Hedef dizin izinlerini kontrol et
ls -la /hedef/dizin/
# Gerekirse izin ver
sudo chmod 755 /hedef/dizin/
sudo chown kullanici:kullanici /hedef/dizin/
Sonuç
SCP, SFTP ve rsync, Linux sunuculara güvenli dosya transferi için vazgeçilmez araçlardır. Basit kopyalama için SCP, etkileşimli yönetim için SFTP, senkronizasyon ve yedekleme için rsync tercih edin. Windows kullanıcıları WinSCP veya FileZilla ile aynı işlevselliğe grafik arayüzden erişebilir.
İlgili Makaleler
VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows VDS'e RDP ile Bağlanma ve Güvenlik Rehberi
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
VDS Sunucu İşletim Sistemi Değiştirme Rehberi (Reinstall)
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.