Buyukweb
Linux'ta Bash Script Yazma: Temel Otomasyon Rehberi

Linux'ta Bash Script Yazma: Temel Otomasyon Rehberi

Bash script ile Linux görevlerini nasıl otomatize edersiniz? Değişkenler, koşullar, döngüler ve fonksiyonlar ile temel bash scripting öğrenin.

Büyükweb Teknik Ekibi1 Haziran 20257 dakika okuma

Linux'ta Bash Script Yazma: Temel Otomasyon Rehberi

Bash script, Linux sunuculardaki tekrarlayan görevleri otomatize etmenin en pratik yoludur. Yedekleme, log temizleme, toplu dosya işleme veya sunucu kurulumu gibi işlemleri bash script ile otomatize edebilirsiniz. Bu rehberde bash scripting'in temellerini öğreneceksiniz.

İlk Bash Script

Script Dosyası Oluşturma

nano ilk-script.sh

Script içeriği:

#!/bin/bash
# Bu bir yorum satırıdır
# Tarih: 2026

echo "Merhaba Dünya!"
echo "Bugünün tarihi: $(date)"
echo "Çalışan kullanıcı: $(whoami)"

Çalıştırma İzni ve Çalıştırma

chmod +x ilk-script.sh
./ilk-script.sh

Shebang Satırı

#!/bin/bash          # Bash ile çalıştır
#!/usr/bin/env bash  # PATH'ta bulunan bash ile çalıştır
#!/bin/sh            # POSIX shell ile (daha uyumlu ama daha az özellik)

Değişkenler

#!/bin/bash

# Değişken tanımlama (= etrafında boşluk OLMAMALI)
ISIM="Büyükweb"
YAS=5
SIMDIKI_DIZIN=$(pwd)   # Komut çıktısını değişkene ata

# Değişken kullanma
echo "Hoşgeldiniz, $ISIM!"
echo "Dizin: ${SIMDIKI_DIZIN}"   # Süslü parantez ile daha güvenli

# Sistem değişkenleri
echo "Kullanıcı: $USER"
echo "Ev dizini: $HOME"
echo "PATH: $PATH"

Komut Satırı Argümanları

#!/bin/bash

echo "Script adı: $0"
echo "Birinci argüman: $1"
echo "İkinci argüman: $2"
echo "Tüm argümanlar: $@"
echo "Argüman sayısı: $#"

# Kullanım
# ./script.sh argüman1 argüman2

Koşullu İfadeler

if-else

#!/bin/bash

SAYI=10

if [ $SAYI -gt 5 ]; then
  echo "Sayı 5'ten büyük"
elif [ $SAYI -eq 5 ]; then
  echo "Sayı 5'e eşit"
else
  echo "Sayı 5'ten küçük"
fi

Karşılaştırma Operatörleri

Operatör Anlam
-eq Eşit
-ne Eşit değil
-gt Büyüktür
-lt Küçüktür
-ge Büyük veya eşit
-le Küçük veya eşit

String karşılaştırma:

Operatör Anlam
= veya == Eşit
!= Eşit değil
-z Boş string
-n Boş olmayan string

Dosya Kontrolü

DOSYA="/etc/nginx/nginx.conf"

if [ -f "$DOSYA" ]; then
  echo "Dosya mevcut"
fi

if [ -d "/var/www" ]; then
  echo "Dizin mevcut"
fi

if [ -r "$DOSYA" ]; then
  echo "Dosya okunabilir"
fi

Dosya test operatörleri: -f (dosya), -d (dizin), -e (var mı), -r (okunabilir), -w (yazılabilir), -x (çalıştırılabilir)

Döngüler

for Döngüsü

#!/bin/bash

# Dizi üzerinde döngü
for ISIM in Ali Veli Ayşe; do
  echo "Merhaba, $ISIM!"
done

# Sayı aralığı
for i in {1..5}; do
  echo "Sayı: $i"
done

# C stili for döngüsü
for ((i=1; i<=10; i++)); do
  echo "$i"
done

# Dosyalar üzerinde döngü
for DOSYA in /var/log/*.log; do
  echo "Log dosyası: $DOSYA"
done

while Döngüsü

#!/bin/bash

SAYAC=1
while [ $SAYAC -le 5 ]; do
  echo "Sayaç: $SAYAC"
  ((SAYAC++))
done

# Dosyayı satır satır oku
while IFS= read -r SATIR; do
  echo "Satır: $SATIR"
done < /etc/hosts

Fonksiyonlar

#!/bin/bash

# Fonksiyon tanımlama
selamlama() {
  local ISIM=$1    # Lokal değişken
  echo "Merhaba, $ISIM!"
}

# Fonksiyon çağırma
selamlama "Dünya"
selamlama "Büyükweb"

# Değer döndüren fonksiyon
toplam() {
  local SONUC=$(($1 + $2))
  echo $SONUC    # Return değeri echo ile
}

SONUC=$(toplam 5 3)
echo "Toplam: $SONUC"

Hata Yönetimi

#!/bin/bash

# Script herhangi bir hata durumunda dur
set -e

# Tanımsız değişken kullanımını engelle
set -u

# Pipe hatalarını yakala
set -o pipefail

# Hata ayıklama modu (her komutu yazdır)
# set -x

# Hata kodu kontrol
komut || { echo "Komut başarısız oldu!"; exit 1; }

# Trap ile çıkışta temizlik
temizlik() {
  echo "Script sonlandırılıyor, temizlik yapılıyor..."
  rm -f /tmp/gecici-dosya.tmp
}
trap temizlik EXIT

Pratik Script Örneği: Otomatik Yedekleme

#!/bin/bash
# Otomatik yedekleme scripti

# Ayarlar
KAYNAK="/home/kullanici/public_html"
HEDEF="/home/kullanici/yedekler"
TARIH=$(date +%Y%m%d_%H%M%S)
YEDEK_ADI="yedek_${TARIH}.tar.gz"

# Hedef dizin yoksa oluştur
mkdir -p "$HEDEF"

# Yedek al
echo "Yedekleme başlıyor: $KAYNAK"
tar -czf "${HEDEF}/${YEDEK_ADI}" "$KAYNAK"

if [ $? -eq 0 ]; then
  echo "Yedekleme başarılı: ${HEDEF}/${YEDEK_ADI}"
else
  echo "HATA: Yedekleme başarısız!"
  exit 1
fi

# 7 günden eski yedekleri sil
find "$HEDEF" -name "yedek_*.tar.gz" -mtime +7 -delete
echo "Eski yedekler temizlendi."

Büyükweb VDS ile Bash Otomasyon

Büyükweb VDS sunucular ile root SSH erişimi alarak bash scriptlerinizi cron job olarak çalıştırabilirsiniz. Yedekleme, log rotasyon ve otomatik güncelleme scriptleri için ideal ortam sağlanmaktadır.

Sonuç

Bash scripting, Linux sunucu yönetiminde verimliliği büyük ölçüde artırır. Değişkenler, koşullar, döngüler ve fonksiyonlar ile karmaşık otomasyon scriptleri yazabilirsiniz. Otomatik yedekleme, servis izleme ve log yönetimi için bash scriptleri pratik ve güvenilir çözümler sunmaktadır.


Pratik Linux Komutlari

Dosya Yonetimi

find ile kriterlere gore arama yapin. du -sh ile dizin boyutu, ncdu ile interaktif analiz. locate ile hizli dosya bulma. rsync ile dosya senkronizasyonu.

Surec Yonetimi

ps aux ile surecleri goruntuleyin. kill -9 ile sonlandirin. nohup ile arka planda calistirin. screen/tmux ile coklu terminal. systemctl ile servis yonetimi.

Metin Isleme

grep -r ile arama, sed ile toplu degisiklik, awk ile sutun cikarma. jq ile JSON isleme. tail -f ile canli log takibi. wc ile satir/kelime sayma.

Ag Komutlari

ss -tulpn ile portlar, curl ile HTTP istekleri, mtr ile traceroute, tcpdump ile trafik yakalama. dig ile DNS sorgulari. wget ile dosya indirme.

Zamanlama

crontab -e ile zamanlanmis gorevler. Yedekleme, temizlik otomasyonu. systemd timer ile gelismis zamanlama.

Disk Yonetimi

df -h ile kullanim, lsblk ile diskler. LVM ile esnek yonetim. RAID yapilandirmasi.

Sik Sorulan Sorular

Nereden baslamaliyim?

Temel komutlar (ls, cd, cp, mv, rm), editior (nano/vim), izinler (chmod) ve paket yonetimi (apt/dnf) ile baslayin.

Bash script nasil yazilir?

#!/bin/bash ile baslayin. Degiskenler, kosullar, donguler ogrenin. chmod +x ile calistirin.

Sonuc

Linux komut satiri sunucu yonetiminin vazgecilmez aracidir. Pratik yaparak becerilerinizi gelistirin.

En Sik Kullanilan Linux Komutlari

Komut Aciklama Ornek
ls -la Detayli dosya listesi ls -la /var/www
grep -r Icerik arama grep -r "error" /var/log
find Dosya bulma find / -name "*.conf"
chmod Izin degistirme chmod 755 dosya.sh
chown Sahiplik degistirme chown www-data /var/www
systemctl Servis yonetimi systemctl restart nginx
journalctl Log goruntuleme journalctl -u nginx -f
df -h Disk kullanimi df -h /
free -m Bellek kullanimi free -m
ss -tulpn Ag baglantilari ss -tulpn

Shell Scripting Temelleri

Bash script ile tekrarli gorevleri otomatiklestirin:

Yedekleme Scripti

Otomatik yedekleme ile veritabani ve dosyalarinizi duzenli yedekleyin. mysqldump ile veritabani, tar ile dosya arsivi olusturun.

Disk Izleme

Disk kullanimini izleyen ve esik degerini astiginda bildirim gonderen script yazin.

Log Analiz

Apache/Nginx loglarini analiz ederek en cok ziyaret edilen sayfalar ve supheli IP adresleri raporlayan script olusturun.

Neden Buyukweb?

Buyukweb, 2009 yilindan bu yana Turkiye'nin guvenilir hosting firmasidir. Bursa Pendc Tier 3 veri merkezinde profesyonel barindirma hizmetleri sunmaktadir.

Teknik Altyapi Avantajlari

  • NVMe SSD Diskler: Geleneksel disklere gore 10x daha hizli okuma/yazma
  • LiteSpeed Web Server: Apache'ye kiyasla 10x performans artisi
  • CloudLinux Izolasyonu: Her hesap icin ayri kaynak limiti
  • Imunify360 Guvenlik: Otomatik malware tarama ve engelleme
  • DDoS Korumasi: L3, L4, L7 katmanlarinda kapsamli koruma

Musteri Memnuniyeti

5.200'den fazla aktif musteri ile %99.8 uptime garantisi sunuyoruz. 7/24 Turkce teknik destek ekibimiz tum sorulariniza hizla yanit verir. Ucretsiz site tasima hizmeti ile mevcut hosting saglayicinizdan kolayca gecis yapabilirsiniz.

Fiyat-Performans Dengesi

Rekabetci fiyatlarla profesyonel hosting altyapisi sunuyoruz. Yillik odemede ek indirimler, ucretsiz SSL sertifikasi ve gunluk otomatik yedekleme tum paketlerde standarttir.

Kolay Yonetim

cPanel ve Plesk kontrol panelleri ile web sitenizi, e-postalarinizi ve veritabaninizi tek panelden kolayca yonetin. Softaculous ile 400'den fazla uygulamayi tek tikla kurun.

Etiketler:

#bash#linux#komut satırı#terminal#sunucu yönetimi

Bu yazıyı paylaş