Ders 7.1: Sağlam kabuk betikleri: güvenle başarısız ol
Yönetici betikleri root olarak, gözetimsiz, çoğu zaman cron'dan çalışır ve bash'in varsayılanları bağışlayıcıdır: tanımsız bir değişken boş bir dizgi olur, başarısız bir komut yok sayılır, bir boru hattındaki başarısız bir adım gizlenir. Birlikte küçük hataları silinmiş veriye dönüştürürler. Birkaç alışkanlık betiklerin güvenle başarısız olmasını sağlar: set -euo pipefail, zorunlu ayarlar için ${VAR:?}, tırnaklama, denetimli cd --, temizlik için trap ve iki kopyanın asla aynı anda çalışmaması için flock. Laboratuvarda yanlış dizindeki dosyaları silecek bir temizlik betiği buluyor, bunu bir izlemeyle kanıtlıyor ve onu güvenli bir sürümle değiştiriyorsun.
17 dk
Bu derste öğreneceklerin
- bash'in güvensiz varsayılanlarını açıklamak
- Bir betiği bash -x ile izlemek
- set -euo pipefail ve ${VAR:?} kullanmak
- trap ile temizlik yapmak
- flock ile çakışan çalıştırmaları önlemek
Temel terimler
- set -e / -u / -o pipefail
- Hatada dur / tanımsız değişkenleri hata say / herhangi bir parçası başarısız olursa boru hattını başarısız yap.
- ${VAR:?ileti}
- VAR'ı genişletir ya da tanımsız veya boşsa betiği iletiyle durdurur.
- trap
- Betik çıktığında ya da bir sinyal aldığında bir komut çalıştırır.
- flock
- Bir kilit dosyasını tutarken bir komut çalıştırır; -n başkası tutuyorsa vazgeçer.
- bash -x / bash -n
- Her komutu genişletmeden sonra izle / çalıştırmadan sözdizimini denetle.
← Parola değiştirmek · Tüm dersler · Paylaşımlı kitaplık ele geçirme →