Eğitimler

Her site sahibinin bilmesi gereken 25 Linux komutu

Sunucu yönetimi için gerekli 25 temel Linux komutuyla tanışın: dosya yönetimi, süreçler, ağ ve disk yönetimi — pratik örnekler ve sorun giderme ipuçlarıyla.

Eğitimler

Site yöneticisiyseniz ve sunucunuz Linux üzerinde çalışıyorsanız, muhtemelen basit bir sorunu çözmek için hosting kontrol paneline başvurmak veya destek ekibiyle iletişime geçmek zorunda kaldığınız çok olmuştur. Ancak gerçek şu ki, Linux komutlarına hakim olmak yalnızca işinizi birkaç kat hızlandırmakla kalmaz, aynı zamanda kritik durumlarda — DDoS saldırısı veya disk dolması gibi — tek kurtuluş yolunuzdur. Bu makalede, her site yöneticisinin bilmesi gereken 25 pratik komutu gerçek örneklerle inceleyeceğiz.

1. Dosya ve Dizin Yönetimi

Dosyalarla çalışmaya başlamak basittir, ancak bu komutların doğru kombinasyonu zamandan büyük ölçüde tasarruf etmenizi sağlar.

ls ve ll — Dosyaları Görüntüleme

ls komutu en temel araçtır, ancak doğru bayraklarla daha detaylı bilgi alabilirsiniz:

ls -lah /var/www/html

Bu komut tüm dosyaları insan tarafından okunabilir boyutlarla (4.2K gibi) ve değiştirilme tarihiyle gösterir. En yeni dosyaların önce gelmesi için -t seçeneğini ekleyin: ls -lt.

find — Gelişmiş Arama

Diyelim ki diski dolduran büyük bir günlük dosyası buldunuz:

find /var/log -type f -size +100M -exec ls -lh {} \;

Bu komut, /var/log içindeki 100 MB üzerindeki tüm dosyaları boyutlarıyla listeler. Geçici bir dizinde 30 günden eski dosyaları silmek için:

find /tmp -type f -mtime +30 -delete

tar — Yedekleme ve Sıkıştırma

Site dizininin tamamını yedeklemek için:

tar -czvf backup.tar.gz /var/www/html

Yeni bir konuma çıkarmak için:

tar -xzvf backup.tar.gz -C /home/user/restore

Yaygın hata: -C bayrağını unutmak, dosyaların geçerli dizine çıkarılmasına ve klasör yapısının bozulmasına neden olur.

2. Süreç Yönetimi

Siteniz yavaşladığında ilk adım, çalışan süreçleri kontrol etmektir.

ps ve top — Süreçleri Görüntüleme

Belirli bir kullanıcının tüm süreçlerini görmek için:

ps -u www-data -o pid,%cpu,%mem,cmd

top komutu canlı görünüm sağlar. Ancak betik yazılabilir tek seferlik çıktı için top -bn1 kullanın. Yalnızca en çok kaynak tüketen 5 süreci görmek istiyorsanız:

top -bn1 | head -20 | tail -10

kill ve killall — Süreci Sonlandırma

Kilitlenmiş bir PHP-FPM süreci varsa, önce PID'yi bulun:

pgrep -f "php-fpm: pool"

Ardından yumuşak sinyalle (SIGTERM) sonlandırın:

kill -15 12345

Sonlandırılmazsa, sert sinyali (SIGKILL) deneyin:

kill -9 12345

Önemli not: Sürecin temizlik yapma şansı olması için her zaman önce -15 ile başlayın. -9'un aşırı kullanımı veritabanına zarar verebilir.

systemctl — Hizmet Yönetimi

Modern dağıtımlarda (Ubuntu 16.04+, CentOS 7+) hizmetleri yönetmek için:

systemctl restart nginx
systemctl status mysql

Hizmeti açılışta etkinleştirmek için:

systemctl enable --now redis-server

3. Ağ Yönetimi

Ağ sorunları, sitelerin çökmesinin en yaygın nedenidir. Bu komutları mutlaka bilmelisiniz.

ss — Portları ve Bağlantıları Kontrol Etme

80 numaralı porta (HTTP) kimin bağlandığını görmek için:

ss -tunap | grep :80

443 numaralı porta (HTTPS) aktif bağlantı sayısını saymak için:

ss -tn state established '( dport = :443 )' | wc -l

Bu komut SYN flood saldırılarını tespit etmede çok kullanışlıdır.

curl — HTTP Testi

Sunucu yanıt başlıklarını kontrol etmek için:

curl -I https://example.com

Toplam yanıt süresini ölçmek için:

curl -o /dev/null -s -w "time_total: %{time_total}s\n" https://example.com

İsteğin hangi IP'den gönderildiğini görmek istiyorsanız:

curl -v https://example.com 2>&1 | grep "Connected"

ping ve traceroute — Bağlantı Sorun Giderme

Sunucuya bağlantıyı test etmek için:

ping -c 4 8.8.8.8

Yoldaki kesinti noktasını bulmak için:

traceroute -n example.com

Yaygın hata: ping yanıt vermezse hemen sunucunun kapalı olduğu sonucuna varmayın. Birçok sunucu ICMP'yi filtreler. Önce curl veya nc ile test edin.

4. Disk ve Dosya Sistemi Yönetimi

Diskin dolması, sitelerin çökmesinin en yaygın nedenlerinden biridir. Bu komutlar sizin kurtarıcınızdır.

df ve du — Disk Alanını Kontrol Etme

Genel alanı görmek için:

df -h

Site kökündeki en büyük dizinleri bulmak için:

du -sh /var/www/html/* | sort -rh | head -10

Bu birleşik komut, en büyük 10 klasörü boyut sırasına göre gösterir.

lsof — Açık Dosyalar

Bir dosyayı sildiyseniz ancak disk hâlâ doluysa, muhtemelen bir süreç onu bellekte tutuyordur:

lsof +L1

Bu komut, hâlâ açık olan silinmiş dosyaları gösterir. Ardından ilgili süreci kill ile durdurabilirsiniz.

rsync — Senkronizasyon ve Aktarım

İzinleri koruyarak sunucular arasında dosya aktarmak için:

rsync -avz --progress /var/www/html/ user@backup-server:/backup/html/

-a (arşiv) bayrağı izinleri ve zamanları korur, -z sıkıştırır ve --progress ilerlemeyi gösterir.

5. Kullanıcı ve İzin Yönetimi

Sunucunuzun güvenliği, kullanıcıların doğru yönetimine bağlıdır.

useradd ve usermod — Kullanıcı Yönetimi

Sınırlı kabukla yeni kullanıcı oluşturmak için:

useradd -m -s /bin/bash deploy

Kullanıcıyı sudo grubuna eklemek için:

usermod -aG sudo deploy

Önemli not: Her zaman -a (ekle) bayrağını kullanın. Bu bayrak olmadan kullanıcı önceki gruplardan çıkarılır.

chmod ve chown — İzinler

Site dosyalarının sahipliğini web sunucusu kullanıcısına değiştirmek için:

chown -R www-data:www-data /var/www/html

Dizinler (755) ve dosyalar (644) için doğru izinleri ayarlamak üzere:

find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

6. Günlükleri Görüntüleme

Günlükler, hata durumunda bakmanız gereken ilk yerdir.

tail ve grep — Günlükleri Görüntüleme ve Filtreleme

Nginx hata günlüğünü canlı takip etmek için:

tail -f /var/log/nginx/error.log

Belirli bir zaman aralığında 500 hatalarını bulmak için:

grep " 500 " /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn

Bu komut, en çok 500 hatası alan IP'leri sayılarıyla birlikte gösterir.

journalctl — systemd Günlükleri

MySQL hizmetinin bugünkü günlüklerini görmek için:

journalctl -u mysql --since today

Canlı takip için:

journalctl -u nginx -f

7. Birleşik ve Gelişmiş Komutlar

Bu birleşik komutlar, karmaşık işleri tek satırda halleder.

grep ve awk — Metin İşleme

Günlükten HTTP durum kodlarını çıkarıp saymak için:

awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

En yavaş istekleri (yanıt süresine göre) bulmak için:

awk '{if ($NF > 5) print $0}' /var/log/nginx/access.log | tail -20

watch — Periyodik Çalıştırma

Bellek kullanımını her 2 saniyede canlı izlemek için:

watch -n 2 free -h

Ağ bağlantılarını izlemek için:

watch -n 1 'ss -s'

8. Sorun Giderme ve Yaygın Hatalar

Bu bölümde, yeni başlayan yöneticilerin sık yaptığı birkaç hataya değineceğiz.

Gereksiz sudo Kullanımı

Her zaman normal kullanıcıyla giriş yapın ve yalnızca belirli komutlar için sudo kullanın. Root ile komut çalıştırmak, sistem dosyalarına istemeden zarar verebilir.

usermod'da -a Bayrağını Unutmak

Daha önce belirtildiği gibi, -a olmadan kullanıcı önceki gruplardan çıkarılır. Bu hata, kullanıcının SSH erişimini kesebilir.

Komut Çıktılarını Göz Ardı Etmek

rm veya dd gibi yıkıcı komutları çalıştırmadan önce, çıktıyı ls veya df ile mutlaka kontrol edin. Yolda yapılacak bir yazım hatası felakete yol açabilir.

Özet

Bu 25 Linux komutuna hakim olmak, birçok yaygın sunucu sorununu destek ekibine ihtiyaç duymadan çözmenize yardımcı olur. Bu komutları gerçek koşullarda güvenle uygulamak için bir test ortamında (VirtualBox veya ucuz bir VPS gibi) pratik yapmanızı öneririm. Sunucunuz bulut altyapıda çalışıyorsa, ServerNet sunucuya tam SSH erişimi sağlar ve bu komutları doğrudan üzerinde deneyebilirsiniz. Her komutun belgelerini man ile incelemeyi unutmayın — en iyi öğretmen Linux'un kendisidir.

ServerNet Destek

ServerNet mühendislik ve yayın ekibi — altyapı, ağ ve web barındırma uzmanları.

WordPress Hosting
Paylaş:

Yorumlar 0

Henüz yorum yok — ilk siz olun!

Yorum bırakın

İlgili hizmet

WordPress Hosting

LiteSpeed Enterprise ve NVMe üzerinde WordPress'e özel altyapı — otomatik kurulum, güvenli güncelleme, staging ve sizi Google'da üstte tutan önbellek.