
Unë jam administrator sistemi në FirstVDS, dhe ky është teksti i ligjëratës së parë hyrëse nga kursi im i shkurtër për ndihmën e kolegëve të rinj. Specialistët që sapo kanë filluar të merren me administrimin e sistemeve përballen me një sërë problemesh të ngjashme. Për të ofruar zgjidhje, morëm përsipër të shkruaj këtë cikël ligjëratash. Disa gjëra në të janë specifike për mbështetje teknike të hostimit, por në përgjithësi, mund të jenë të dobishme, nëse jo për të gjithë, atëherë për shumë. Prandaj, kam adaptuar tekstin e ligjëratës për ta ndarë këtu.
Nuk ka rëndësi se si quhet pozita juaj — ajo që është e rëndësishme është se ju realisht merresh me administrimin. Prandaj, le të fillojmë me atë se çfarë duhet të bëjë një administrator sistemi. Detyra kryesore e tij është të rregullojë, të mbajë rendin dhe të përgatisë për rritjet e ardhshme të rendit. Pa një administrator sistemi, serveri fillon të jetë në kaos. Log-et nuk shkruhen, ose në to shkruhet diçka jo e duhur, burimet shpërndahen në mënyrë jo optimale, disku mbushet me mbetje të ndryshme dhe sistemi fillon të ngadalësohet për shkak të kaosit të tillë. Qetësohuni! Administratorët e sistemeve si ju fillojnë të zgjidhin problemet dhe të eliminojnë kaosin!
Stolat e administratës së sistemeve
Megjithatë, përpara se të filloni të zgjidhni probleme, është e udhës të njihemi me katër stolat kryesorë të administratës:
- Dokumentacioni
- Shabllonizimi
- Optimizimi
- Automatizimi
Kjo është baza e të gjitha. Nëse nuk e ndërtoni procesin tuaj të punës mbi këto principe, ai do të jetë joefikas, jo produktiv dhe në përgjithësi pak i ngjashëm me administrimin e vërtetë. Le të shqyrtojmë secilin veç e veç.
Dokumentacioni
Dokumentacioni nënkupton jo vetëm leximin e dokumentacionit (edhe pse pa këtë s'ke ku shkon), por edhe mbajtjen e tij.
Si të mbani dokumentacion:
- U përballët me një problem të ri që nuk keni parë kurrë më parë? Shënoni simptomat kryesore, metodat e diagnozës dhe principet e zgjidhjes.
- Keni gjetur një zgjidhje elegante për një problem të zakonshëm? Shënoni atë, në mënyrë që të mos e shpikni përsëri pas një muaji.
- I dikush ju ndihmoi të kuptoni një çështje në të cilën nuk kishit asnjë informacion? Shënoni tezat dhe konceptet kryesore, vizatoni një skemë për vete.
Ideja kryesore: nuk duhet të besoni plotësisht në memorien tuaj gjatë përvetësimit dhe aplikimit të të rejave.
Në cilin format do ta bëni këtë, varet vetëm nga ju: mund të jetë një sistem shënimesh, blogu personal, skedari tekstual, ose një bllok fizik. E rëndësishme është që shënimet tuaja të përmbushin kërkesat e mëposhtme:
- Të mos jenë tepër të gjata. Shpjegoni idetë, metodat dhe mjetet kryesore. Nëse kuptimi i problemit kërkon të thelloheni në mekanikën e ulët të punës së përzgjedhjes së memories në Linux, mos e shkruani përsëri artikullin nga i cili e mësuat këtë — përcjellni një lidhje për të.
- Shënimet duhet të jenë të kuptueshme për ju. Nëse rreshti
race cond.lockupnuk ju lejon të kuptoni menjëherë se çfarë keni përshkruar me këtë rresht — shpjegoni. Në një dokumentacion të mirë, nuk duhet të kaloni gjysmë ore për të kuptuar. - Kërkimi është një veçori e shkëlqyer. Nëse mbani shënime në blog, shtoni etiketa; nëse e bëni këtë në një notebook fizik — ngjisni post-it të vegjël me përshkrime. Nuk ka kuptim të keni dokumentacion, nëse shpenzoni njësoj kohë për të gjetur përgjigje në të, sa do të kishit shpenzuar për të zgjidhur problemin nga e para.

Kështu mund të duket dokumentacioni: nga shënimet primitive në notebook (imazhi më sipër), deri në një bazë të plotë njohurish shumëpërdoruesi me etiketa, kërkim dhe të gjitha rehati të mundshme (më poshtë).

Jo vetëm që nuk do t’ju duhet të kërkoni të njëjtat përgjigje dy herë: dokumentimi do të jetë një ndihmë e shkëlqyer në studimin e temave të reja (shënimet, apo jo!), do të përmirësojë intuiten tuaj për zgjidhjen e problemeve (aftësia për të diagnostikuar një problem të komplikuar, duke parë vetëm sipërfaqësisht), dhe do të sjellë më shumë organizim në veprimet tuaja. Nëse dokumentacioni do të jetë i aksesueshëm për kolegët tuaj, do t'u ndihmojë ata të kuptojnë se çfarë dhe si keni bërë, kur nuk do të jeni në vend.
Shabllonizimi
Shabllonizimi — është krijimi dhe përdorimi i shablloneve. Për të zgjidhur shumicën e problemeve tipike, është mirë të krijoni një shabllon të caktuar veprimi. Për diagnozën e shumicës së problemeve, duhet përdorur një sekuencë veprimesh të standardizuara. Kur riparoni/instaloni/optmizoni diçka, duhet ta kontrolloni funksionalitetin e saj përmes listave kontrolluese të standardizuara.
Shabllonizimi është mënyra më e mirë për organizimin e procesit të punës. Duke përdorur procedura tipike për të zgjidhur problemet më të zakonshme, ju merrni shumë gjëra të shkëlqyera. Për shembull, përdorimi i listave kontrolluese do t'ju lejojë të diagnostikoni të gjitha funksionet e rëndësishme për punë dhe të përjashtoni diagnozën e funksionaliteteve të pakësuara. Procedurat e standardizuara do të minimizojnë ngatërrimet e panevojshme dhe do të ulin gjasat për gabime.
Një aspekt i rëndësishëm është se procedurat dhe listat e kontrollit gjithashtu duhet të dokumentohen. Nëse besoni thjesht në memorizim, mund të humbni ndonjë kontroll apo operacion realisht të rëndësishëm dhe gjithçka do të prishet. Një tjetër pikë e rëndësishme është se të gjitha praktikat standarde mund dhe duhet të modifikohen nëse situata e kërkon. Nuk ka modele perfekte dhe plotësisht universale. Nëse ka një problem dhe kontrolli standard nuk e ka zbuluar atë, kjo nuk do të thotë që problemi nuk ekziston. Megjithatë, para se të angazhoheni në kontrollimin e ndonjë problemi hipotetik që ndodh rrallë, gjithmonë është e mençur të bëni fillimisht një kontroll të shpejtë standard.
Optimizimi
Optimizimi flet vetë. Procesi i punës duhet të optimizohet në maksimum në aspektin e kohës dhe burimeve të punës. Ka një shumëllojshmëri të pafundme opsionesh: mësoni çelësat e shpejtësisë, shkurtesat, shprehjet e rregullta, mjetet në dispozicion. Kërkoni mënyra për përdorimin më praktik të këtyre mjeteve. Nëse e calloni komandën 100 herë në ditë, caktoni një shkurtesë në tastierë për të. Nëse duhet të lidheni me të njëjtat serverë në mënyrë të rregullt, shkruani një alias me një fjalë që do t'ju lidhë atje:

Shikoni opsionet e ndryshme të mjeteve të disponueshme - ndoshta ka një klient terminal më të përshtatshëm, DE, menaxher të kopjimit, shfletues, klient e-maili, sistem operativ. Zbuloni se cilët mjete përdorin kolegët dhe miqtë tuaj - ndoshta ata i zgjedhin për një arsye. Pasi të keni përzgjedhur mjetet, mësoni si t'i përdorni ato: mësoni çelësat, shkurtoret, këshillat dhe truket.
Shfrytëzoni në mënyrë optimale mjetet standarde - coreutils, vim, shprehjet e rregullta, bash. Për tre të fundit ka një mori udhëzuesish dhe dokumentacionesh të shkëlqyera. Me ndihmën e tyre, mund të kaloni mjaft shpejt nga gjendja "ndjehem si majmuni që po thyen arrat me një laptop" në "jam një majmun që përdor laptopin për të porositur një thikë arrash."
Automatizimi
Automatizimi do të transferojë operacionet e rënda nga duar të lodhura në duar të palodhur të automatikës. Nëse ndonjë procedurë standarde kryhet me pesë komanda të njëjta, pse mos t'i mbështjellim të gjitha këto komanda në një skedar dhe të thërrasim një komandë që e ngarkon dhe e ekzekuton atë skedar?
Automatizimi përbëhet në 80% nga krijimi dhe optimizimi i mjeteve tuaja (dhe 20% përpjekjeve për t'i bërë ato të funksionojnë siç duhet). Kjo mund të jetë një njësi avancuar ose një mjet i madh dhe të fuqishëm me ndërfaqe web dhe API. Kritere kryesore këtu është që krijimi i mjeteve të mos kërkojë më shumë kohë dhe përpjekje sesa sa kohe dhe përpjekje do të kurseni me atë mjet. Nëse kaloni pesë orë për të shkruar një skript që nuk do t'ju nevojitet kurrë më, për një detyrë që pa skripti do t'ju kishte marrë një ose dy orë, kjo është një optimizim shumë i dobët i procesit të punës. Mund të investoni pesë orë në krijimin e një mjeti vetëm nëse sasia, tipi i detyrave dhe koha e lejojnë, gjë që ndodh rrallë.
Automatizimi nuk nënkupton domosdoshmërisht shkruajtjen e skripteve të plota. Për shembull, për të krijuar një mori objektesh të ngjashme nga një listë, një njësi e zgjuar është e mjaftueshme, e cila automatikisht do të bëjë atë që do të bënit me dorë, duke kaluar midis dritareve dhe duke bërë shumë kopje e ngjitje.
Nëse e ndërtosh procesin e administratës mbi këta katër shtylla, mund ta rritësh shpejt efikasitetin, produktivitetin dhe kualifikimin tënd. Megjithatë, lista duhet të plotësohet me një pikë tjetër, pa të cilën puna në IT është praktikisht e pamundur — vetëstudimi.
Vetëstudimi i administratorëve të sistemeve
Për t'u bërë pak kompetent në këtë fushë, është e nevojshme që të mësosh dhe të zbulosh gjithmonë gjëra të reja. Nëse nuk ke asnjë dëshirë për t'u përballur me të panjohurën dhe për t'u thelluar, do të shfaqesh shumë shpejt në vështirësi. IT vazhdimisht sjell zgjidhje, teknologji dhe metoda të reja, dhe nëse nuk i studion ato, të paktën në një nivel sipërfaqësor — je në rrugën e humbjes. Shumë fusha të teknologjive informative qëndrojnë mbi një bazë shumë komplekse dhe të gjerë. Për shembull, puna me rrjetet. Rrjetet dhe interneti janë kudo, ti përballet me to çdo ditë, por kur fillon të shqyrtosh teknologjitë që fshihen pas tyre, zbulesh një disiplinë të madhe dhe shumë të ndërlikuar, studimi i së cilës — nuk është aspak një shëtitje në park.
Nuk e përfshiva këtë pikë në listë, sepse është themelore për IT-në në përgjithësi, dhe jo vetëm për administrimin e sistemeve. Natyrisht, nuk është e mundur të mësosh gjithçka menjëherë — do të mos kesh kohë të mjaftueshme. Prandaj, kur bëhet fjalë për vetëarsimin, duhet të mbash parasysh nivelet e nevojshme të abstraksionit.
Nuk është e nevojshme të mësosh menjëherë se si funksionon menaxhimi i brendshëm i memories për çdo mjet të veçantë, dhe si lidhet ai me menaxhimin e memories në Linux, por është e dobishme të dish se si duket operativja në mënyrë schematike dhe përse është e nevojshme. Nuk është e nevojshme të dish se si dallohet struktura e header-ave në TCP dhe UDP, por do të ishte e dobishme të kuptosh dallimet themelore në punën e protokolleve. Nuk është e nevojshme të studiohet se çfarë janë humbjet e sinjalit në optikë, por do të ishte mirë të dish se pse humbjet reale gjithmonë trashëgohen përmes nyjave. Nuk ka asgjë të keqe në të ditur si funksionojnë disa elemente në një nivel të caktuar abstraksioni dhe nuk është e domosdoshme të analizosh të gjitha nivelet kur nuk ka aspak abstraksion (thjesht do të çmendeshe).
Megjithatë, në fushën e saj, të diskutosh në nivelin abstrakt "është një gjë që lejon të shfaqësh faqet e internetit" — nuk është shumë e mirë. Lecturat në vazhdim do t'i kushtohen shqyrtimit të fushave kryesore me të cilat një administrator sistemi përballet në punën në nivele më të ulta të abstraksionit. Do të përpiqem të kufizoj shumëllojshmërinë e njohurive që shqyrtojmë në nivelin minimal të abstraksionit.
10 urdhra të administratës së sistemeve
Pra, ne e kuptuam katër themelore dhe themelin. A mund të fillojmë të zgjidhim problemet? Ende jo. Para kësaj, është e këshillueshme të njihet me atë që quhet "praktikat më të mira" dhe rregullat e etikës së mirë. Pa to, ekziston mundësia që të sjellësh më shumë dëm se dobi. Pra, le të fillojmë:
- Disa nga kolegët e mi mendojnë se rregulli i parë është "mos dëmto". Por unë prirem të mos bie dakord. Kur përpiqesh të mos dëmton, nuk mund të bësh asgjë — shumë veprime potencialisht janë destruktive. Rregulli më i rëndësishëm që unë mendoj është — "bëni një backup". Edhe nëse dëmton, gjithmonë do të jetë e mundur të rikthehesh, dhe gjithçka nuk do të jetë aq keq.
Backup duhet të bëhet gjithmonë, kur koha dhe hapësira e lejojnë. Duhet të bëni backup ato që do të ndryshoni dhe ato që rrezikoni të humbni gjatë veprimeve potencialisht shkatërruese. Është e këshillueshme të kontrolloni integritetin e backup-it dhe të keni të gjitha të dhënat e nevojshme. Backup-i nuk duhet të fshihet menjëherë pas kontrollit, përveç rasteve kur duhet të çlironi hapësirë në disk. Nëse kjo është e nevojshme, bëni backup në serverin tuaj personal dhe fshijeni pas një jave.
- Rregulli i dytë më i rëndësishëm (që shpesh e shkel vetë) — «mos e fsheh». Nëse keni bërë backup, shkruani — ku, në mënyrë që kolegët tuaj të mos kenë nevojë ta gjejnë atë. Nëse keni bërë disa veprime jo të dukshme ose të komplikuara, regjistrojini: do të largoheni për në shtëpi, dhe problemi mund të përsëritet ose të lindë te dikush tjetër dhe zgjidhja juaj do të gjendet përmes fjalëve kyçe. Edhe nëse bëni diçka që e dini mirë, kolegët tuaj mund të mos e dinë atë.
- Rregulli i tretë nuk ka nevojë për shpjegim: «kurrë mos bëj atë, pasojat e të cilit nuk i di, nuk i përfytyron ose nuk i kupton». Mos i kopjosh komandat nga interneti nëse nuk e di se çfarë bëjnë; thirrni man dhe analizoni fillimisht. Mos aplikoni zgjidhje të gatshme nëse nuk e kuptoni se çfarë bëjnë. Minimizo në maksimum ekzekutimin e kodit të obfuskutuar. Nëse nuk keni kohë për të kuptuar — ndoshta po bëni diçka gabim dhe duhet të shqyrtoni pikën e mëposhtme.
- «Testo». Skriptet, mjetet, një-linjat dhe komandat e reja duhet të verifikohen në një mjedis të kontrolluar, jo në makinën e klientit, nëse ka edhe potencialin më të vogël për veprime shkatërruese. Edhe nëse keni bërë backup të gjithçkaje (dhe e keni bërë), amortizimi — nuk është gjë e shkëlqyer. Krijoni për këtë qëllim një server/virtuale/chroot të veçantë dhe testoni atje. Asgjë nuk u prish? Atëherë mund ta luftoni në «prodhim».

- «Kontrollo». Minimizoni të gjitha operacionet që nuk i kontrolloni. Një varësi e keqe në paketë mund të tërheqë pas vetes gjysmën e sistemit, ndërsa flamuri -y i vendosur për yum remove ju jep mundësinë të stërvitni aftësitë tuaja për rikuperimin e sistemit nga zero. Nëse veprimi nuk ka alternativa që nuk mund të kontrolloni — kaloni në pikën tjetër dhe bëni një Backup të gatshëm.
- «Kontrollo». Kontrolloni ndikimet e veprimeve tuaja dhe nëse është e nevojshme të riktheheni në një Backup. Kontrolloni nëse problemi në të vërtetë është zgjidhur. Kontrolloni nëse gabimi përsëritet dhe nën cilat kushte. Kontrolloni se çfarë mund të bëni me veprimet tuaja. Të besosh në punën tonë është e panevojshme, por kontrolli — kurrë.
- «Komunikoni». Nëse problemi nuk zgjidhet, pyesni kolegët tuaj nëse ata kanë hasur ndonjëherë diçka të tillë. Dëshironi të aplikoni një zgjidhje të kontestueshme — merrni mendimin e kolegëve. Ndoshta ata do të ofrojnë një zgjidhje më të mirë. Nuk jeni të sigurt për veprimet tuaja — diskutoni ato me kolegët. Edhe nëse kjo është fusha juaj ekspertizë, një pikëpamje e freskët mund të sqarojë shumë. Mos hezitoni për të njohur atë që nuk dini. Më mirë të bëni një pyetje të marrë, të dukeni budalla dhe të merrni një përgjigje, sesa të mos bëni atë pyetje, të mos merrni një përgjigje dhe të mbeteni budalla.
- «Mos refuzo ndihmën pa arsye». Ky pikë është anasjellja e pikës paraardhëse. Nëse ju bëjnë një pyetje të marrë — sqaron dhe shpjegoni. Nëse kërkohet diçka që nuk është e mundur — shpjegoni pse nuk është e mundur dhe ofroni alternativa. Nëse nuk keni kohë (realisht nuk keni kohë, e jo dëshirë) — thuajeni se keni një çështje të rëndësishme dhe shumë punë, por do të merremi më vonë. Nëse kolegët tuaj nuk kanë detyra urgjente, ofroni të kontaktoni ata dhe delegoni çështjen.
- «Le të japim feedback». Disa e kolegëve filluan të aplikojnë një metodologji të re ose një skript të ri, dhe ju po përballeni me pasoja negative të këtij vendimi? Njoftoni për këtë. Ndoshta problemi zgjidhet me tre rreshta kod ose pesë minuta përmirësimi të metodologjisë. Hasni një defekt në softuer? Njoftoni për defektin. Nëse ai riprodhohet ose nuk është e nevojshme të riprodhohet, shanset janë që do të zgjidhet. Shprehini dëshirat, propozimet dhe kritikën konstruktive, diskutoni pyetje nëse mendoni se janë të rëndësishme.
- «Kërkoni feedback». Të gjithë ne nuk jemi të përsosur, ashtu siç nuk janë as zgjidhjet tona, dhe mënyra më e mirë për të kontrolluar saktësinë e zgjidhjes tuaj është ta diskutoni atë. Keni optimizuar diçka për klientin — kërkoni që të ndjekin punën, ndoshta «grykëzimi» i sistemit nuk është aty ku e keni kërkuar. Keni shkruar një skript ndihmës — tregojeni kolegëve, ndoshta ata do të gjejnë një mënyrë për ta përmirësuar.
Nëse i aplikoni këto praktika vazhdimisht, shumica e problemeve nuk do të jenë më probleme: jo vetëm që do të minimizoni numrin e gabimeve dhe dështimeve të tua, por gjithashtu do të keni mundësinë të korrigjoni gabimet (nëpërmjet kopjeve rezervë dhe kolegëve që do t'ju sugjerojnë të bëni një kopje rezervë). Më pas vijnë detajet teknike, ku, siç dihet, qëndron djalli.
Mjetet kryesore me të cilat do t'ju duhet të punoni për më shumë se 50% të kohës — grep dhe vim. Çfarë mund të jetë më e thjeshtë? Kërkimi dhe redaktimi i tekstit. Megjithatë, grep dhe vim janë mjete shumëfunksionale të fuqishme që lejojnë të kërkoni dhe të redaktoni tekstin efikasisht. Nëse ndonjë editor i Windows si notepad do t'ju lejë thjesht të shkruani ose të fshini një rresht, në vim mund të bëni pothuajse çdo gjë me tekstin. Nuk e besoni? Thirrni komandën vimtutor nga terminali dhe filloni të mësoni. Sa i përket grep, forca e tij kryesore është në shprehjet e rregullta. Po, vete mjeti lejon të përcaktoni kushtet e kërkimit dhe të dhënat e nxjerra mjaft fleksibël, por pa RegExp nuk ka shumë kuptim. Dhe është e nevojshme të njihni shprehjet e rregullta! Të paktën në një nivel bazik. Për fillim, do t'ju rekomandoja të shikoni këtë , në të përshkruhen bazat e shprehjeve të rregullta dhe aplikimi i tyre së bashku me grep. Ah, po, kur i kombinoni me vim, merrni fuqinë ULTIMATE për të bërë me tekstin gjëra të tilla saqë ndonjëherë i duhet ta shënoni me etiketat 18+.
Nga 50% e mbetur, 40% i takojnë paketës së mjeteve coreutils. Për coreutils, mund të shihni listën në , dhe manuali për gjithë listën ndodhet në faqen e internetit . Çfarë nuk mbulohet nga ky set, ndodhet në utilitarët . Nuk është e nevojshme ta mbani mend përmendësh këtë me të gjitha çelësat, por është e dobishme të dini se çfarë bëjnë mjetet kryesore — ndihmon. Nuk do të duhet të shpikni biçikleta nga krufat. Dikur, më duhej të zëvendësoja shenjat e rehatit me hapësira në daljen nga një utilitar, dhe mendja e sëmurë krijoi një konstruksion të tillë sed ':a;N;$!ba;s/n/ /g', kolegu që erdhi e largoi me një metelë nga consola, dhe pastaj zgjidhi problemin duke shkruar tr 'n' ' '.

Do të rekomandoja të mbani mend se çfarë bën çdo mjet i veçantë dhe çelësat për komandat më të përdorura, për gjithçka tjetër ka man. Mos hezitoni të thërrisni man nëse keni dyshime për diçka. Dhe sigurohuni të lexoni man për man — përmban informacion të rëndësishëm për atë që do të gjeni.
Duke ditur këto mjete, do të jeni në gjendje të zgjidhni në mënyrë efikase një pjesë të konsiderueshme të detyrave me të cilat do të përballeni në praktikë. Në leksionet në vijim, do të shqyrtojmë se kur të përdorim këto mjete dhe strukturat e shërbimeve themelore dhe aplikacioneve për të cilat aplikohet.
I was with you, the system administrator of FirstVDS, Kirill Tsvetkov.
Burimi: habr.com

