- Bash komut dosyalarının kullanımı, metin dosyalarındaki komutların ardışık olarak yürütülmesi yoluyla sistem yönetiminin optimize edilmesini sağlar.
- Bash'in çok yönlülüğü, kullanıcıları yönetmeyi, planlı yedeklemeler oluşturmayı ve sistem kaynaklarını izlemeyi kolaylaştırır.
- Kontrol yapıları, değişkenler ve yürütme izinlerinin uygulanması, sağlam otomasyon araçları geliştirmek için temel öneme sahiptir.
Bir sistem yöneticisi olarak günlük işinizin, yanınızda bulaşık makinesi varken elle bulaşık yıkamaya mahkum edilmiş gibi, konsolda aynı komutları tekrar tekrar yazmaktan ibaret olduğunu hayal edin. Süreç otomasyonu, sıkıcı işleri makineye devretmemizi, insan hatasını önemli ölçüde azaltmamızı ve daha yaratıcı veya karmaşık görevler için zaman ayırmamızı sağlayan araçtır.
Bunu başarmak için Bash betikleme ideal çözümdür. Esasen, işletim sisteminin sırayla yürüttüğü bir dizi talimatı düz metin dosyasına yazmayı içerir; bu da metin düzenleme becerisine sahip herkesin sunucu yönetimini optimize etmesine ve Linux ortamının genel verimliliğini artırmasına olanak tanır.
Bash betiği tam olarak nedir?
Bash'ten bahsettiğimizde, kastettiğimiz şey şudur: Bourne Yeniden KabukBetik dosyası, kullanıcı ile işletim sistemi çekirdeği arasında köprü görevi gören bir komut yorumlayıcısıdır. Bu nedenle, betik dosyası .script uzantılı bir dosyadır. .sh Bu, kabuğun sırayla işlediği komutların bir listesini içerir. Özünde, malzemelerin terminal komutları olduğu ve sonucun da bir yemek tarifi olduğu bir yapıya sahiptir. İnsan müdahalesi olmadan otomatikleştirilmiş görev.
Tarihsel olarak, bu otomasyon yeteneği 70'lerden beri Unix sistemlerinde zaten mevcuttu, ancak 1989'da Bash'in ortaya çıkmasıyla süreç çok daha erişilebilir hale geldi. Bugün, Linux dağıtımlarının büyük çoğunluğu bu yorumlayıcıyı kullanıyor; bu da bugün yazılan bir betiğin esnek ve farklı ortamlara uyarlanabilir olmasını , hatta uyumlu bir terminal mevcutsa Mac veya Windows'ta bile çalışmasını sağlıyor.
İlk senaryonuzu oluşturmak için temel prensipler
Programlamaya başlamak için ilk adım, düz metin dosyası oluşturmaktır. Bunun için basit editörler kullanabilirsiniz, örneğin: Nano, Vim veya EmacsDosyanın ilk satırının şu şekilde adlandırılması şarttır: mesele: #!/bin/bashBu satır, sistemin bundan sonra gelen kodu çalıştırmak için Bash yorumlayıcısını kullanmasını söyler.
Temel kavramlardan biri değişken yönetimidir. Bash'te veri türünü belirtmenize gerek yoktur; sadece eşittir işaretini kullanarak bir ad ve değer atarsınız ve şunlardan emin olursunuz: Değişken ile işaret arasında boşluk bırakmayın.Bu verileri daha sonra çağırmak veya okumak için, başına dolar işareti ($) koymanız yeterlidir.$Örneğin, bir karşılama değişkeni tanımlarsanız, sistem bu metni hatırlayacak ve her çağırdığınızda görüntüleyecektir.

Akış kontrolü ve veri girişi
Bir senaryonun zeki olması için kararlar alması gerekir. İşte burada devreye... if-else gibi kontrol yapılarıBu, belirli eylemlerin yalnızca belirli bir koşul karşılandığında gerçekleştirilmesine olanak tanır. Benzer şekilde, döngüler for y while Bunlar, kullanıcı adları dizisi veya sunucu listesi gibi öğe listelerinde gezinmek için gereklidir ve tek bir komutun gerektiği kadar tekrarlanmasına olanak tanır.
Komut dosyasını etkileşimli hale getirmek için şu komutu kullanıyoruz: readsağlayan kullanıcı girdisini yakala Klavyeyle girip bir değişkene kaydedebilirsiniz. Öte yandan, komut echo Ekran üzerinde bilgi görüntüleme standardıdır, süreci yürüten kişiyle iletişimi kolaylaştırır ve kod hata ayıklama aşamasında büyük ölçüde yardımcı olur.
İzin yönetimi ve yürütülmesi
Yeni başlayanlar arasında çok sık yapılan bir hata, bir komut dosyasını çalıştırmaya çalışmak ve sistemin bunu yapma iznine sahip olmadığını keşfetmektir. Bunu düzeltmek için şu komutu kullanmamız gerekiyor: chmod +x Dosya adının ardından gelir. Bu, şunu ekler: yürütme izniBu sayede dosya basit bir metin dosyasından çalıştırılabilir bir programa dönüşebiliyor.
Komut dosyasını çalıştırmak için göreceli yolu kullanabiliriz. ./mi_script.sh veya doğrudan şu şekilde çağırın: bash nombre_del_archivo.shİş akışı optimize edildikten sonra bu dosyalar en önemli dosyalar haline geleceğinden, tüm komut dosyalarının belirli bir klasörde düzenlenmesi önerilir. sistem yöneticisinin kurtuluşu acil durumlarda.
Otomasyon için temel komutlar
Bash'in gerçek gücü, dahili ve harici komutların entegrasyonunda yatmaktadır. Gezinme ve dosya yönetimi için, klasik komutlara güveniyoruz, örneğin... cd, ls, cp y mvAncak asıl sihir, metin düzenleme araçlarını kullandığımızda gerçekleşiyor, örneğin... grep, awk, sed ve cutBu özellikler, günlükleri filtrelemenize, yapılandırma dosyalarında belirli kalıpları aramanıza veya bir veritabanından kesin verileri çıkarmanıza olanak tanır.
Sistem yönetimiyle ilgili olarak, aşağıdaki gibi komutlar yer almaktadır: top, ps y systemctl Süreçleri ve hizmetleri yönetmek için hayati öneme sahipler. Otomasyonu bir üst seviyeye taşımak istiyorsak, ağlarla etkileşim kurabiliriz. ssh o scpBu sayede örneğin uzak sunucularda komutlar çalıştırabiliyoruz veya yedeklemeleri aktar Tamamen otomatik bir şekilde harici bir makineye.
Gelişmiş otomasyonun pratik örnekleri
En sıkıcı işlerden biri de toplu hesap oluşturmaktır. Bunun yerine, adduser Tek tek, isim listesini alan ve kullanan bir komut dosyası oluşturabiliriz. useradd ile birlikte chpasswd paragraf birden fazla kullanıcı ve grup yapılandırın Hepsi birden. Bu, özellikle yeni ekipler için çalışma ortamları oluştururken çok kullanışlıdır.
Bir diğer klasik örnek ise yedekleme yönetimidir. Sıkıştırılmış dosyalar oluşturan bir komut dosyası programlayabiliriz. tar kritik dizinler gibi /etc o /homeBunlara otomatik olarak bir tarih atar ve uzak bir sunucuya gönderir. İnsan müdahalesine gerek kalmaması için aşağıdaki yöntem kullanılır: cron görev zamanlayıcısıYedekleme işleminin, örneğin, her gece saat 3:00'te çalışmasına izin vermek.
Son olarak, kaynak izleme çok önemlidir. Bunu birleştirerek df -h y awkDisk alanını izleyen ve kullanım kritik bir yüzdeyi (örneğin %90) aşarsa, aşağıdaki işlemleri gerçekleştiren bir komut dosyası oluşturmak mümkündür: otomatik olarak bir uyarı e-postası gönder Bu sayede, depolama alanı yetersizliği nedeniyle sistemin çökmesi önlenmiş olur ve bu durum yöneticiye iletilir.
Bu araçlara hakim olmak, sunucu yönetimini manuel ve hataya açık bir görevden sorunsuz ve profesyonel bir sürece dönüştürür. SSH aracılığıyla yüzlerce makinedeki kullanıcıları yönetmekten donanım sağlığını sürekli olarak izlemeye kadar, Bash betikleme, herhangi bir GNU/Linux ortamında verimliliğin temelini oluşturur.
