Uzak Sunucular Arasında Klasör İşlemleri

SFTP ve SCP kullanımıyla ilgili yazının ardından bu başlık altında uzak sunucular arasında dosya transferiyle ilgili olarak biraz daha detay verecek ve bir kaç konuyu bir arada örneklendireceğim. Durum senaryosu olarak, paylaşımlı host alanında bulunan bir wordpress kurulumunu olduğu gibi DigitalOcean sunucumuza taşıyacağız.

DigitalOcean sunucu işlemleri için doctl erişimini kullanacak, yapılandırma için one-click app seçeneklerinden wordpress imajını aktifleştireceğim. Erişim sağlanacak paylaşımlı hosting alanı ve bilgisayar arasında, DigitalOcean ile bilgisayar arasında ssh açık anahtarları tanımlı. Örnek olması açısından, paylaşımlı hosting ile DigitalOcean sunucusu arasında yeni bir tanımlama oluşturacağım.

Uzak Sunucular Arasında Klasör İşlemleri

Öncelikle doctl üzerinden tanımlı açık anahtarlara ait fingerprint değerlerlerine sonraki dropletlerle ilişkilendirme yaparken ihtiyaç duyacağız.

doctl compute ssh-key list

Doctl

Kullandığımız güncel droplet image listemize bie göz atmak istersek;

doctl compute image list

Droplet image list

Her şey yolunda. O halde, droplet listemizi alalım.

doctl compute droplet list

Güncel liste içerisinden erişim sağlamak istediğimiz droplete ait id değerini ssh bağlantımızda kullanacağız.

doctl compute ssh [droplet_id]

Komut sonrasında SSH erişimimiz sağlanmış olacak.

Bu akışa ek olarak, ben yeni bir wordpress kurulu yeni bir droplet oluşturup taşıma işleminde kullanacağım. O halde seçenekleri listeleyelim.

doctl compute image list --public

Tüm liste yerine sadece wordpress ile ilgili olanı almak istersem;

doctl compute image list --public | grep wordpress

Droplet oluşturmak için kullanacağım slug değerinin wordpress-16-04 olduğu bilgisiyle sunucu oluşturma isteğimizi, ssh-key ile doğrudan bilgisayarıma ait açık anahtar tanımlı olarak kurulum iletiyorum. Yeni bir açık anahtar tanımlama işlemini paylaşımlı hosting üzerinden aşağıda açıkladım.

doctl compute droplet create wpdroplet --size 1gb --image wordpress-16-04 --region nyc1 --ssh-keys 4d:23:e6:e4:8a:17:d2:cf:89:47:36:b5:c7:33:40:4e

İsteğimin onaylandığına ve dropletin oluşturulduğuna dair aldığım bildirimle birlikte ilgili droplete SSH erişimimi başlatıyorum.

doctl compute ssh [droplet_id]

Bir diğer aşamaya geçebiliriz. Droplet üzerinden paylaşımlı hosting alanına SSH bağlantısı sağlayıp veritabanını kopyasını çekelim.

Veritabanı bilgilerini wp-config.php‘den kopyalayabileceğiniz gibi sunucuda wp-cli kurulu ise wp db export komutundan da faydalanabilirsiniz.

mysqldump -u [mysql-kullanici-adi] -p [kopyalanacak-veritabani] > [yedek-sql-dosyasi-adi].sql

Bu komutla birlikte /root altında [yedek-sql-dosyasi-adi].sql dosyasını oluşturdum. Yazının başında da belirttiğim gibi açık anahtar kaydını iki nokta arasında sağlamamıştım. Şimdi paylaşımlı hosting alanına ait açık anahtarı görüntüleyelim.

ssh-keygen ile anahtarımızı oluşturalım ve SCP işlemine geçelim.

Ek Not:

Sunucularda doctl kuruluysa aşağıdaki komutlarla kolaylıkla ssh işlemlerini gerçekleştirebilirsiniz.

doctl compute ssh-key create [anahtar-adi] --public-key "public_key"
doctl compute ssh-key import [anahtar-adi] --public-key-file ~/.ssh/id_rsa.pub
doctl compute ssh-key update [anahtar-id] --key-name [anahtar-adi]

SCP ile artık klasör içeriğini hem sql yedeğimiz hem de diğer dosyalarımızla birlikte olduğu gibi aktarmaya başlayabiliriz.

scp -r ~/public_html/../wp-content/ kullanici-adi@dosyalari-kopyalayacagimiz-sunucu:/var/www/html/

Ek Not:

scp komutu cp ile benzerlik taşımaktadır.

cp -avr /uploads /uploads_backup

MySQL yedeğimizi oluşturduğumuz veritabanına import edelim.

mysql -u [veritabani-kullanici-adi] -p [veritabani-adi] < [yedek-sql-dosyasi-adi].sql

wp-config.php bilgilerine göre (kullanıcı adı, şifre, yetkilendirme) MySQL veritabanı sunucumuzu yapılandırdığımıza ve veritabanımızı import ettiğimize göre sürecimiz tamamlandı.

Son bir ekleme olarak, /uploads klasörü içeriğindeki imajlarımızı da optimize edelim.

Önce klasör boyutuna bakalım.

du -hs uploads

Klasörün boyutu 829 MB görünüyor. Optimizasyonu başlattıktan sonra tekrar kontrol ederek ne kadarlık alan kazandığımızı karşılaştırabiliriz.

find . -name '*.jpg' | xargs jpegoptim --strip-all

Evet, görsellerin optimizasyonu da tamamlandıktan sonra, tekrar klasör boyutuna baktığımızda 776 MB ile ekstra 53 MB’lık bir alana sahip olduğumu gördüm.

Leave a Reply