Автор темы
#1
awk ile yapılandırma yedeği alma
İlk olarak temel amaç nedir? Yapılandırma dosyaları genelde metin tabanlıdır ve satır satır anahtar-değer çiftleri veya belirli bir kurala göre düzenlenmiş bölümler içerir. awk bu tür dosyalarda belirli alanları aramak, filtrelemek ve yeniden biçimlendirmek için idealdir. Yedeği almak dediğimizde, ihtiyacınız olan şey şu olabilir:
Birden çok dosya için basit bir örnekle başlayalım. Diyelim ki /etc/myapp/config.conf dosyasında anahtar değer çiftleri var ve önemli ayarları yalnızca belirli bir kapsama altında yedeklemek istiyoruz. Aşağıdaki AWK komutu, sadece “enabled”, “path” ve “port” gibi belirli anahtarları içeren satırları çıkarır:
Bu temel teknikle şu noktaları akılda tutun:
Bir pratik senaryo: Nginix veya benzeri bir servisin konfigürasyonunda, belirli sürüm veya bölüm ayarlarını korumak için AWK ile satır bazında filtreleme yapılır. Ayrıca çıktı üzerinde basit yeniden biçimlendirme ile çıktı dosyasını orijinal formata yakın bir görünümde tutmak mümkündür. Örneğin, çıktı satırlarını “anahtar = değer” biçiminde elde etmek için uygun regex ile dönüşüm uygulanabilir.
Eğer kendi ortamınıza göre özelleştirilmiş bir örnek istiyorsanız, mevcut konfigürasyon dosyanızın yapısını kısa bir özetle paylaşın. Hangi anahtarlar yedeğe dahil olsun, hangi satırlar hariç tutulsun gibi bilgileri verdikçe size adımlı bir AWK planı ve güvenli restore kontrol listesini birlikte oluşturalım.
Bu konu, özellikle sunucu yöneticileri ve sistem entegratörleri için günlük iş akışında karşılaşılan basit ama etkili bir teknik üzerine. Amacımız, awk’nin gücünü kullanarak yapılandırma dosyalarından anlamlı ve yeniden kullanılabilir yedekler çıkarmak ve gerektiğinde bunları hızlıca restore etmek. Aşağıda adım adım yaklaşımı, örneklerle ve dikkat edilmesi gereken noktalarla ele alıyorum.
İlk olarak temel amaç nedir? Yapılandırma dosyaları genelde metin tabanlıdır ve satır satır anahtar-değer çiftleri veya belirli bir kurala göre düzenlenmiş bölümler içerir. awk bu tür dosyalarda belirli alanları aramak, filtrelemek ve yeniden biçimlendirmek için idealdir. Yedeği almak dediğimizde, ihtiyacınız olan şey şu olabilir:
- Belirli anahtar kelimeleri içeren satırları toplamak.
- Dosya içerisindeki bölümlere göre filtreleme yapmak (örneğin, [section] başlığı altında yer alan ayarları çıkarmak).
- Değişiklik izlerini koruyacak şekilde sade ve yeniden uygulanabilir bir çıktı üretmek.
Birden çok dosya için basit bir örnekle başlayalım. Diyelim ki /etc/myapp/config.conf dosyasında anahtar değer çiftleri var ve önemli ayarları yalnızca belirli bir kapsama altında yedeklemek istiyoruz. Aşağıdaki AWK komutu, sadece “enabled”, “path” ve “port” gibi belirli anahtarları içeren satırları çıkarır:
КОД
1awk '/^(enabled|path|port)\s*=/ {print}' /etc/myapp/config.conf > /backup/myapp_config_backup.confBu temel teknikle şu noktaları akılda tutun:
- Satır içindeki yorumu ve boşlukları temizlemek için satır başı ve bitiş kelimelerini dikkatle ele alın. Örneğin, yorum satırlarını dahil etmek veya hariç tutmak için ek filtreler ekleyebilirsiniz.
- Çok sayfalı veya çok bölümden oluşan yapılandırmalarda bölümleri ayırmak için durum makineleri kurabilir veya belirli başlıkları takip eden satırları çıkarmak için takım kuralları yazabilirsiniz.
- Restore işlemi için yedek dosyayı doğrudan mevcut dosyaya yazmadan önce doğrulama adımları ekleyin: satır sayısı kontrolü, beklenen anahtarların varlığı veya sürüm bilgisinin tutulması gibi.
Bir pratik senaryo: Nginix veya benzeri bir servisin konfigürasyonunda, belirli sürüm veya bölüm ayarlarını korumak için AWK ile satır bazında filtreleme yapılır. Ayrıca çıktı üzerinde basit yeniden biçimlendirme ile çıktı dosyasını orijinal formata yakın bir görünümde tutmak mümkündür. Örneğin, çıktı satırlarını “anahtar = değer” biçiminde elde etmek için uygun regex ile dönüşüm uygulanabilir.
Eğer kendi ortamınıza göre özelleştirilmiş bir örnek istiyorsanız, mevcut konfigürasyon dosyanızın yapısını kısa bir özetle paylaşın. Hangi anahtarlar yedeğe dahil olsun, hangi satırlar hariç tutulsun gibi bilgileri verdikçe size adımlı bir AWK planı ve güvenli restore kontrol listesini birlikte oluşturalım.
