18 Kasım 2015

Linux Sunucuda Terminal(SSH) Üzerinden BackUp İşlemleri

Linux Sunucuda Shell(SSH) Üzerinden Backup İşlemleri

Linux sunucular üzerinde Shell(SSH) bağlantısı kullanarak Backup(Yedekleme) işlemlerini anlatacağım. Windows üzerinden sunucunuza bağlanmak için SSH Client for Windows araçlarını kullanabilirsiniz.

İlk olarak sunucumuza root olarak bağlanıyoruz. cd /home komutu ile sunucudaki sitelerin olduğu dizine gidiyoruz. Dizindeki siteleri ls -l komutu ile listeliyoruz. Burada listelenen dosya isimleri sitelerin FTP veya Client(İstemci) genelde ikiside aynı olur UserName adlarıdır.

Sunucudaki örnek site dosyamız burakavcioglu olsun. Home dizini içinde aşağıdaki komutu yazarak burakavcioglu sitesinin tüm yedeğini(Full Backup) Home dizini içine alalım.

SSH üzerinden alınan tat.gz uzantılı "cpmove" dosyası ile cPanel üzerinden alınan "backup" dosyası ile aynıdır. CPanel üzerinden yedek alma işlemini inceleyebilirsiniz.

root[~]# /scripts/pkgacct burakavcioglu (Home dizini içine sitenin yedeğini almak için)

cd /home içinde "cpmove-burakavcioglu.tar.gz" adında backup dosyasını oluşturduk.

Linux Sunucuda Shell(SSH) Üzerinden Backup İşlemleri

Aşağıdaki komutla site dosyalarının bulunduğu "public_html" dizinine yedek dosyamızı atıyoruz
root[~]# mv /home/cpmove-burakavcioglu.tar.gz /home/burakavcioglu/public_html

root[~]# rm -rf cpmove-burakavcioglu.tar.gz (Yedek dosyasını sonra silmek için kullanabilirsiniz.)

root[~]# sudo rm cpmove-burakavcioglu.tar.gz (Yedek dosyasını sonra root olarak silmek için kullanabilirsiniz.)

Yedek dosyasını tarayıcı üzerinden indirmek için dosyamıza ilk olarak aşağıdaki komutla izin vermemiz gerekir.
root[~]# chmod 777 /home/burakavcioglu/public_html/cpmove-burakavcioglu.tar.gz

Linux Sunucuda Shell(SSH) Üzerinden Backup İşlemleri

root[~]# domain.com/cpmove-burakavcioglu.tar.gz şeklinde yedek dosyasını masa üstüne indirebilirsiniz.

Yedek dosyamızı başka bir sunucuya(Örnek IP: 88.88.88.88) taşıyacaksak ve karşı sunucununda bilgileri elimizde varsa;
root[~]# scp /home/cpmove-burakavcioglu.tar.gz root@88.88.88.88:/home

Eğer karşı sunucu 22 den farklı bir port(Örnek 55) kullanıyorsa;
root[~]# scp -P55 /home/cpmove-burakavcioglu.tar.gz root@88.88.88.88:/home

Taşıma komutunu girdikten sonra onaylamak için yes diyip karşı sunucunun şifresini girmenizi isteyecektir. Şifreyi girip Enter yaptıktan sonra yedek dosyası karşı sunucuya taşınmış olacaktır.

Sunucuda birden fazla siteniz var ve hepsini başka bir sunucuya komple taşımak istiyorsanız, tüm yedek dosyalarını oluşturduktan sonra aşağıdaki komutla tüm yedekleri karşı sunucunun /home dizinine taşıyabilirsiniz;
root[~]# scp /home/cpmove-* root@88.88.88.88:/home

Linux Sunucuda Shell(SSH) Üzerinden Backup İşlemleri

root[~]# /scripts/restorepkg burakavcioglu
Yedeği /home dizinine attıktan sonra yukarıdaki komut ile yedeği restore edebilir ve yükleyebilirsiniz.

Aşağıdaki komut sunucudaki tüm sitelerin yedeklerini tek tek cpmove-username.tar.gz şeklinde /home dizinine almaktadır.
root[~]# for i in $(ls /var/cpanel/users); do /scripts/pkgacct $i;done

Aldığımız yedeği Shell(SSH) üzerinden geri yüklemek için aşağıdaki komutu kullanırız. WHM/cPanel'den yapmak istemezsek aşağıdaki komutu kullanabiliriz. /home dizinindeki tüm yedeklerini açar ve WHM'den de hesapların açılmış olacağını göreceksiniz database isimleri /www klasörü ve içeriği ftp şifreleri eskisi gibi yüklenecektir.
root[~]# for x in $(ls -A *.tar.gz | cut -d "-" -f 2 | cut -d "." -f 1); do /scripts/restorepkg $x; done

Geri yükleme işleminden sonra NameServer ayarlarını da yapınca siteniz çalışacaktır.

/home(Bulunduğumuz Dizin) dizini ve alt klasörlerdeki tüm yedek dosyalarını, ".tar.gz" uzantılı dosyaların hepsini silmek için aşağıdaki komutu kullanabilirsiniz.
root[~]# find . -type f -name "*.tar.gz" -exec rm -f {} \;

2) SSH Üzerinden Client'ın /home dizinindeki yedeğini almak

Bu işlem aslından sunucuda Client'ın /home dizinindeki tüm dosyasının yedeğini almaktır. cPanel'de yedeği bu şekilde almaktadır. Bu işlemde veritaban (MySQL) yedeğini almamaktadır. Varsayılan Client adımız yine burakavcioglu olsun, Diğer Client adımız ise burakavcioglu2 olarak alırsak;

root[~]# cd /home
root[~]# tar cvzf backup-burakavcioglu.tar.gz burakavcioglu

Yedek dosyamız /home dizini içerisinden "backup-burakavcioglu.tar.gz" olarak alınmıştır. Taşıma komutu ile boş bir Client içine bu projemizi çıkarabilir ve yedek dosyası olarak bilgisayarımıza indirebiliriz.

Dosyaları atmadan önce atacağımız dizinin içindeki tüm içeriği silmek için;
root[~]# rm -rf /home/'burakavcioglu2'/*

Bu işlem sonunda dizin adı silinmez sadece içerisindeki tüm her şey silinir. Bu kodun bir benzeri için ilgili dizin içerisine gelip rm -rf * komutunu da kullanabilirsiniz. Fakat bu komut direk yanlışlıkla başka yere yazılırsa sunucu için geri dönüşü olmayan işlemler yapabilirsiniz bu yüzden bu komutu direk önermedim.

Oluşturduğumuz yedek dosyasını /home dizini içindeki başka bir Client'da açmak için;
root[~]# tar xvzf backup-burakavcioglu.tar.gz -C burakavcioglu2

Yedek dosyasını /home dizininden silmek istersek;
root[~]# rm -rf backup-burakavcioglu.tar.gz

Hiç yorum yok:

Yorum Gönder