Linux komandos ir apvalkalo įgūdžiai
rasti: „Linux“ paieška, kuri daro viską
find yra pati pavojingiausia komanda gamybos serveryje, ir būtent todėl ji nusipelno meistriškumo. Jis išvardija, filtruoja ir vykdo vienoje išraiškoje, o kiekvienas klasikinis „/var here be dragons“ įvykis atkreipia dėmesį į peržiūrą, kurią kažkas praleido. Įpročiai yra mechaniniai: pirmiausia eikite su -print arba -ls, sugrupuokite su -exec ... +, per -print0 nukreipkite į xargs -0 ir traktuokite -delete kaip antrojo leidimo sprendimą, o ne pirmąjį juodraštį.
Pagrindiniai punktai
- Filtruokite pagal metaduomenis, o ne tik pavadinimą: -type f, -mtime +30, -size +100M ir -perm -o+w suraskite nelyginius failus, kurių pavadinimų sutartys ir amžiaus ataskaitos nepatenka.
- Peržiūrėkite kiekvieną destruktyvią užklausą: pirmiausia suraskite /var/www/uploads -name 'core.*' -ls, pakeiskite -ls į -delete tik tada, kai iš tikrųjų perskaitysite sąrašą; peržiūra yra saugos patikrinimas, o ne pasiūlymas.
- -exec cmd {} + sugrupuoja failus į keletą iškvietimų ir įveikia \; formuoti ant didelių medžių; ta pati sintaksė įgalina „kiekvieną atitinkantį failą viename procese“ be argumentų sąrašo per ilgas klaidos.
- Nulinė saugi išvestis pagal numatytuosius nustatymus: suraskite . -pavadinimas '*.senas' -print0 | xargs -0 rm -v; plain pipes into xargs yra žinomas duomenų praradimo modelis tą dieną, kai failo pavadinime yra tarpas.
- -xdev ir -maxdepth išlaiko sąžiningumą: jie nustoja sekti jungtis ir momentines nuotraukas, o tai išsaugo vykdymo laiką ir jūsų prielaidas apie „šį katalogą“.
- Laiko langai yra tikslūs, jei tiksliai klausiama: -mmin -1440 už paskutines 24 valandas, -newermt '2026-01-01' nuo datos, ir atminkite, kad -xtime reiškia "n visas 24 valandų laikotarpiai prieš" prieš cituodami jį biliete.
- Genėti sąmoningai: rasti . -path '*/node_modules' -prune -o -name '*.js' -print praleidžia vieną katalogą, kuris kitu atveju dydžiu ir laiku nusveria likusį medį.
- Tikėtis nulinių išėjimų neįskaitomuose kataloguose; stderr eilutės, pvz., „Leidimas uždraustas“, yra praleisti failai, o ne duomenys, todėl scenarijai arba toleruoja radimo išėjimo būseną, arba aiškiai ją tikrina, o ne prisiima švarius veiksmus.
Pastaba iš praktikos
Mūsų blogiausia radinio – ištrynimo istorija prasidėjo nuo necituojamo pavadinimo modelio, kurio antrasis apvalkalas išsiplėtė į tris žodžius prieš radinį. Nuo to laiko taisyklė yra paprasta: -print first, katuoti visada ir -delete niekada nevykdo komandos, kai ji paleidžiama pirmą kartą.
Dažniausiai užduodami klausimai
Mano radinys rado failus, bet pasroviui skirta komanda nieko nepadarė. Kodėl?
Beveik visada cituojama arba tuščia įvestis: šablonas buvo išplėstas apvalkalu, kol radinys jo nepamatė, arba xargs nieko negavo. Pažymėkite raštus ir kiekvieną kartą suporuokite -print0 su xargs -0.
-ištrinti ar rm po radimo?
-ištrynimas yra tiesioginis, greitas ir negailestingas; jis negali būti maišomas su -exec toje pačioje išraiškoje. Pirmiausia paleiskite atitikimo -print ir perskaitykite; tai yra visa disciplina.
Kodėl sistemos kataloguose randama spausdinimo leidimo klaidų?
Komponentai, kurių negalite nuskaityti spausdinimo klaidų į stderr ir padaryti, kad paieškos išėjimas nebūtų lygus nuliui; filtruokite naudodami 2>/dev/null, kad būtų interaktyvus patogumas, ir niekada neaiškinkite tų klaidų kaip failų nebuvimo.
Skirtumas tarp -mtime ir vėl -ctime?
-mtime yra turinio keitimas, -ctime yra metaduomenų keitimas (leidimai, pervardijimas, standžiųjų nuorodų skaičius); chown arba judesys sumuša ctime neliečiant mtime, o tai supainioja lygiai vieną ataskaitą per ketvirtį.
Kaip Kinetikatech padeda su linux komandos ir apvalkalo įgūdžiai
Jums nereikia tapti linux komandos ir apvalkalo įgūdžiai ekspertu: Komandos ir scenarijų rašymo įpročiai, kurie nusprendžia, ar administratorius valdo serverį, ar su juo kovoja: ieškokite, transformuokite, perkelkite ir prižiūrėkite tekstą bei procesus naudodami įrankius, esančius kiekviename baziniame diegime. Būtent tam ir skirta Linux serverių sauga ir Serverių administravimas: paleidimas, sutvirtinimas, stebėjimas ir budintis žmogus dieną ir naktį.