1. Planlama ve Hazırlık
- Yedekleme: Önemli denetimler – bütün dosyalar (
/var/www/htmlgibi) ve veritabanı (mysqldumpile.sqldosyası). - Test ortamı: Yeni sunucuda aynı yazılım sürümünü kur, dosyaları kopyala ve veritabanını geri yükle.
- Rollback plan: Eski sunucunun kısa‑zamanlı snapshot’ı veya
tararşivi.
2. Dosya Senkronizasyonu
rsync -avz -e "ssh -p 22" /var/www/html/ user@newserver:/var/www/html/-amodda dosyaları korur;-vayrıntılı çıktı;-zsıkıştırma;-eSSH üzerinden yapılır.--deleteopsiyonu, eski sunucudaki silinmiş dosyaların yeni sunucuda da silinmesini sağlar.- Hiçbir şeyin silinmemesi için önce
--dry-runile test edin, ardından gerçek senkronizasyon yapın.
3. Veritabanı Transferi
- Eksiksiz Dump:
Bash:mysqldump -u root -p --single-transaction --quick --lock-tables=false dbname > dbname.sql - Yeni sunucuya kopyala:
scp dbname.sql user@newserver:/tmp/ - İçe aktar:
SQL:mysql -u root -p dbname < /tmp/dbname.sql - Kullanıcı izinlerini güncelle: eski sunucudaki
phpmyadminya darootkullanıcılarının host ayarlarını yeni IP’ye uyarlayın.
4. Konfigürasyon Düzenlemeleri
- Web sunucusu (
nginx/apache) için server_name ve root yollarını yeni dosya konumuna göre güncelleyin. - Cache / Rewrite: eski
.htaccessveyanginx.confdosyalarının yeni host’a göre değiştirilmesi gerekebilir. - SSL: Let's Encrypt veya mevcut sertifikayı yeni sunucuya taşıyın;
certbot renew --force-renewalile sertifika güncellemesi yapılır.
5. DNS Değişikliği
- TTL’yi taşıma öncesinde düşük (
300saniye) yapın. - A kaydı yeni sunucunun IP’sine yönlendirin.
- DNS propagasyon süresince iki sunucuyu aynı anda çalıştırarak kesinti önleyin.
6. Son Kontroller
- Bağlantı testleri:
curl -I http://example.comile HTTP başlıklarını kontrol edin. - Veri bütünlüğü: Sayfa içerikleri, formlar ve admin paneli çalışır mı?
- Performans:
ab -n 1000 -c 10 http://example.comgibi araçlarla hızlı yük testi yapın.
7. Çıktı ve İzleme
- Yeni sunucu loglarını (
/var/log/nginx/error.log,access.log) izleyin. - Uyarı mekanizması:
fail2ban,MonitveyaGrafanaile anomali tespiti.
Örnek Senaryo
Bir WordPress sitesini eski Ubuntu 20.04 VPS’den, yeni Ubuntu 22.04 VPS’e taşırken yukarıdaki adımları izledim. Dosya senkronizasyonu
rsync ile hızlı oldu; veritabanı mysqldump ile yedeklendi ve yeni sunucuya aktarıldı. DNS TTL’yi 5 dakikalık seviyeye düşürerek 15 dakikalık minimal kesinti içinde geçiş sağlandı.Sorular
Taşıma sırasında karşılaştığınız en zorlu güvenlik sorunu neydi? Bu senaryoyu nasıl çözdünüz?