NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SR

Линук команде и вештине љуске

Басх скрипта: Од „ради на мојој кутији“ до продукције

Басх добија своје место када је задатак лепак: оркестрирајте команде, препирите једноставан текст и останите у потпуности на кутији. Његова репутација у индустрији потиче од слетања, а не од идеје: непроверени цевоводи се шаљу у црон на серверу где је једна варијабла поништена или једно име датотеке има размак. Дисциплина је механичка и јефтина, и састоји се од четири дела: строги режим, цитирање, провера љуске и евидентирање на начин на који ће је операције касније прочитати.

Кључне точке

  • Свака озбиљна скрипта се отвара са сет -еуо пипефаил: неподешене променљиве не успевају, грешке команде заустављају скрипту, цевовод лежи на површини; без тога, грешке нечујно пролазе док не дођу до производње.
  • Променљиве цитата и замене команди: "$вар" и "$(цмд)"; Подела речи на размацима је класик свих времена, а ИФС петљање које неки сајтови препоручују је грешка коју бирате да запамтите.
  • Проширење заграде се дешава пре променљивих: рм -рф "${ЦЛЕАНУП:?}"/{а,б} са ЦЛЕАНУП неподешеним се проширује другачије од предвиђеног и уклања ствари које сте намеравали да задржите; ${ВАР:?} провере су рм-безбедносни идиом који вреди једном научити.
  • схеллцхецк зарађује своје место на свакој промени: хвата глобусове без наводника, недоступни код и обрасце 'за ф у $(лс)' који једу имена датотека са размацима; покрените га у ЦИ и грешке престају да дођу до црона.
  • Привремени рад и чишћење су упарени: ТМП=$(мктемп -д), трап 'рм -рф "$ТМП"' ИЗЛАЗ, и нема напуштених директоријума за гребање плус нема 'иф еррор тхен ремове' прскања на сваку грану.
  • Реад петље на сигуран начин: док ИФС= реад -р -д '' ф рукује именима датотека са новим редовима и размацима преко финд -принт0; 'за ф у $(лс)' је заставице за проверу грешака и старе скрипте свуда још увек носе.
  • Излазни кодови и евиденције говоре о операцијама: неуспеси ехо-а на стдерр (>&2) са сценским именом, излаз различит од нуле у случају стварног неуспеха и нека црон-ова пошта или дневник покажу један ред који вам је заиста потребан у 3 сата ујутру.
  • Рано ескалирајте: ЈСОН рашчлањивање, три и више нивоа угнежђења, ХТТП позиви или било која логика која садржи стање припада Питхон-у или авк-у; басх нагнут у језик опште намене је место где је његова репутација зарађена.

Теренска биљешка

Наш ожиљак од проширења протеза: рм -рф "$__КТ_СЛОТ_0__"/{а,б} са поништеним ЦЛЕАНУП проширио се тачно онако како је љуска, а не намера, желела. Свака таква путања сада носи ${ВАР:?} чувара, и нико није платио тај рачун два пута. {CLEANUP}

Цесто постављања питања

#!/бин/басх или #!/уср/бин/енв басх?

енв побеђује у контејнерима и инсталацијама мацОС-а где басх живи негде другде; схебанг је мање важан од сет -еуо пипефаил је стварно присутан и схеллцхецк преноси сваку промену.

Моја скрипта ради ручно, али не успева у црон-у. Зашто?

Црон ради са голим окружењем: ПАТХ је кратак, нема профила за пријаву, а релативне путање указују на погрешну кућу. Користите апсолутне путање, експлицитно поставите ПАТХ и задржите басх -к реплаи за отклањање грешака.

Басх или Питхон за задатке сервера?

Басх за цевоводе који углавном оркестрирају постојеће системске алате и остају мали; Питхон за структуриране податке, АПИ-је и руковање грешкама које морају преживети на позив. Форсирање басха да игра Питхон је начин на који инциденти добијају имена.

Како да безбедно избришем скрипту?

Наведите сваку променљиву, циљајте само мктемп-произведене или експлицитно конфигурисане путање, покрените режим рада на суво који штампа оно што би уклонио, и пустите да ${ВАР:?} чува вето да поништи променљиве пре него што их рм види.

Како Kinetikatech помаже код линук команде и вештине љуске

Јскрено, већина тимова дође до нас након што су прво покушали сами: Команде и навике скриптовања које одлучују да ли администратор управља сервером или се бори против њега: претражују, трансформишу, преносе и надзиру текст и процесе помоћу алата који живе у свакој основној инсталацији. Наша услуга Linux Server Security и Server Management постоји да се не морате упознавати с линук команде и вештине љуске на тежи начин; ми се бринемо о пуштању у рад, надзору и изненађењима у три ујутро.

Разговарајте с инжењером

Проблем са сервером? Хакован сајт? Споро уцитавање?

Критицани проблеми ресени у 30 минута — нон-стоп, 7 дана у недељу.

Затразите хитну подрску support@kinetikatech.com