Линук команде и вештине љуске
Басх скрипта: Од „ради на мојој кутији“ до продукције
Басх добија своје место када је задатак лепак: оркестрирајте команде, препирите једноставан текст и останите у потпуности на кутији. Његова репутација у индустрији потиче од слетања, а не од идеје: непроверени цевоводи се шаљу у црон на серверу где је једна варијабла поништена или једно име датотеке има размак. Дисциплина је механичка и јефтина, и састоји се од четири дела: строги режим, цитирање, провера љуске и евидентирање на начин на који ће је операције касније прочитати.
Кључне точке
- Свака озбиљна скрипта се отвара са сет -еуо пипефаил: неподешене променљиве не успевају, грешке команде заустављају скрипту, цевовод лежи на површини; без тога, грешке нечујно пролазе док не дођу до производње.
- Променљиве цитата и замене команди: "$вар" и "$(цмд)"; Подела речи на размацима је класик свих времена, а ИФС петљање које неки сајтови препоручују је грешка коју бирате да запамтите.
- Проширење заграде се дешава пре променљивих: рм -рф "${ЦЛЕАНУП:?}"/{а,б} са ЦЛЕАНУП неподешеним се проширује другачије од предвиђеног и уклања ствари које сте намеравали да задржите; ${ВАР:?} провере су рм-безбедносни идиом који вреди једном научити.
- схеллцхецк зарађује своје место на свакој промени: хвата глобусове без наводника, недоступни код и обрасце 'за ф у $(лс)' који једу имена датотека са размацима; покрените га у ЦИ и грешке престају да дођу до црона.
- Привремени рад и чишћење су упарени: ТМП=$(мктемп -д), трап 'рм -рф "$ТМП"' ИЗЛАЗ, и нема напуштених директоријума за гребање плус нема 'иф еррор тхен ремове' прскања на сваку грану.
- Реад петље на сигуран начин: док ИФС= реад -р -д '' ф рукује именима датотека са новим редовима и размацима преко финд -принт0; 'за ф у $(лс)' је заставице за проверу грешака и старе скрипте свуда још увек носе.
- Излазни кодови и евиденције говоре о операцијама: неуспеси ехо-а на стдерр (>&2) са сценским именом, излаз различит од нуле у случају стварног неуспеха и нека црон-ова пошта или дневник покажу један ред који вам је заиста потребан у 3 сата ујутру.
- Рано ескалирајте: ЈСОН рашчлањивање, три и више нивоа угнежђења, ХТТП позиви или било која логика која садржи стање припада Питхон-у или авк-у; басх нагнут у језик опште намене је место где је његова репутација зарађена.
Теренска биљешка
Наш ожиљак од проширења протеза: рм -рф "$__КТ_СЛОТ_0__"/{а,б} са поништеним ЦЛЕАНУП проширио се тачно онако како је љуска, а не намера, желела. Свака таква путања сада носи ${ВАР:?} чувара, и нико није платио тај рачун два пута. {CLEANUP}
Цесто постављања питања
#!/бин/басх или #!/уср/бин/енв басх?
енв побеђује у контејнерима и инсталацијама мацОС-а где басх живи негде другде; схебанг је мање важан од сет -еуо пипефаил је стварно присутан и схеллцхецк преноси сваку промену.
Моја скрипта ради ручно, али не успева у црон-у. Зашто?
Црон ради са голим окружењем: ПАТХ је кратак, нема профила за пријаву, а релативне путање указују на погрешну кућу. Користите апсолутне путање, експлицитно поставите ПАТХ и задржите басх -к реплаи за отклањање грешака.
Басх или Питхон за задатке сервера?
Басх за цевоводе који углавном оркестрирају постојеће системске алате и остају мали; Питхон за структуриране податке, АПИ-је и руковање грешкама које морају преживети на позив. Форсирање басха да игра Питхон је начин на који инциденти добијају имена.
Како да безбедно избришем скрипту?
Наведите сваку променљиву, циљајте само мктемп-произведене или експлицитно конфигурисане путање, покрените режим рада на суво који штампа оно што би уклонио, и пустите да ${ВАР:?} чува вето да поништи променљиве пре него што их рм види.
Како Kinetikatech помаже код линук команде и вештине љуске
Јскрено, већина тимова дође до нас након што су прво покушали сами: Команде и навике скриптовања које одлучују да ли администратор управља сервером или се бори против њега: претражују, трансформишу, преносе и надзиру текст и процесе помоћу алата који живе у свакој основној инсталацији. Наша услуга Linux Server Security и Server Management постоји да се не морате упознавати с линук команде и вештине љуске на тежи начин; ми се бринемо о пуштању у рад, надзору и изненађењима у три ујутро.