Merhaba arkadaşlar, linux tabanlı sunucuların bir çogunda komutlar aynı olmasa bile oldukça yakındır yani buradaki komutlar linux dağıtımlarının bir çoğunda çalışacaktır.
Ben üzerinde en çok çalıştığım işletim sistemi olan centOS için daha önceden not aldıgım bazı komutları görünce böyle bir rehber konu yapma gereği duydum hepsini bir arada bulundurma ve sizlerinde işinize yarayabilecek şeyler olabileceğini düşünerek burada paylaşma gereği duydum.
Bu makale için ilk söylemek istediğim komut man
bu komut ile kullanmanız gereken komutların ne işe yaradığı ve nasıl kullanılacağı hakkında bilgiler vermektedir, windows daki help gibi düşünebiliriz. Örnek olarak wget
komutunu ne şekillerde kullanabileceğiniz veya kullanım şekilleri hakkında bilgi almak istediğinizde man wget
komutunu kullanmanız size iyi bir kaynak olacaktır.
wget
komutu ile başlamışken devam edelim, wget sunucunuza dışarıdan dosya çekmenize olanak sağlar, resim, zip , exe aklınıza gelebilecek tüm uzantıları çeker ancak verdiginiz adres dogru degil ise 404 hatasının kaynak kodlarını çeker. Örnek kullanım aşağıdaki gibidir ;
wget googlefanclub.com/dosyalar/dosya.zip
CentOS sunucularda sistem güncellemesi yapmak;
YUM
kütüphanesi ile yapılmaktadır.
Yum -y -update
işletim sisteminizi mevcut son sürüme yükseltir herşeyiyle.
Yum update kernel
Komut bu şekilde sadece kerneli güncelleyecektir ve tüm adımlarda sizden onay isteyecektir. Tüm adımları hızlıca takip etmesini istiyorsanız komutu kullanırken -y eki kullanmalısınız. Örnek;
Yum -y update kernel
şeklindedir.
Centos işletim sistemli sunucularda sunucu içi arama yapmak
find
komutu bize dosya çeşitli güzellikler sağlamaktadır, örneğin bir dosyanın içinde geçen bir kelimeyi tüm sunucudaki dosyalarda arayabilir yada belirli boyutun üzerindeki dosyaları bulmamızı sağlayabilir detaylar için man find
komutu ile tüm örneklerini görebilirsiniz. Ben sizlere dosya içi arama ve dosya boyutuna göre aramayı göstereceğim örnek olarak.
Sunucularınızda zamanla oluşan büyük boyutlu log dosyalarından dolayı diskleriniz dolmaktadır, böyle sorunlarda sunucuda disk alanı kazanmak için 100 mb yada üzeri boyuttaki dosyaları aratıp bulabilirsiniz, örneğimiz 100MB üstü dosyaları size listeleyecektir;
find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $5 ": " $9 }' |sort -n
Diğer komutumuz ise örnek vermek gerekirse shell vs benzeri hack girişimleri yaşadığınızda yada sitenize hacklinkler eklendiğinde sunucunuzda php dosyalarında örnek bir kelime aratarak bunları bulmak eval_code gibi terimleri arayabiliriz. Örnek kodumuz aşağıdaki gibidir;
find /home/ -type f -name "*.php" | xargs grep -l 'base64_decode'
komutumuz tam olarak home dizininde bulunan php dosyalarında “base64_decode” kelimesini arıyor, dizini kendinize göre özelleştirebilir tek bir site için o sitenin dizinini kullanarak yapabilirsiniz gerekli aramayı.
Bir diğer dosya arama komutu ise locate
komutudur, büyük sistemler için kullanışlıdır kendine ait bir veri tabanı oluşturur ve buradan size hızlı sonuçlar döndürür.
Örnek kullanımı: locate dosyaadi.php
şeklindedir, uzun süre arama yapmadıysanız updatedb
komutuyla locate veri tabanını güncelleyip daha sağlıklı sonuçlar alabilirsiniz.
Bu konuda vereceğim ipuçları bunlardır.
Centos sunucularda disk hızını ölçme
Centos sunucularda disk kaynaklı performans sorunu yaşadığınızı düşünüyorsanız , disk hızınızı aşağıda verdiğim komut ile ölçebilirsiniz. Sanal sunucunuz var misal SSD diskli olarak aldınız ama çok yavaş olduğunu düşünüyorsanız bu komut ile minimum 150 + 200mb (paylaşımlı oldugu için) yazma okuma hızı almalısınız. İlgili komut;
dd if=/dev/zero of=tempfile bs=1024 count=4096000
Oluşturulan temp dosyasını silmek için ise aşağıdaki komutu kullanınız;
rm tempfile
Centos sunucu’nun saatini Türkiye Saati yapmak; (bundan tam emin değilim notlarım arasında gördüm yazmak istedim deneyiniz.)
cp /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
Centos Rescue (Güvenli) mod’da iken servisleri başlatmak için aşağıda vereceğim komutları izleyebilirsiniz, yaşanan bir sorundan ötürü sunucumda yayın gidiyordu ve bir türlü sorunu çözememiştik, yeni donanım tedarik edip siteleri taşıyana kadar bir süre güvenli modda yayın yapmak zorunda kalmıştım, benzer bir durumda kalırsanız sizler içinde faydalı olacaktır.
mount /dev/md2 /mnt/
chroot /mnt
service mysql start
Burada md2 olan kısım benim raid yapımdaki diskimdi, bunu kendinize göre düzenleyebilirsiniz.
Centos sunucularda Mysql işlemleri
Centos sunucularda büyük boyutlu mysql yedeklerinizi root erişimi ile ssh üzerinden kolayca alabilir ve yükleyebilirsiniz, bunun için en iyi yöntem aşağıda ilettiğim şekildedir.;
Mysql yedeğini export yani dışarı çıkarmak için alttaki veri tabanı kullanıcı adı ve veri tabanı adı kısımlarını düzenleyin.
mysqldump -u DBkullaniciadi -p DBadi > DBdosyasi.sql
Bu komutu kendinize göre düzenleyip çalıştırdığınızda sizden mysql şifresini isteyecektir bilgilerde yanlışlık yok ise, şifrenizi girip enter e basmanız durumunda kısa bir sürede sql dosyanız bulundugunuz dizinde oluşacaktır.
Bu veri tabanını tekrar geri yüklemek veya farklı bir sunucuya taşıyıp yüklemek için, ilgili sql dosyamızı sunucumuza yüklüyoruz ve bulundugu dizine gidip aşağıdaki komutu kullanarak yüklüyoruz.
mysql -u yeniDBkullaniciadi -p yeniDBiadi < DBdosyasi.sql
Komutu çalıştırdıktan sonra sizden yeni veri tabanınızın şifresini isteyecektir, şifreyi girip enter e bastıktan sonra herhangi bir uyumsuzluk yoksa hata vermeden işlemi tamamlayacaktır, hata veriyor ise büyük ihtimalle esi ve yeni mysql serverlerinizin sürümleri farklı olabilir.
Sunucudaki tüm veri tabanlarını yedeklemek;
Diyelimki bir felaket senaryosu ile karşı karşıyasınız ve sunucunuz kapanacak yada çöktü formatlanması gerekiyor ve mysql servisi hala ayakta iken tüm dataları almak istiyorsunuz bu komut tam size göre :
mysqldump -u DBkullanıcıadı(root olmalıdır) -p –all-databases > Dosyaadi.sql
Burada’ki kullanıcı adı root olmalıdır ve mysql root şifrenizi girmeniz gerekecek komutu calıştırdığınızda.
Daha detaylı mysql bilgisi için daha önce yazmış olduğumuz Centos sunucularda mysql yedeği alma ve yükleme isimli konumuza göz atabilirsiniz.
Bu makaleye uzunca bir dönem ara verdim centos 6.x sunucularda tüm komutlar calışmaktadır ancak artık pek fazla centos 6 sunucu kalmadı centos 7 için deneyimlerinizi yorum olarak iletirseniz bu kütüphaneyi geliştirebiliriz şimdilik bu kadar…