что нужно знать системному администратору в первую очередь
Как стать системным администратором — пособие для начинающих (часть 1)
Так получилось, что эту весну я провёл в поисках/собеседованиях людей аж на четыре вакансии, связанные с системным администрированием. Я пообщался с несколькими десятками людей и заметил характерные ошибки и проблемы, с которыми они сталкиваются. Излагаю то, что заметил, а так же свои мысли, как эти проблемы решить.
scope: начинающие системные администраторы, помощники системных администраторов и т.д. Опытным администраторам, а так же тем, кто имеет вполне конкретную специализацию будет если и интересно, то бесполезно.
Примерная структура цикла статей — я опишу то, как мне видится профессия системного администратора, разберу текущее отношение к профессии со стороны работодателя, потом попробую дать общую информацию о том, с чего начинать и куда двигаться дальше.
Какие бывают системные администраторы?
Если очень огрублять, сисдамины бывают со специализацией, и без специализации. Обычно карьеру начинают без специализации, потом имеют несколько «загнувшихся» веток развития и одну-две-три, в которой проходит дальнейшая жизнь (классические «билды» персонажей в RPG очень хорошо соответствуют этому). Сисадмин без специализации — эникейщик-переросток (я этот тезис разберу чуть ниже). Однако, востребованность сисадмина узкой специализации ниже (если считать в штуках вакансий), чем сисадминов универсалов (этот тезис я тоже раскрою ниже). Однако, при меньшем количестве вакансий, реальная потребность в квалифицированных специалистах много выше, чем есть самих специалистов, то есть чем выше квалификация, тем меньше конкуренция. В какой-то момент у вас будет лежать несколько предложений от разных компаний, хоть вы и не планируете уходить из текущей.
(Забегая чуть вперёд — чем выше квалификация, тем дольше ищется новая работа, для топового спеца искать работу пол-года — это вполне нормально. Характерно это не только для админов, но и для других профессий с высокой ответственностью и узкой специализацией).
Кому нужны сисадмины?
Поскольку сисадмин — профессия, то за неё платят деньги. Деньги обычно платят компании сотрудникам. Значит, компаниям нужны сисадмины.
Итак, в соответствии с вышеприведённой классификацией есть два важных типа работодателей — профильные и непрофильные.
Начнём с непрофильных. Непрофильный работодатель — это компания, которая НЕ занимается IT, или занимается ею в далёкой от сисадмина области. Яркие «антиподы» IT-шности: туристические агенства, компании, работающие с недвижимостью, автодиллеры и т.д. Для них администратор — это такой «электрик/завхоз по компьютерам». Им не нужна сложная инфраструктура, они знать не знают про то, что делают сисадмины, что там есть сложного и что простого. Они не могут проконтролировать качество работы сисадмина, а единственным признаком его успешности является «работает» или «нет». Точный уровень развития компании очень сильно варьируется и может сводиться к «настроить принтеры и аську» до сопровождения довольно экзотических программ (этим особо страдают медицинские учреждения). В любом случае, айтишная сложность их конфигурации чаще всего минимальная, и говорить про реальное «хозяйство» сисадмина не приходится.
Отдельно нужно упомянуть компании с высокой степенью айтизации не-айтишного бизнеса. (Яркий пример — торговые сети, банки). Чаще всего в такой компании таки есть человек, который способен оценить качество работы и сложность решения, он же обычно способен говорить с сисадмином на нормальном языке, а не изъясняться птичьими словами про «не работает интернет», «процессор под столом пищит» и т.д. Однако, не смотря на возможную сложность конфигурации, она вполне ограничена бюджетом и потребностями компании, и обычно не требует выходить за рамки минимума для работы. Потребности IT-отдела воспринимаются как чистая обуза, которую нужно на этом самом птичьем языке отстаивать.
Второй тип работодателей, это профильные компании. Большинство крупных интернет-сайтов являются такими, к таковым же относятся хостеры, дата-центры (если они занимаются чем-то, кроме аренды юнитов/dedicated), компании, у которых бизнес завязан на компьютерные технологии (сотовые компании, процессинговые центры). Заметим, что у профильных компаний так же бывают непрофильные администраторы (которые занимаются обслуживанием рабочих мест в back-office’е), при трудоустройстве нужно точно для себя выяснить, чем именно вы будете заниматься.
Такие компании обычно ищут себе сотрудников «под задачи», то есть им нужен человек, который может заняться какой-то областью их деятельности.
Важной особенностью профильных компаний является конструктивность того, что вы делаете. Вы больше не «электрик по компьютерам», вы человек, который определяет как хорошо будет работать основной инструмент бизнеса компании. Здесь обычно нет понятия «потолка технологий», или птичьего языка.
Кто такой системный администратор-универсал?
На самом деле такой профессии не существует. Так сложилось, что многие компании хотят иметь в штате человека, который будет отвечать «за всё компьютерное». Обычно это непрофильные компании. Причём хотят они одного-двух, а не три десятка сертифицированных специалистов. (Для тех, кто хочет рассказать про своё блестящее настоящее в лице администратора Oracle и т.д. — повторю, речь про ситуацию на рынке). Отсюда простое правило: от вас будут хотеть всего сразу же. Причём, в будущем вы обнаружите, что поверхностные знания обо всём не особо ценятся. Однако, такие рабочие места — отличное место для начала — вы можете попробовать всё и понять, что вам нравится больше всего.
Таким образом имеется явное противоречие между работой начинающего системного администратора (точнее, теми требованиями, которые к нему предъявляют) и дальнейшим карьерным ростом. Это противоречие появляется не сразу же, а через некоторое время, когда человек осваивается с работой.
Впрочем, вернёмся к работе системного администратора. Вот список областей, с которыми чаще всего сталкивается системный администратор. Обратите внимание — эти области сильно выходят за рамки разумного, но — см. выше, от вас хотят всего, сразу, и желательно за малые деньги:
Что подразумевают под системным администрированием?
Подводя итог: невозможно быть не то, что профессионалом, но хотя бы более-менее хорошо знать всё это. Но знать надо. Именно на этом противоречии и строится карьера начинающего администратора.
Отдельно нужно сказать о тех, с кем вы столкнётесь при собеседовании. В отличие от остальных случаев, собеседовать вас будут с 99% вероятностью люди, далёкие от компьютеров. И проверять они будут не ваши знания, а вашу адекватность и «бойкость ответов». Если вы их закидаете умными словами, вас не воспримут адекватно.
Кто такой помощник системного администратора?
… aka эникейщик.
Это человек, на которого сваливают всю плохоформализуемую и нудную работу, общение с пользователями и возню с железом.
Заметим, «помощник системного администратора» чаще всего практически расходный материал с высокой текучкой. В одной компании дело доходило до того, что начальник отдела не знал по именам всех помощников администраторов (3 шт), ибо хоть кто-то но раз в месяц-полтора уходил.
С точки зрения эникейщика — такая работа — это трамплин в системное администрирование, но никак не основная профессия.
О профилях специализализированных системных администраторов мы поговорим чуть позже, а пока о карьере в пределах этих двух профессий.
Кто идёт в эникейщики?
Мой опыт говорит, что туда идут обычно люди без профильного образования. Чаще всего молодые, хотя я собеседовал дядю 42 лет на должность «помощник системного администратора». Не смотря на то, что описанные выше обязанности вроде бы являются почти тривиальными, для многих это самый сложный шаг. Стать администратором из помощника администратора легче, чем стать помощником сисадмина.
Основная причина: от вас будут хотеть знаний, которые сравнимы с администратором. Причём, половина из этих знаний не изложена нигде в книгах и является переходящим опытом (например, возня с банк-клиентами). Ещё одной важной особенностью является «чувство компьютеров», я встречал на собеседованиях много людей, они просто не могли оценить естественность того, что происходит в компьютере, что сильно им мешало в анализе ситуации. Это невербальный опыт, он появляется после долгой работы с компьютерами.
Карьера
Типичная карьера выглядит так: помощник системого администратора (или администратор в маленькой компании с 5-8 человеками), администратор, администратор (может быть ещё 2-3 раза администратор), начало настоящей специализации. Специализация может быть двух видов: повышение технического уровня (вместо поверхностных знаний обо всём, глубокие знания о немногом), и административная карьера — начальник IT-отдела, CIO (ИТ-директор) и т.д. Это два совершенно разных направления — первое связано с компьютерами, второе — с людьми, управлением персоналом, планированием, бюджетированием, совещаниями и т.д.
Переход с этапа на этап определяется несколькими факторами: 1) Теоретическими знаниями 2) Практическими навыками 3) Знанием реалий 4) Связями и отношениями с другими людьми (как внутри компании, так и за её пределами).
Среди этого не очень понятным выглядит третий пункт. Что такое «реалиии»?
Знание реалий
Речь идёт про знание того, чем обычно пользуются в компаниях, сколько это стоит и как работает. Условно говоря, это человек, который знает, что современные офисы кладут 5e, а не ThickEthernet (как было описано в книжке 1993 года), что класть 6ую катеорию неоправданно (хоть это и советует буклет производителя), что за программистами нужен глаз да глаз, иначе компания окажется намертво завязана на конкретного человека и т.д. Другими словами, знание реалиий — это способность сказать, что именно нужно в терминах, которые будут понятны и поставщику, и окружающим.
Навыки
До определённого момента решают почти всё. Без некоторого набора навыков никакие теоретические знания не помогут. Включает в себя просто «много километров за рулём» — решение множества проблем, навыки работы с консолью и типовым софтом, знание симптомов проблем, знание типовых решений для типовых случаев.
Теория
На первых порах теоретические знания не очень важны, поскольку у вас нет должного ощущения от компьютеров, чтобы правильно их воспринять. Однако, если не вкладывать своё время и усилия в теоретические знания, то вы быстро не заметите, как застряните на своём уровне. Зарплата будет по чуть-чуть расти, возможно, будет карьера, но ит-шный мир вокруг перестанет меняться. Те же технологии, те же глюки. Отсутствие теоретических знаний не мешает работать — оно мешает понимать, как работает и как чинить неработающее. Опыт сильно подменяет теорию в смысле решения проблем, но не даёт сил увидеть ситуацию в общем, найти настоящую причину (вместо повода).
Связи
Да, они значат очень много, особенно, в случае карьеры IT-директора. Единственный метод избежать необходимости иметь много знакомых и играть в офисные игры «царь горы» — это профессионализм (читай, опыт и теория). Если нет — то только личные связи, знание людей, умение их ощущать, умение им приказывать и всячески иначе руко водить. По моим наблюдениям примерно 30% эникейщиков находят первую работу по знакомству.
Для узкоспециальных администраторов связи значат уже совсем другое. Чем уже специализация — тем меньше ассортимент работодателей, тем больше вероятность знать всех или почти всех. Наличие примелькавшегося имени сильно сокращает время поиска работы. В этом случае речь идёт не о «связях» в бытовом смысле, а о профессиональной известности.
Как стать системным администратором — пособие для начинающих (часть 2)
В этой части: подробнее о жизни эникейщика: как устроиться, чем заниматься, чего избегать, к чему стремиться.
Я откладываю вопрос о «будущем сисадмина» на следующие части — сейчас я сфокусируюсь на том, как начинается карьера. Повторю, опытным администраторам всё это будет казаться либо обидным, либо очевидным — но я достаточно посмотрел за эту весну на людей, которые пытаются «вскочить в индустрию», но у них не получается. Именно для них этот цикл статей. (Я не ощущаю себя достаточно умным, чтобы рассказывать про будущее карьеры для людей, у которых опыта, возможно, больше, чем у меня).
Вступление
Примерно до середины 2000ых было два пути стать системным администратором: через путь эникейщика и через профильное высшее образование (обычно, в всякого рода институтах связи). Первое давало много опыта, второе — довольно много знаний (из которых большая часть не нужна). Сейчас появился третий — всякого рода «курсы системного администрирования», которые, реально, тлен и прах (если судить по тому, что знают и умеют те, кто их закончил).
Я пока сфокусируюсь на первом — а именно, «через эникеи в админы».
Что должен знать эникей?
То, что я напишу, вызовет бурю возмущения (во всяком случае, именно такую бурю обычно вызывает текст вакансии с такими требованиями и з/п в 15-17 т.р. (Санкт-Петербург)).
Нужно: уметь установить виндоуз, починить ей загрузчик, точно знать, где находятся программы, данные пользователей и т.д. (то, что называется «уверенный пользователь windows»). Дальше интеренее: нужно иметь представление об СКС (объяснить, какие пары и зачем переворачиваются в кроссе), знать про маршрутизацию (на уровне объяснить что от чего отделяет маска сети), DNS (на уровне знания про существования RR и способности определить IP по dns-имени в консоли), диагностику сети (знать, что такое пинг и уметь интерпретировать его вывод), нужно иметь какой-никакой опыт с офисными приложениями, уметь читать отлупы почтовых серверов.
Тяжеловатый список, правда? Последний раз, когда я искал помощника сисадмина, я решил не сдаваться и остановился именно на таком уровне. Нужно сказать, человек таки (через 3 недели) нашёлся.
Итак, первое — это знания. Где их получить? Видимо, дома. Внимательно думайте что делаете, старайтесь разобраться «почему». Каждая переустановка windows с нуля — ваш проигрыш.
Второе — адекватность. Свободный график, поблажки по времени работе — это удел админов. Эникейщик должен быть вовремя (и никого не волнует маршрутка в пробке), он должен быть приветлив к пользователям, он должен владеть русским языком и более-менее письменным этикетом (чтобы отвечать на письма внутри компании вменяемо).
Собеседование
Дальше вам нужно оценить адекватность людей вокруг. Трудная задача. Не стоит заигрывать в крутых админов и панибратствовать (см п.1), спросите, чем занимается компания, если видите затруднения в ответе, уточни, что интересует только то, с чем нужно будет работать по должностным обязанностям. Многие компании представляют из себя жуткое сплетение разных ООО, которые делают что попало, и рассказывать про бизнес вам никто не будет.
Кстати, об ответе на вопрос «долго ли вы у нас собиратесь работать?», отвечайте честно: «хочу набраться опыта, думаю, что минимум год, если будет интересно, то дольше». Вполне разумный срок для эникейщика. Поиск работника не менее геморройный, чем поиск работы, так что человек с намерением поработать пару месяцев энтузиазма не вызовет, но и обещание работать в качестве эникея тут до гробовой доски тоже не вызовет доверия к вашим словам.
Что делать, устроившись на работу?
В этой секции о том, как выполнять служебные обязанности. О том, что на самом деле (для собственного карьерного продвижения делать, чуть ниже).
Во-первых, осознайте, для чего вас наняли на работу: снять с админа работу. Не её излишек, очень редко администратор бывает совсем уж занят, а снять с него самую неприятную её часть: общение с пользователями и танцы вокруг компьютеров с бубном.
Вообще, это касается не только «помощника», всегда соглашайтесь на любую разовую работу (ну, кроме работы наркодиллером и испытателем ракет) — однократно вы получите от этой работы больше опыта, чем работодатель от вас пользы. Один раз протащили СКС — пачка опыта, один раз разобрались с видеокамерами — другой бесценный опыт. Научились программировать системный телефон АТС — опять же опыт. Опыт, опыт, опыт. Столкнувшись с проблемой пытайтесь не только решить её здесь и сейчас, но ройте по-максимуму. Если есть время, старайтесь прочитать в гугле хоть сколько-то про каждое новое название, которое встречаете.
Что на самом деле нужно делать?
Итак, у вас есть сколько-то времени ежедневно между звонками бухгалтеров о залипшей кнопке, посылом «пойти почини вот ту неведомую фигню» и прочими глупыми, жрущими время и низкооплачиваемыми вещами.
Это время можно:
а) Потратить на игры. Уносить сразу же. Не только потратите всё время, но ещё и получите массу проблем по работе, потому что будете тупить, тормозить и не успевать сделать, что сказали.
б) Потратить на сёрфинг, вконтактик, чатики, двачики, лепру, ещё какой другой замечательный в своей социализации сервис. Примерно то же самое, правда, менее опасно для работы.
в) Тратить на самообучение.
И вот это — главное.
Запомните, главные различия между админом и эникейщиком: теоретические знания и опыт. Опыт вы вычитать не сможете, он придёт со временем. Но какой именно он придёт, и, главное, первый пункт зависит ТОЛЬКО от того, сколько вы будете читать.
Читать, читать, читать, читать.
Если на работе есть проф. литература — читать всё. Даже если половину не понимаете. Прочтёте всю полку — начинайте читать то, что не поняли раньше.
Поток знаний, который на вас обрушится из самой глупой и зачуханной админской книжки достаточен, чтобы вкачать 2-3 левела по администрированию, причём по совершенно несвязным с темой книги темам. (Воспоминания: книжка по 2003 экчейнжу мне дала огромный пласт знаний по устройству виндов и active directory, наверное, больше, чем про эксчейнж).
Первые книги будет читать безумно тяжело. Но это нужно делать, потому что если вы не научитесь учиться, то пик вашей карьеры — престарелый полуадмин-идиот. Я таких встречал, они в 45+ лет несут наивную ахинею про антивирусы и глючную винду. Преимущественно такие выживают в гос. организациях или подыхающих от безделия полусоветских конторах.
Итак, читать, читать, читать.
Что делать, если литературы нет?
1) Купить (иногда кусается)
2) Читать, что есть (с экрана)
3) Попытаться попросить купить книжки за счёт компании (шансов мало, но есть).
В любом случае, читать, читать, читать. Договоритесь с самим собой — не менее часа в день на чтение _КНИГ_. Болтовня на тематических ресурсах за это не засчитывается. Сразу отвечаю на вопрос, каких книг: всех, которые хоть как-то касаются того, с чем вы работаете и до которых у вас дотянулись руки. За условный год вам нужно прочитать не меньше 20-30 книг, что очень, очень, очень много (это не беллитристика, некотрые умные книги нужно 2-3 раза перечитывать). Если уж совсем хочется руководства — ну, хотя бы «DNS и Bind» Альбеца и Ли. В принципе, Неймет хорош, он, правда, не по виндовой части. От себя ещё порекомендую Филимонова, «Основы мультисервисных сетей Ethernet», даёт очень мощный пинок по куче технологий. Но, 2-3 книги погоды не делают — читать, читать, читать.
Следующий пункт: общение на тематических форумах, комьюнити, и т.д. Полезно, но не заменяет книги. Лучше читать ответы, максимум, задавать вопросы. Умничать пока рано, но если вас тыкают носом в вашу глупость, страйтесь выяснить, почему вы всё ещё идиот, а не устраивайте битву троллей за кубок Флеймера. Если уж втянулись в спор, то аргументируйте — ищите источники, доказывайте. В принципе, один затяжной холивар может привести к тому, что вы сильно улучшите свои знания в области — но это при условии, что вы пытаетесь доказать свою точку зрения по источникам, а не громким и могучим IMHO.
Далее, как уже сказано ранее, старайтесь разобраться. Если вы будете задавать идиотские вопросы по работе, то это нормально (учтите, только, что админ не бог, и если он отмахивается, то есть вероятность, что он просто не знает).
Что учить?
Как сказано ранее, на первых порах всё — смежные вопросы из книг дадут вам первичные знания широкого спектра.
К моменту, когда вы это всё изучите, вы с большой вероятностью уже будете иметь какой-никакой опыт и вполне сойдёте за начинающего админа.
Чего избегать?
Тут мы начинаем самую сложную часть.
Во-первых, в мире Windows принято пиратить платный софт. В мире линукса тоже, только платного софта почти нет, в репозиториях много нужного и опенсорсного, так что проблема менее остра.
Наш доблестный уголовный кодекс предусматривает, что виноват тот, кто софт ставил. И если по служебной записке — то «по предварительному сговору», то есть отмазок нет. Если что-то случится — вас попытаются сделать виноватым. Учитывайте это, старайтесь держаться от Microsoft, Adobe, Autocad, 1С подальше. К сожалению, выбора нет, решайте сами — рисковать потенциальным условным сроком или вполне неиллюзорно вылететь с работы «за идиотизм». Это проф.риск многих начинающих админов (а так же цена работы с хорошо знакомой windows).
Вас могут попытаться сделать гибридом грузчика и помощника завхоза. От переноски серверов (легко) и серверных упсов (тяжело) вам не отвертеться, а вот от всякой завхозной ерунды — старайтесь уклоняться. Ибо время ест, а квалификации не добавляет.
Начинающему сисадмину: как из хаоса сделать порядок
Я системный администратор FirstVDS, и это — текст первой вводной лекции из моего краткого курса помощи начинающим коллегам. Специалисты, которые недавно начали заниматься системным администрированием, сталкиваются с рядом одних и тех же проблем. Чтобы предложить решения, я взялся написать этот цикл лекций. Некоторые вещи в нём специфичны для технической поддержки хостинга, но в целом, могут оказаться полезными если не для всех, то для многих. Поэтому я адаптировал текст лекции, чтобы поделиться здесь.
Не имеет значения, как называется ваша должность — важно, что по факту вы занимаетесь администрированием. Поэтому начнем с того, чем должен заниматься системный администратор. Основная его задача — это приведение в порядок, поддержание порядка и подготовка к грядущим увеличениям порядка. Без системного администратора на сервере начинается бардак. Логи не пишутся, или в них пишется не то, ресурсы распределяются неоптимально, диск заполняется всевозможным мусором и система начинает медленно загибаться от такого количества хаоса. Спокойно! Системные администраторы в вашем лице приступают к решению проблем и устранению бардака!
Столпы системного администрирования
Однако прежде, чем приступать к решению проблем, стоит познакомиться с четырьмя основными столпами администрирования:
Документация
Документация подразумевает под собой не чтение документации (хотя без этого никуда), но и ведение.
Как вести документацию:
В каком формате вы это будете делать, зависит только от вас: это может быть система с заметками, личный блог, текстовый файл, физический блокнот. Главное, чтобы ваши записи отвечали следующим требованиям:
Вот так может выглядеть документация: от примитивных записей в блокноте (картинка выше), до полноценной многопользовательской базы знаний с тегами, поиском и всеми возможными удобствами (ниже).
Вам не только не придётся искать одни и те же ответы дважды: документирование будет замечательным подспорьем в изучении новых тем (конспекты же!), прокачает ваше паучье чутьё (способность диагностировать сложную проблему, бросив один поверхностный взгляд), добавит организованности в ваши действия. Если документация будет доступна вашим коллегам, то позволит им разобраться, что и как вы там нагородили, когда вас не будет на месте.
Шаблонизация
Шаблонизация — это создание и использование шаблонов. Для решения большинства типовых вопросов стоит создать определённый шаблон действий. Для диагностики большинства проблем следует использовать стандартизированную последовательность действий. Когда вы что-то починили/установили/оптимизировали, работоспособность этого чего-то стоит проверять по стандартизированным чек-листам.
Шаблонизация — лучший способ организации рабочего процесса. Используя типовые процедуры для решения наиболее частых проблем, вы получаете много всего классного. Например, использование чек-листов позволит вам диагностировать все важные для работы функции и отбросить диагностику маловажной функциональности. А стандартизированные процедуры сведут к минимуму ненужные метания и снизят вероятность ошибки.
Первым важным моментом является то, что процедуры и чек-листы тоже нужно документировать. Если просто надеяться на память, можно пропустить какую-нибудь реально важную проверку или операцию и всё развалить. Второй важный момент — все шаблонные практики можно и нужно модифицировать, если этого требует ситуация. Идеальных и абсолютно универсальных шаблонов нет. Если проблема есть, а шаблонная проверка её не выявила — это не значит, что проблемы нет. Однако прежде, чем браться за проверку каких-то маловероятных гипотетических проблем, всегда стоит сперва сделать быструю шаблонную проверку.
Оптимизация
Оптимизация говорит сама за себя. Рабочий процесс нужно максимально оптимизировать в плане время- и трудозатрат. Тут вариантов бессчётное множество: выучите горячие клавиши, сокращения, регулярные выражения, доступные инструменты. Ищите варианты более практичного использования этих инструментов. Если вы 100 раз на дню вызываете команду, повесьте её на клавиатурное сокращение. Если вам нужно регулярно подключаться к одним и тем же серверам, запишите alias в одно слово, который будет вас туда подключать:
Ознакомьтесь с разными вариантами доступных инструментов — возможно, есть более удобный терминальный клиент, DE, менеджер буфера обмена, браузер, почтовый клиент, операционная система. Узнайте, какими инструментами пользуются ваши коллеги и знакомые — может, они выбирают их не просто так. После того, как вы подберете инструменты, научитесь их применять: выучите ключи, сокращения, tips and tricks.
Оптимально используйте стандартные инструменты — coreutils, vim, регулярные выражения, bash. Для последних трёх есть огромное количество замечательных мануалов и документация. С их помощью можно довольно быстро перейти от состояния «я чувствую себя обезьяной, которая колет орехи ноутбуком — до «я обезьяна, которая использует ноутбук, чтобы заказать себе орехокол».
Автоматизация
Автоматизация перенесет тяжёлые операции из наших уставших рук в неутомимые руки автоматики. Если какая-то стандартная процедура выполняется в пяток однотипных команд, то почему бы не обернуть все эти команды в один файлик и не звать одну команду, которая этот файлик качает и выполняет?
Собственно автоматизация на 80% состоит из написания и оптимизации своих собственных инструментов (и ещё на 20% из попыток заставить их работать как надо). Это может быть просто продвинутый однострочник или же огромная всемогущая тулза с веб-интерфейсом и API. Главный критерий здесь — создание инструмента должно занимать не больше времени и усилий, чем количество времени и усилий, которое вам этот инструмент сэкономит. Если вы пять часов пишете скрипт, который вам больше никогда не пригодится, для задачи, на решение которой у вас без скрипта ушел бы час-другой — это очень плохая оптимизация рабочего процесса. Можно потратить пять часов на создание инструмента, только если количество, тип задач и время это позволяют, что бывает нечасто.
Автоматизация необязательно подразумевает написание полноценных скриптов. Например, чтобы создать кучу однотипных объектов из списка, достаточно ловкого однострочника, который автоматом сделает то, что вы бы делали руками, переключаясь между окнами, с кучами копипаста.
Собственно, если построить процесс администрирования на этих четырёх столпах, то можно довольно быстро повысить свою эффективность, продуктивность и квалификацию. Однако этот список нужно дополнить ещё одним пунктом, без которого работа в IT практически невозможна — самообразованием.
Самообразование сисадмина
Чтобы быть в этой сфере хоть чуть-чуть компетентными, нужно постоянно учиться и узнавать новое. Если у вас нет ни малейшего желания сталкиваться с неизвестным и разбираться, вы очень быстро «просядете». В IT постоянно появляются всевозможные новые решения, технологии и методы, и если вы не изучаете их хотя бы поверхностно — вы на пути к проигрышу. Многие области информационных технологий стоят на весьма сложном и объёмном базисе. Например, работа сети. Сети и интернет есть везде, вы сталкиваетесь с ними ежедневно, но стоит копнуть в технологии, которые стоят за ними, вы обнаружите огромную и очень сложную дисциплину, изучение которой — ни разу не прогулка в парке.
Я не стал включать этот пункт в список, потому что он — ключевой для IT в общем, а не только для системного администрирования. Естественно, выучить абсолютно всё и сразу не получится — у вас просто физически не хватит времени. Поэтому при самообразовании следует помнить о необходимых уровнях абстракции.
Вам необязательно сразу учить, как работает внутренний менеджмент памяти у каждой отдельно взятой утилиты, и как он взаимодействует с менеджментом памяти Linux, но вот что оперативная память из себя представляет схематически, и зачем она нужна, знать неплохо. Вам необязательно знать, как структурно отличаются заголовки у TCP и UDP, но было бы неплохо понимать основные отличия протоколов в работе. Вам не нужно изучать, что из себя представляют затухания сигнала в оптике, но было бы неплохо знать, почему настоящие потери всегда наследуются по узлам. Нет ничего плохого в том, чтобы знать как работают определённые элементы на определённом уровне абстракции и необязательно разбирать абсолютно все уровни, когда абстракции нет вообще (вы просто свихнётесь).
Однако в своей области рассуждать на уровне абстракции «ну это такая штука, которая позволяет показывать сайтики» — не очень хорошо. Следующие лекции будут посвящены обзору основных областей, с которыми системному администратору приходится сталкиваться в работе на более низких уровнях абстракции. Я постараюсь ограничить количество обозреваемых знаний минимальным уровнем абстракции.
10 заповедей системного администрирования
Итак, мы усвоили четыре основных столпа и фундамент. Можно начинать решать проблемы? Ещё нет. Перед этим желательно ознакомиться с так называемыми «best practices» и правилами хорошего тона. Без них есть вероятность, что вы принесёте больше вреда, чем пользы. Итак, начнём:
Основные инструменты, с которыми вам придётся работать больше 50% времени — grep и vim. Что может быть проще? Поиск по тексту и редактирование текста. Однако и grep, и vim — мощнейшие многофункциональные мультитулы, которые позволяют искать и редактировать текст эффективно. Если какой-нибудь виндовый notepad позволит вам просто написать/удалить строчку, то в vim’е можно делать с текстом почти что угодно. Не верите — вызовите из терминала команду vimtutor и начинайте учить. Что же касается grep — основная его сила в регулярных выражениях. Да, сам инструмент позволяет довольно гибко задавать условия поиска и выводимые данные, но без RegExp это особого смысла не имеет. И регулярные выражения знать нужно! Хотя бы на базовом уровне. Для начала я бы посоветовал вам посмотреть вот это видео, в нём разбираются основы основ регулярных выражений и их применения совместно с grep. Ах да, при совмещении их с vim, вы получаете ULTIMATE POWER возможность делать с текстом такие вещи, что их приходится обвешивать значками 18+.
Я бы посоветовал запомнить, что примерно выполняет каждая отдельная тулза и ключики к самым часто используемым командам, для всего остального есть man. Не стесняйтесь звать man, если вы в чём-то сомневаетесь. И обязательно прочитайте man на сам man — он содержит важную информацию о том, что вы найдете.
Зная эти инструменты, вы сможете эффективно решить значительную часть задач, с которыми столкнетесь на практике. В следующих лекциях мы рассмотрим, когда применять эти инструменты и структуры основных служб и приложений, к которым они применяются.
С вами был системный администратор FirstVDS Кирилл Цветков.