Komut Satırı & Bash

Uzak Sunucular Arasında Klasör İşlemleri

Yayın:
Bilgisayarınız veya akıllı telefonunuz ile farklı uzak sunucular arasında klasör erişimleri ve klasörler arasında senkronize veri alışverişi gerçekleştirmenin adımları.
GÖRSEL
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 birkaç 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
DoctlKullandığımız güncel droplet image listemize bie göz atmak istersek; doctl compute image listDroplet image listHer ş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].sqlwp-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.
Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.