Bash script, özellikle Linux ve UNIX tabanlı sistemlerde günlük yönetim ve otomasyon işlemlerini gerçekleştirmek için güçlü bir araçtır. Bu yazıda, Bash script kullanarak gerçekleştirebileceğiniz bazı pratik, gerçek hayat uygulamalarını ele alacağız. Bu script’ler, sistem yöneticileri ve geliştiriciler için zamandan tasarruf sağlamak, tekrarlayan işleri otomatikleştirmek ve iş süreçlerini basitleştirmek açısından oldukça faydalıdır.

1. Basit Bir Yedekleme Script’i Hazırlama

Verilerin yedeklenmesi, hem kişisel hem de kurumsal kullanıcılar için kritik bir süreçtir. Bash script, belirli dizinleri veya dosyaları düzenli olarak yedeklemek için kolay bir çözüm sunar. Aşağıda, belirli bir dizini sıkıştırarak bir yedekleme dosyasına kaydeden basit bir yedekleme script’i örneği yer almaktadır:

#!/bin/bash

# Yedeklenecek dizin ve yedekleme konumu
SOURCE_DIR="/home/kullanici/Belgeler"
BACKUP_DIR="/home/kullanici/Yedekler"
DATE=$(date +"%Y%m%d_%H%M%S")

# Yedekleme işlemi
tar -czf "$BACKUP_DIR/Belgeler_Yedek_$DATE.tar.gz" "$SOURCE_DIR"

echo "Yedekleme başarıyla tamamlandı: $BACKUP_DIR/Belgeler_Yedek_$DATE.tar.gz"

Bu script, belirttiğiniz kaynak dizini (/home/kullanici/Belgeler) sıkıştırarak zaman damgası eklenmiş bir dosya adıyla yedeklemekte ve bu dosyayı yedekleme konumuna (/home/kullanici/Yedekler) kaydetmektedir. Bu script’i cron aracı ile belirli aralıklarla çalıştırarak düzenli yedekleme otomasyonu sağlayabilirsiniz.

2. Log Dosyalarını Analiz Etme Script’i

Log dosyaları, sistem durumu ve olası hatalar hakkında bilgi sağlar. Bash script, bu log dosyalarını tarayıp belirli bir desen aramak için kullanılabilir. Aşağıda, /var/log dizininde belirli bir anahtar kelimeyi arayan basit bir script bulunmaktadır:

#!/bin/bash

# Aranacak kelime
KEYWORD="hata"
LOG_DIR="/var/log"

# Log dosyalarını tarama
grep -i "$KEYWORD" $LOG_DIR/*.log > /home/kullanici/hata_bilgileri.txt

echo "Log analizi tamamlandı. Bulunan hatalar /home/kullanici/hata_bilgileri.txt dosyasına kaydedildi."

Bu script, /var/log dizinindeki .log uzantılı dosyalar arasında “hata” kelimesini aramakta ve eşleşen tüm satırları bir dosyaya kaydetmektedir. Bu, sistem yöneticilerinin hızlı bir şekilde hata kayıtlarını bulmasına ve analiz etmesine yardımcı olur.

3. Sistem Bilgilerini Toplama ve Raporlama Script’i

Sistemle ilgili bilgilerin bir araya getirilip raporlanması, sistem durumunu analiz etmek veya düzenli denetimler yapmak için oldukça faydalıdır. Bash script, CPU kullanımı, bellek durumu, disk kullanımı gibi bilgileri toplayabilir ve bunları bir rapor olarak sunabilir:

#!/bin/bash

# Sistem bilgilerini toplama
HOSTNAME=$(hostname)
DATE=$(date +"%Y-%m-%d %H:%M:%S")
UPTIME=$(uptime -p)
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.2f", $3*100/$2 }')
DISK_USAGE=$(df -h | awk '$NF=="/"{printf "%s", $5}')

# Rapor oluşturma
echo "Sistem Bilgileri - $DATE" > /home/kullanici/sistem_raporu.txt
echo "Hostname: $HOSTNAME" >> /home/kullanici/sistem_raporu.txt
echo "Uptime: $UPTIME" >> /home/kullanici/sistem_raporu.txt
echo "CPU Kullanımı: $CPU_USAGE%" >> /home/kullanici/sistem_raporu.txt
echo "Bellek Kullanımı: $MEMORY_USAGE%" >> /home/kullanici/sistem_raporu.txt
echo "Disk Kullanımı: $DISK_USAGE" >> /home/kullanici/sistem_raporu.txt

echo "Sistem raporu oluşturuldu: /home/kullanici/sistem_raporu.txt"

Bu script, mevcut sistem durumu ile ilgili temel bilgileri toplayarak bir metin dosyasına kaydetmektedir. Sistem yöneticileri bu raporu düzenli aralıklarla oluşturup performans veya kapasiteyle ilgili proaktif önlemler alabilirler.

4. Otomatik Güncelleme ve Bakım Script’i

Linux sunucularının güncellenmesi ve belirli bakım işlemlerinin gerçekleştirilmesi sıkıcı ve zaman alıcı olabilir. Bash script, bu işlemleri otomatik hale getirerek büyük kolaylık sağlar:

#!/bin/bash

# Güncelleme ve temizleme işlemleri
echo "Sistem güncellemeleri kontrol ediliyor..."
sudo apt update && sudo apt upgrade -y

echo "Gereksiz paketler temizleniyor..."
sudo apt autoremove -y

echo "Sistem bakımı başarıyla tamamlandı."

Bu script, sunucu üzerindeki tüm paketlerin güncel olmasını sağlamakta ve kullanılmayan paketleri temizlemektedir. cron aracıyla haftada bir çalıştırılarak sunucunun her zaman güncel kalması sağlanabilir.

5. Basit Bir Dosya Senkronizasyon Script’i (rsync kullanımı)

Dosya senkronizasyonu, özellikle verilerin birden fazla lokasyon arasında eşitlenmesi gerektiğinde önemlidir. rsync komutunu kullanarak, belirli bir dizindeki dosyaları başka bir sunucuya veya yedekleme lokasyonuna senkronize edebilirsiniz:

#!/bin/bash

SOURCE_DIR="/home/kullanici/Belgeler"
DESTINATION_DIR="/mnt/yedekleme"
LOG_FILE="/home/kullanici/rsync_log.txt"

# rsync komutu ile senkronizasyon
rsync -avh --delete "$SOURCE_DIR" "$DESTINATION_DIR" > "$LOG_FILE" 2>&1

echo "Dosyalar başarıyla senkronize edildi. Log: $LOG_FILE"

Bu script, SOURCE_DIR dizinindeki tüm dosyaları DESTINATION_DIR dizini ile senkronize eder. --delete bayrağı, kaynakta silinmiş dosyaları hedeften de silerek her iki tarafın senkronize olmasını sağlar.

6. Basit Bir CI/CD Pipeline Oluşturma

Geliştirme ortamlarında sürekli entegrasyon/sürekli dağıtım (CI/CD) işlemleri için Bash script’ler kullanılabilir. Aşağıdaki script, bir uygulamayı derleyip test ettikten sonra sonuçlara göre dağıtım yapılmasını sağlar:

#!/bin/bash

# Kodları çekme
echo "Kod deposundan en son değişiklikler alınıyor..."
git pull origin main

# Uygulamayı derleme
echo "Uygulama derleniyor..."
make

# Testleri çalıştırma
echo "Testler çalıştırılıyor..."
if make test; then
    echo "Testler başarılı. Uygulama dağıtılıyor..."
    # Dağıtım komutları
    sudo systemctl restart uygulama_servisi
else
    echo "Testler başarısız! Dağıtım iptal edildi."
    exit 1
fi

Bu script, kodları depodan çekip derledikten sonra testleri çalıştırmakta ve testlerin başarılı olması durumunda uygulamayı yeniden başlatmaktadır. Bu sayede basit bir CI/CD süreci otomatik hale getirilir.

Bash script kullanarak çeşitli gerçek dünya uygulamaları geliştirmek mümkündür. Yedekleme, log analizi, sistem durumu raporlama, güncelleme, dosya senkronizasyonu ve CI/CD gibi birçok iş, Bash ile otomatik hale getirilerek zamandan tasarruf edilebilir ve insan hatası minimize edilebilir. Bu örnekler, Bash script’lerinin sistem yönetimi ve günlük iş akışları üzerindeki potansiyelini gözler önüne sermektedir.

Eğer sistem yönetimi ya da belirli iş süreçlerini otomatikleştirmek istiyorsanız, Bash script yazma becerisi büyük bir avantaj sağlar. Yukarıdaki örnekler, bu tür işleri nasıl daha verimli hale getirebileceğiniz konusunda size yardımcı olabilir.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme