Язык программирования для системного администратора
Выбираем язык для системного администрирования
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
В новой серии выбора языков для различных IT-специальностей мы поговорим об обязанностях системного администратора. С одной стороны, это может быть достаточно неприхотливая работа, где от вас потребуются лишь базовые знания компьютерной грамотности: установка необходимого ПО, контроль за выполнением чужих рабочих обязанностей, организация нормальной работы небольшого числа офисных сотрудников. Но это не то, что представляет для нас существенный интерес.
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
Python для системных администраторов
Автор перевода messerr, просто с кармой ему не повезло.
Введение
О модулях
Модуль – важное понятие в языке Python. По существу, модуль – это ресурс, который вы подключаете к программе, чтобы затем использовать его. Этот процесс можно сравнить с тем, что вы достанете из ящика лист бумаги и положите его на свой стол, подготовив тем самым к дальнейшему использованию. Модули подключаются при помощи команды import, которая присутствует в начале каждого примера. Модули доступны для связи с базами данных, сетевого программирования, сервисов операционных систем и сотен других полезных областей.
Заставим Python работать
Python — полнофункциональный, надежный язык программирования и, по существу, имеет массу свойств. Изучение его может стать задачей эпических масштабов. Однако, помните, что многие способности, такие как GUI инструментарий, имеют для системного администратора низкую ценность. Вот почему в этой статье используются специфичные примеры: они демонстрируют навыки, необходимые для эффективного написания скриптов управления системой.
Пример 1: Поиск файлов и отображение прав в дружественном формате
Листинг 1. Поиск файлов и отображение результатов с правами доступа.
$ python example1.py
Enter the file pattern to search for:
j*.py
Листинг 2. Вывод первого примера
$ python example1.py
Введите шаблон поиска:
j*.py
Файлы:
jim.py
jim2.py
================================
Permissions for file jim.py :
USR имеет R права доступа
USR имеет W права доступа
USR не имеет X прав доступа
GRP имеет R права доступа
GRP не имеет W прав доступа
GRP не имеет X прав доступа
OTH имеет R права доступа
OTH не имеет W прав доступа
OTH не имеет X прав доступа
Permissions for file jim2.py :
USR имеет R права доступа
USR имеет W права доступа
USR не имеет X прав доступа
GRP имеет R права доступа
GRP не имеет W прав доступа
GRP не имеет X прав доступа
OTH имеет R права доступа
OTH не имеет W прав доступа
OTH не имеет X прав доступа
Пример 2: Выполнение операций с архивом tar при помощи меню
Листинг 4. Меню пользователя для второго примера
$ python example2.py jimstar.tar
Введите
1 чтобы извлечь файл
2 чтобы вывести информацию о файле в архиве
3 чтобы показать все файлы в архиве
Пример 3. Проверка запущенного процесса и отображение информации в дружественном представлении.
Одной из важнейших обязанностей системного администратора является проверка запущенных процессов. Скрипт в Листинге 5 даст вам несколько идей. Программа использует преимущества возможностей Unix: команда grep использует вывод, генерированный другой командой. Это позволит вам уменьшить объем данных, которые в дальнейшем будет анализировать Python.
Программа так же использует модуль string. Изучите этот модуль — вы будете часто его использовать.
Листинг 5. Отображение информации о запущенном процессе в дружественном представлении
$ python example3.py
Введите имя программы для проверки: xterm
Путь: pts/0
Владелец: goga
ID процесса: 26509
ID родительского процесса: 26493
Время запуска: 17:28
Пример 4. Проверка имен пользователей и паролей на соблюдение политики безопасности. Управление безопасностью важная часть работы для каждого системного администратора. Python делает эту работу проще, как показывает последний пример. Программа в Листинге 7 использует модуль pwd для доступа к базе данных паролей. Она проверяет имена пользователей и пароли на соблюдение политики безопасности (в данном случае, имена должны быть как минимум 6 символов в длину, пароли — 8 символов). Есть два предостережения:
Эта программа работает только если у вас есть полные права для доступа к /etc/passwd.
Если вы используете теневые пароли, скрипт работать не будет (однако, в Питон 2.5 есть модуль spwd, который решит эту проблему).
Листинг 7. Проверка имен пользователей и паролей на соблюдение политики безопасности
Листинг 8. Вывод четвертого примера
$ python example4.py
Следующие пользователи имеют имена менее чем из 6 символов::
Guest
Следующие пользователи имеют пароли менее чем из 8 символов:
Guest
johnsmith
joewilson
suejones
Системный администратор: обзор профессии
Для начала стоит разобраться, чем сисадмин отличается от программиста, ведь часто их путают. Программирование — это создание компьютерных программ с помощью специальных языков. Системное администрирование — это процесс, от которого зависит жизнедеятельность офиса: исправность компьютерной техники, безопасность сети и техническая поддержка пользователей. Человек, который сопровождает этот процесс, называется «системный администратор».
В статье я расскажу, чем занимаются системные администраторы, что они должны знать и где обучаются, а также востребованность данной профессии на рынке труда и уровень зарплат.
Системный администратор: кто это и чем занимается
Системный администратор (сисадмин) — это специалист, который контролирует исправную работу компьютера, локальных сетей и программного обеспечения. На техническом уровне он участвует в закупке техники, комплектующих и занимается ремонтом. Он устанавливает ПО, отвечает за работу всех программ, выявляет ошибки и устраняет их. Он устанавливает защиту для информационных ресурсов от хакерских атак и работает с данными.
Обратите внимание: для вас мы подобрали профессиональные курсы по обучению системных администраторов
В обязанности сисадмина входит общение с пользователями и оказание компьютерной помощи. В зависимости от компании у такого специалиста может быть дополнительный перечень задач, от заправки принтера до разработки веб-сайта. Разберем основные направления.
Основные направления и задачи в профессии.
Крупные предприятия имеют в штате нескольких IT-администраторов. У каждого свой набор закреплённых за ним обязанностей. Небольшие организации обходятся одним сисадмином, который обслуживает потребности всей техники и сотрудников в одиночку.
Возможные направления работы: бизнес, государственные и коммерческие учреждения.
Что должен знать и уметь сисадмин
Подавляющее большинство системных администраторов должны:
Личные качества
У системного администратора должны быть развиты следующие качества:
Качества для каждого сотрудника:
Плюсы и минусы профессии
Эта специальность имеет свои особенности.
Зарплата в Москве и по России
Скриншот с сайта trud.com показывает уровень средней зарплаты сисадмина в Москве за 2019/2020 год:
Сайт hh.ru для вакансии сисадмина предлагает зарплату от 50 тыс. руб. для новичков. Младший системный администратор должен владеть следующими навыками:
IT-администратор среднего уровня, с опытом больше 1 года может зарабатывать 80-100 тыс. руб. Он должен:
Старшем системному администратору, со стажем работы от 3-х лет, предлагается зарплата от 100 тыс. руб. Он должен иметь навыки самостоятельного решения проблем, грамотно выстраивать структуру работы и быть лидером. Наставничество — ещё одна его задача. Требования работодателей к такому специалисту:
Как стать системным администратором
Бывает, что сисадмином в маленькой компании может стать продвинутый пользователь ПК из числа сотрудников. Он что-то знает из техники, может переустановить винду, настроить офисные программы и локальную сеть. Но администратор-самоучка вряд ли сможет грамотно выстроить систему защиты этой сети, работать с системой управления базы данных и обеспечить IT-поддержку бизнес-процессов. Но этому вполне можно научиться.
Получить востребованную специальность администратора сети можно в учебном заведении. Но оно не гарантирует, что вы точно научитесь на практике выполнять те или иные манипуляции. Как правило, программа занятий в вузе в основном посвящена теории, а практику придется нарабатывать уже после трудоустройства. Формат очного обучения не всем подходит, но есть другой вариант освоить эту профессию.
Обучиться системному администрированию можно на → онлайн-курсах системного администратора. Они помогут стать профессионалом с нуля и найти работу еще в процессе учёбы.
Преимущества таких программ:
Если вас заинтересовала эта профессия — ставьте плюс в комментариях, расскажем, как в ней легко стартануть 🙂
Не знаете с чего начать?
Получите персональный список курсов, пройдя бесплатный тест по карьере
Профессия: системный администратор
Нередко от старшего поколения мы слышим магические слова о «единственной записи в трудовой книжке». И правда, приходилось встречать совершенно потрясающие истории: слесарь — слесарь высшего разряда — мастер цеха — начальник смены — главный инженер — директор завода. Это не может не впечатлять наше поколение, которое меняет работу раз, два, да что там — порой и пять, и больше. У нас есть возможность не просто менять компанию, можно менять профессию и довольно быстро в ней осваиваться. Особенно заметно это в ИТ-сфере, где встречаются весьма причудливые карьерные трансферы и кардинальные сдвиги по карьерной лестнице, как вверх, так и вниз.
Наблюдая за этим процессом, мы поняли, что справочник профессий востребован не только школьниками, выбирающими вуз, но и взрослыми, выбирающими путь. Поэтому решили рассказать об основных специальностях, которые востребованы в ИТ-сфере. Начинаем с самой близкой нам — системный администратор.
Кто это?
Системный администратор — это специалист, который занимается настройкой, совершенствованием и поддержкой ИТ-инфраструктуры компании, включая оборудование, периферию, программное обеспечение и сетевые подключения. Правда, очень формальное определение?
То, чем занимается системный администратор, зависит от размера компании, сферы деятельности, опыта и навыков самого админа. Вместо того чтобы давать определение, лучше выделим конкретные типы сисадминов.
Где нужен?
Я бы сказал, что везде, но это будет ложь. Почему-то руководители малого и среднего нейатишного бизнеса полагают, что всё можно «запихнуть» в облако, а сисадмин может быть исключительно приходящим эникеем. Поэтому нередко компании сильно страдают от хромой на все ноги ИТ-инфраструктуры (точнее, ИТ-бардака), но сисадмина не нанимают. Если вам удастся попасть в такую компанию, то в 99% случаев нужно рассматривать работу в компании как опыт и двигаться дальше, и лишь в 1% случаев удаётся переубедить босса, стать незаменимым и выстроить идеальную ИТ-среду с выверенной архитектурой и грамотным управлением (вот прямо с реального примера описываю!).
А вот в компаниях, где ИТ является ключевой сферой деятельности (хостинги, разработчики и проч.) или же замыкает на себе операционную работу (доставки, интернет-магазины, банки, ритейл и проч.), сисадмин сразу становится востребованным специалистом, который может развиваться в одном или нескольких направлениях. Поскольку автоматизация продолжает захватывать компании, найти работу сисадмином начального и среднего уровня не составит особого труда. А когда вы станете прокачанным специалистом, компании будут за вас сражаться, потому что эникеев много, а профессионалов, как и везде, крайне мало.
На момент написания статьи на сервисе «Хабр Карьера» 67 вакансий, связанных с системным администрированием. И вы как раз можете увидеть, что разброс «специализации» велик: от сотрудника технической поддержки до специалиста по инфобезу и DevOps. Кстати, работа в технической поддержке на старте очень быстро, качественно и глубоко прокачивает ряд навыков, ценных для системного администратора.
Средняя заработная плата
Заработную плату будем смотреть опять же на «Хабр Карьере».
Возьмём среднюю заработную плату без выделения навыков для «Системного администратора» и для «DevOps» по данным за 2 полугодие 2019 года. Это самые популярные специальности в разделе «Администрирование», и наиболее показательные. Сравним.
Уровень специалиста | Системный администратор | DevOps |
---|---|---|
стажёр (intern) | 25 900 руб. | нет стажёров |
младший (junior) | 32 560 руб. | 69 130 руб. |
средний (middle) | 58 822 руб. | 112 756 руб. |
старший (senior) | 82 710 руб. | 146 445 руб. |
ведущий (lead) | 86 507 руб. | 197 561 руб. |
Цифры, конечно, даны с учётом Москвы, в регионах ситуация поскромнее, но, что характерно, пропорции примерно такие же. И мне кажется справедливым такая разница, потому что DevOps реально более продвинутые по скиллам (если мы говорим о канонических девопсах, а не о тех, у которых одно название).
Единственное, что не хотелось бы рекомендовать, это брать джунов-девопсов после вуза. Ребята-теоретики, не познавшие ни dev, ни ops, весьма посредственно смотрятся на старте, слабо развиваются из-за непонимания того, куда двигаться и точно не стоят обозначенных денег. Всё же на узких специализациях должны быть более опытные админы, которые прошли огонь, воду, медные трубы, bash и скрипты PowerShell.
Базовые требования к профессионалу
Требования к системному администратору отличаются от компании к компании (кому-то нужно владение 1С, 1С-Битрикс, Kubernetes, определённой СУБД и т.д.), но есть несколько базовых требований, которые, скорее всего, понадобятся в любой компании.
Вот выучитесь и будете понимать эту шутку.
Важные личные качества
Системный администратор — специалист, который не может быть изолированным в компании и профессионально среде. Ему постоянно приходится общаться с людьми по телефону и лично, поэтому интровертные черты придётся побороть. Сисадмин должен быть:
Необходимость знания иностранных языков
Если компания предъявляет требования к знанию языков и они распространяются на специалистов, то системный администратор должен соответствовать этим правилам (например, компания предоставляет аутсорсинговые услуги для зарубежных компаний). Но вообще системный администратор должен понимать базовые команды и системные сообщения на английском языке — для большинства этого достаточно.
Однако если вы хотите расти в карьере, получать международные сертификаты, в том числе Cisco, разбираться в передовых технологиях первым, вам понадобится английский язык не ниже Upper Intermediate. Очень рекомендую сделать эту инвестицию в профессиональное развитие, это не какой-то фантастический уровень, освоить вполне реально даже без способностей к языку.
Где учиться
Профессия системного администратора интересна тем, что для входа в специальность нет специфических требований к обучению, поскольку на сисадмина как такового на особом факультете не учат. Изначально всё зависит от вас — от того, насколько вы готовы самостоятельно осваивать теорию и заниматься практикой, работать с операционными системами (Windows и Unix), периферией, безопасностью. Фактически ваш компьютер должен стать вашей учебной лабораторией (а ещё лучше, если у вас будет отдельная машина под такие задачи, чтобы процесс не мешал основной работе и учёбе).
Сказать, что системный администратор — это профессия без обучения и удел самоучек — в наше время просто преступно, потому что мы видим уровень хорошо оплачиваемых системных администраторов. А значит есть базовый «классический» набор, который вам понадобится.
Вам не удастся обойти азы и стать крутым профессионалом — без знания архитектуры ПК, сервера, понимания принципов работы прикладного и служебного ПО, операционных систем ничего не получится. Поэтому для системных администраторов как никогда актуален тезис «начинайте с начала».
Лучшие книги и средства обучения
Ну и, конечно, Хабр и профильные форумы — отличное подспорье для системных администраторов любого уровня. Когда мне пришлось обучаться науке Windows Server 2012, Хабр оказался сильным подспорьем — тогда мы познакомились ещё ближе.
Будущее сисадмина
Мне приходилось слышать о деградации профессии системного администратора и аргументы в пользу этого тезиса более чем слабые: справятся роботы, облака гарантируют работу без сисадмина и т.д. Вопрос о том, кто администрирует облака, например, на стороне провайдера, остаётся открытым. На самом деле, профессия системного администратора не деградирует, а трансформируется в сторону усложнения и универсальности. Поэтому если вы выбрали именно её, перед вами открываются несколько путей.
Мифы профессии
Как и любая профессия, системное администрирование окружено мифами. С радостью развею самые распространённые.
Главный совет
Чудес не бывает и вы не станете супер сисадмином, если будете сидеть в небольшой конторе и выполнять базовую работу. Вы непременно выгорите, разочаруетесь в профессии и будете утверждать, что это худшая работа в мире. Поэтому — развивайтесь, меняйте работу, не избегайте интересных и сложных задач — и вы сами не заметите, как станете настоящим востребованным и высокооплачиваемым профессионалом.