Вопросы системному администратору linux

KAZARIN OnLine

Blog about IT, Me, education, etc…

Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 1

Всем привет! Некоторое время назад мне на глаза попалась одна интересная статейка на GitHub — Linux System Administrator/DevOps Interview Questions , попалась она в процессе поиска готового рецепта для собеседования на должность Linux Ops инженера ( капитан очевидность просто).
В итоге, я решил перевести приведенный в ней список вопросов на собеседование, а заодно постараться полно и структурировано ответить на эти вопросы. Таким образом я убиваю сразу двух зайцев — и себя проверяю ( может даже подтягиваю знания и навыки или освежаю их), и материал для блога пишу.

Поехали! Сегодня будет пачка вопрос из раздела «Общих» — эдакое вступление, которым с помощью которого вас могут «прощупать», чтобы понимать — стоит ли вообще идти дальше. Я буду публиковать вопрос и МОЙ ответ на него, а так же оригинал вопроса в скобках ( на случай если кто-то усомнится в правильности перевода).

Общие вопросы / General Questions

1. Что вы узнали, или изучили вчера или в течении последней недели? (What did you learn yesterday/this week?)

Прочел книгу Pro Git, начал читать книгу Google SRE, в запасах лежит еще книга по Ansibe и Docker, по CI/CD, LPIC курсы, ReDHat курсы а так же в голове есть планы на пару книг по СУБД.

2. Расскажите о ваших любимых инструментах администрирования или разработки. (ОС, Редактор, Браузер, утилита и тд)? (Talk about your preferred development/administration environment. (OS, Editor, Browsers, Tools etc.))

  • Web browser — firefox + plugins
  • Email client — thunderbird
  • OS — ubuntu
  • DE — KDE/Cinnamon
  • Text editor — sublime text3 / vim
  • IDE — PyCharm CE

3. Расскажите, какой последний крупных проект связанный с Linux вы закончили. (Tell me about the last major Linux project you finished.)

Создание инфраструктуры для веб студии моих друзей — на физических серверах в датацентре был поднят debian, поверх него proxmox кластер с рядом сервисов — Ansible, wiki, zabbix, gitlab, etc…

4. Расскажите, какую самую большую ошибку вы совершили [в некий недавний период времени] и как бы вы повели себя сейчас. Что вы вынесли для себя из этого опыта? (Tell me about the biggest mistake you’ve made in [some recent time period] and how you would do it differently today. What did you learn from this experience?)

Очищая место на сервере виртуализации случайно снес файлы-тома работающего сервера. Сервер продолжал работать, тк гипервизор держал открытые файловые дескрипторы удаленных томов,однако он не пережил бы ближайшую перезагрузку. С тех пор я зарекся делать какие-либо ручные (то есть не автоматизированные) операции на production системе, тк цена человеческой ошибки слишком высока. Сервер я тогда спас но времени и седых волос мне это стоило.

5. Почему мы должны выбрать вас? (Why we must choose you?)

Потому что я опытный, ответственный, инициативный, творческий инженер, разносторонний человек. А главное я скромный))))

6.Какие функции выполняет DNS сервис в сети? (What function does DNS play on a network?)

В сети ( причем не важно- локальной или в глобальной, типа Интернет), DNS занимается разрешением удобной, человеко-читаемых имен узлов в ip адреса. Можно обойтись и без DNS — использовать IP адреса, однако во первых это банально неудобно, сложно запомнить (да, пока у вас в сети 10 серверов в одной сети — все ок ,а когда у вас почти тысяча как у меня, в разных сетях и локациях — удачи!), а во вторых это тупо неудобно — ведь единожды задав в настройках ряда сервисов DNS имя узла, если мне придется перемещать сервис на другой хост, не достаточно будет сменить одну строчку- привязку имени к адресу, вместо того, чтобы бегать по всем серверам и переписывать это.

7. Что такое HTTP? (What is HTTP?)

“Протокол передачи гипертекста” или Hyper text transfer protocol — прикладной протокол, составляющий основу современного интернета в том виде, в котором его знают большинство пользователей. Изначально разрабатывался для передачи веб страниц, возможности ссылаться между ними друг на друга, а так же на другие ресурсы, делая тем самым интернет чуть более дружелюбным к пользователю. Однако в настоящий момент, он эволюционировал до использования его в качества транспорта и служебного протокола для куда более интересных вещей — как например webDav, Websocket и тп. https://ru.wikipedia.org/wiki/HTTP

8. Что такое HTTP прокси и как он работает? (What is an HTTP proxy and how does it work?)

Промежуточный узел в сети, выполняющий запросы к удаленным ресурсам от имени клиента. Клиентское приложение устанавливает соединение с прокси сервером и отправляет ему запрос так, словно это целевой сервер запрашиваемого ресурса. Прокси, не закрывая соединение, валидирует запрос, разрешает запрашиваемый fqdn хоста назначения, обращается к нему от имени клиента, получает ответ и возвращает его клиенту, после чего закрывает соединение. Если на прокси сервере включено кеширование и кеш “прогрет”, ответ может быть возвращен из него, без обращения к серверу назначения.

9. Кратко опишите как работает HTTPS. (Describe briefly how HTTPS works.)

Работа HTTPS по сути своей не отличается от работы протокола HTTP, т.к. сам прикладной протокол используется тот же, с разницей лишь что для защиты используется дополнительный нижележащий уровень, реализуемый протоколом TLS ( ранее SSL). При подключении клиента к серверу, последний отправляет клиенту сертификат с открытым ключом и подписью этого ключа удостоверяющим центром. Клиент и сервер договариваются о параметрах подключения, используя средства асимметричной криптографии устанавливают сеансовый ключ, после чего начинают уже привычную http сессию, шифрованную посредством TLS, с использованием симметричного криптографического алгоритма и сеансового ключа.

Читайте также:  Код ошибки 805а8011 windows

10. Что такое SMTP? Опишите базовый сценарий — как обычное сообщение электронной почты доставляется с помощью SMTP. (What is SMTP? Give the basic scenario of how a mail message is delivered via SMTP.)

SMTP- Simple mail transfer protocol. Простой протокол передачи почты. Основной ( и дефакто единственный) протокол передачи электронной почты в наше время. Доставляется сообщение просто — пользовательский почтовый агент (MUA) при отправке сообщения, связывается по протоколу smtp с почтовым сервером или точнее с его функцией MSA/MTA (Mail submission/transfter agent — агент отправки/передачи почты), который в свою очередь, анализируя домен получателя, с помощью системы DNS находит хост, ответственный за прием почты в домене адресата (MX — mail exchanger или почтовый обменник) и передает письмо ему. Тот в свою очередь связывается с агентом доставки почты (MDA), передает письмо ему, а тот уже укладывает его в “почтовый ящик” (в виде каталога и набора файлов, записи в БД и тп). Вся эта цепочка реализуется при помощи протокола smtp. Получение письма с почтового сервера реализуется уже другими протоколами.

11. Что такое RAID? Что такое RAID0, RAID1, RAID5, RAID10? (What is RAID? What is RAID0, RAID1, RAID5, RAID10?)

RAID — Redundant Array of Independent Disks или избыточный массив независимых дисков. Как ясно из названия — набор дисков, не связанных между собой напрямую, а только лишь логикой работы, которые обеспечивают избыточность при хранении данных. Как обеспечивается избыточность — зависит от т.н. “уровня raid массива” — как раз тех самых пресловутых raid0 — raid10. Это виды конфигураций массива, отличающиеся логикой работы, минимальным числом диска, “потерями” места на хранение (то есть сколько мы потеряем “чистого” места для обеспечения избыточности), скоростью работы, отказоустойчивостью, легкостью и временем восстановления. Так например:

  • Raid0 — не обеспечивает никакой избыточности, просто объединяя 2 и более дисков в одно “плоское” хранилище, распараллеливая операции записи ( и соответственно чтения, если данные которые мы читаем были записаны на разные диски массива). Хорошо подходит для данных, которыми мы не дорожим но которые надо быстро читать и писать- например кеш. Полезную дисковую емкость мы при использовании такого типа массива не теряем. Выход из строя одного диска означает потерю данных в целом, если вы не использовали какие-то более высокоуровневые механизмы обеспечения отказоустойчивости.
  • Raid1 — зеркало. Два и более дисков которые соединены в просто зеркальное хранилище. То есть один диск является полной копией другого. В некоторых случаях позволяет ускорить запросы на чтение. Теряем половину полезной дисковой емкости, жертвуя ею в угоду избыточности. Выход из строя одного диска мы спокойно переживем, однако на восстановление нам потребуется полное перечитывание оставшегося в живых устройства и полная синхронизация с ним нового диска, подключенного на замену вышедшему из строя.
  • Raid5 — массив из минимум 3 дисков. В данном случае избыточность обеспечивается не зеркалированием данных а расчетом уникальной контрольной суммы от данных хранимых на двух дисках и записью ее на третий — условно говоря у вас есть блок данных, записанных на диск 1, блок на диск 2 и контрольная сумма на диск 3. При записи следующей пачки блоков диски меняются ролями — сумма может быть на 2, а данные на 1 и 3 и тд. Выделенного диска под контрольные суммы нет, данные и метаинформация равномерно распределяются между всеми устройствами в массиве. За счет
  • Raid10 — массив минимум из 4 дисков, по сути представляет собой комбинацию массивов 1 + 0 — то есть два зеркала объединенных в единое плоское хранилище. Мы по прежнему жертвуем половиной доступного пространства однако пытаемся ускорить наше чтение, как это делается в raid0 массиве.

12. Что такое “бекап уровня 0”? Что такое инкрементальный бекап? (What is a level 0 backup? What is an incremental backup?)

Резервная копия уровня 0 — это аналог полной резервной копии в инкрементальном резервном копировании. Итак, что такое полная резервная копия — это просто полная целостная копия сохраняемого объекта. Дамп базы, архив файлов с файл сервера, весь набор блоков, снятый с раздела файловой системы и тп. При инкрементальном или добавочном резервном копировании мы делаем бекап только тех файлов, которые изменены с момента предыдущего успешного резервного копирования. Это ключевое отличие этого метода от диференциального или разностного бекапа, где делается копия файлов, измененных с момента последнего полного резервного копирования.
Инкрементальный бекап самый быстрый- что изменили то и сохранили, однако в случае восстановления он наоборот получается самым медленным т.к. вам необходимо вначале восстановить последнюю нулевую копию а потом последовательно “накатить” на нее все инкрементальные копии.

13. Опишите общее системную иерархию файловой системы Linux. (Describe the general file system hierarchy of a Linux system.)

Стандарт структуры и иерархии файловой системы, изначально предназначенный для linux систем, но позже подхваченный некоторыми разработчики других unix подобных ОС. Описывает файловую структуру как единое иерархическое дерево, даже если некоторые каталоги физически находятся на других носителях ( в отличии от той же windows, которая может это реализовывать но не делает этого по умолчанию). Большинство дистрибутивов linux так или иначе следуют этому стандарту, однако не соблюдают его строго. Есть дистрибутивы, намеренно игнорирующие его. Подробно про структуру можно почитать на википедии ( конечно я не ответил бы так на собеседовании, просто не хочу загромождать статью “копипастой” оттуда): https://ru.wikipedia.org/wiki/FHS

В следующей статье будет опубликован более объемный список вопросов из второго блока — «Простые вопросы / Simple Linux Questions» (28 штук).

Источник

Вопросы системному администратору linux

Copy raw contents

Читайте также:  Asus сабвуфер для windows 10

Copy raw contents

Вопросы для интервью системного администратора Linux/DevOps

Коллекция вопросов для собеседования linux сисадмина/devops. Не стесняйтесь добавлять свои через pull request’ы, issues или сообщением по электронной почте.

  • Что вы узнали за вчера/эту неделю?
  • Расскажите о предпочитаемом окружении разработчика/администратора. (OS, редактор, браузеры, инструменты и т.п.)
  • Расскажите о последнем проекте на Linux, который вы закончили.
  • Расскажите о самой большой неудаче, которую вы допустили [какой-то период времени] и как вы изменились на сегодняшний день. Что вы вынесли из этого опыта?
  • Почему мы должны выбрать вас?
  • Какую роль играет DNS в сети?
  • Что такое HTTP?
  • Что такое HTTP прокси и как он работает?
  • Опишите кратко как работает HTTPS?
  • Что такое SMTP? Расскажите кратко сценарий доставки сообщения через SMTP.
  • Что такое RAID? Что такое RAID0, RAID1, RAID5, RAID10?
  • Что такое резервная копия 0-го уровня? Что такое инкрементальная резервная копия?
  • Опишите иерархию файловой системы в Linux.
  • Какое имя и UID администратора?
  • Как посмотреть все файлы в каталоге, включая скрытые?
  • Какая команда в Unix/Linux удаляет каталог со всем его содержимым?
  • Какая команда в Unix/Linux показывает свободную/используемую память? Существует ли свободная память в Linux?
  • Как найти строку «my konfu is the best» в файлах каталога рекурсивно?
  • Как подключиться к удаленному серверу или что такое SSH?
  • Как получить все переменные окружения и как их можно использовать?
  • Я получил «command not found» при запуске ifconfig -a . Что может быть не так?
  • Что произойдет, если я нажму TAB-TAB?
  • Какая команда показывает доступное свободное пространство на диске в Unix/Linux?
  • Какие команды вы знаете, которые могут быть использованы для проверки DNS записей?
  • Какая команда Unix/Linux используется для изменения владельца файла, прав доступа к файлу?
  • Что делает команда chmod +x FILENAME ?
  • Что означают права 0750 для файла?
  • Что означают права 0750 для каталога?
  • Как добавить пользователя без прав входа в систему?
  • Как добавить/убрать пользователя в/из группы?
  • Что такое bash алиас?
  • Как установить email для пользователя root?
  • Что делает Ctrl+c?
  • Что содержится в файле /etc/services?
  • Как перенаправить STDOUT и STDERR в bash?
  • Какая разница между UNIX и Linux?
  • В чем разница между Telnet и SSH?
  • Объясните три усредненных значения load average и что они означают? Какой командой можно посмотреть load average?
  • Можете назвать букву в нижнем регистре, которая не является валидной опцией для GNU ls ?
  • Что такое модуль ядра Linux?
  • Расскажите по шагам как загрузить систему в однопользовательском режиме для решения проблем.
  • Расскажите по шагам как вы будете решать проблему с ошибкой 404 в веб-приложении, которое вы обслуживаете.
  • Что делают следующие команды и как вы из будете использовать?
  • tee
  • awk
  • tr
  • cut
  • tac
  • curl
  • wget
  • watch
  • head
  • tail
  • Что делает & в конце команды?
  • Что делает & disown в конце команды?
  • Что такое пакетный фильтр и как он работает?
  • Что такое виртуальная память?
  • Что такое swap и для чего он используется?
  • Что такое A-запись, NS-запись, PTR-запись, CNAME-запись, MX-запись?
  • Знаете ли вы еще какие-либо RR-записи и для чего они используются?
  • Что такое Split-Horizon DNS?
  • Что такое sticky bit?
  • Что делает установленный на файл immutable bit?
  • Какая разница между символическими и жесткими ссылками? Что произойдет если удалить символическую/жесткую ссылку?
  • Что такое inode и какая информация хранится в inode?
  • Как принудительно запустить проверку файловой системы при следующей перезагрузке?
  • Что такое SNMP и для чего он используется?
  • Что такое уровень запуска и как узнать текущий?
  • Что такое SSH port forwarding?
  • Какая разница между локальным и удаленным пробросом портов SSH?
  • Какие шаги надо предпринять, чтоб добавить пользователя в систему не используя утилиты useradd/adduser?
  • Что такое MAJOR и MINOR нумерация спец. файлов?
  • Опишите команду mknod и когда она используется?
  • Опишите сценарий, когда вы можете получить ошибку «filesystem is full», но ‘df’ показывает наличие свободного места.
  • Опишите сценарий, когда вы удаляете файл,но ‘df’ не показывает, что место освободилось.
  • Опишите как работает ‘ps’.
  • Что случиться, если процесс-потомок умрет и не будет процесса-родителя, ожидающего его и что в этом плохого?
  • Объясните кратко каждое из состояний процесса.
  • Как узнать какой процесс слушает указанный порт?
  • Что такое зомби-процесс и какова его причина возникновения?
  • Вы запускаете bash скрипт и хотите видеть его вывод на экране и одновременно сохранить этот вывод в файл. Как это сделать?
  • Объясните, что делает echo «1» > /proc/sys/net/ipv4/ip_forward.
  • Кратко объясните, какие шаги надо предпринять, чтоб создать и установить сертификат для сайта https://foo.example.com.
  • Можно ли создать несколько HTTPS виртуальных хостов, используя один IP?
  • Что такое wildcard сертификат?
  • Какие типы файловых систем в Linux вам известны?
  • В чем разница между процессом и потоком? И родительским и потомком процессами после системного вызова fork?
  • В чем разница между exec и fork?
  • Для чего используется nohup ?
  • В чем разница между этими двумя командами?
  • myvar=hello
  • export myvar=hello
  • Как много NTP севреров настроено в вашем локальном ntp.conf?
  • Что означает колонка ‘reach’ в выводе ntpq-p ?
  • Вам необходимо обновить ядро на 100-1000 серверах, как вы будете это делать?
  • Как можно получить Host, Channel, IS, LUN для SCSI диска?
  • Как можно ограничить использование памяти для процесса?
  • Что такое быстрый поиск и замена в bash (^x^y)?
  • Какие вы знаете альтернативные оболочки? Какую вы используете?
  • Что такое tarpipe (или, как вы будете копировать все, включая жесткие ссылки и специальные файлы, с одного сервера на другой)?
  • Как можно проверить, что пакет httpd уже был установлен?
  • Как посмотреть содержимое установочного пакета?
  • Как вы определите какой пакет лучше: openssh-server-5.3p1-118.1.el6_8.x86_64 или openssh-server-6.6p1-1.el6.x86_64?
  • Как вы можете объяснить мне разницу между хранилищем, основанным на блоках и объектах?
  • Что такое туннель и как вы можете обойти http прокси?
  • В чем разница между IDS и IPS?
  • Какие горячие клавиши вы используете регулярно?
  • Что такое Linux Standard Base?
  • Что такое атомарная операция?
  • Вы только что настроили http сервер, который не запустился после рестарта. Что вы будете делать?
  • Какие ключи содержатся в
Читайте также:  Linux mint для старых ноутбуков

/.ssh/authorized_keys и для чего нужен этот файл?

  • Я добавил свой публичный ключ в authorized_keys, но до сих пор получаю запрос пароля. Что может быть не так?
  • Вы когда-нибудь собирали RPM, DEB или solaris пакеты?
  • Что сделает :()< :|:& >;: с вашей системой?
  • Как можно перехватить Linux сигнал из скрипта?
  • Можно ли перехватить SIGKILL?
  • Что происходит, когда ядро Linux запускает OOM killer и как он выбирает какой процесс необходимо убить в первую очередь?
  • Опишите процесс загрузки Linux с максимально возможным количеством деталей, начиная с момента включения компьютера и заканчивая получением приглашения командной строки.
  • Что такое закрытие в chroot?
  • При попытке отмонтировать каталог получаем ошибку занятости, как найти какой PID держит каталог?
  • Что такое LD_PRELOAD и когда он используется?
  • Вы запустили бинарник и ничего не произошло. Как вы будете искать проблему?
  • Что такое cgroups? Можете ли вы указать сценарий, когда это может быть использовано?
  • Как можно удалить файл, имя которого содержит непечатные символы?
  • Как можно увеличить/уменьшить приоритет процесса в Linux?
  • Что такое run-levels в Linux?
    • Запущенный процесс получает EAGAIN: Resource temporarily unavailable при чтении сокета. Как можно закрыть этот плохой сокет/файловый дескриптор без убивания процесса?
    • Что такое localhost и почему ping localhost может не работать?
    • В чем сходство между «ping» и «traceroute»? Как traceroute находит промежуточные хосты?
    • Какая команда можно использовать для поиска всех открытых портов и/или соединений с сокетами на машине?
    • Валидный ли IP адрес 300.168.0.123?
    • Какие IP диапазоны/подсети являются частными или не маршрутизируемыми (RFC 1918)?
    • Что такое VLAN?
    • Что такое ARP и для чего используется?
    • В чем разница между TCP и UDP?
    • Какова цель шлюза по умолчанию?
    • Какая команда используется для просмотра таблицы маршрутизации в Linux?
    • TCP-соединение в сети может быть однозначно определено четырьмя вещами. Что это за вещи?
    • Когда клиент использует бразер для подключения к веб-серверу, какие порты источника и назначения будут у этого соединения?
    • Как можно добавить IPv6 адрес для конкретного интерфейса?
    • Вы добавили IPv4 и IPv6 адреса на eth0 интерфейс. Ping на v4 адрес работает, но ping на v6 адрес дает ответ sendmsg: operation not permitted . Что может быть не так?
    • Что такое SNAT и когда он должен быть использован?
    • Объясните, как можно войти по ssh на Linux сервер, который сбрасывает (DROP) все новые входящие пакеты, используя SSH туннель.
    • Как вы будете противодействовать DDoS атаке?
    • Как можно посмотреть содержимое ip пакета?
    • Что такое IPoAC (RFC 1149)?
    • Как создать пользователя?
    • Как предоставить права пользователю?
    • В чем разница между ‘left’ и ‘right’ join?
    • Объясните кратко разницу между InnoDB и MyISAM.
    • Зачем надо запускать «mysql_secure_installation» после установки MySQL?
    • Как проверить какие задачи запущены?
    • Как вы делаете бекап MySQL?
    • Как вы можете описать ваш workflow при создании скрипта?
    • Что такое GIT?
    • Что такое динамически/статически слинкованные файлы?
    • Что делает «./configure && make && make install»?
    • Для чего используется puppet/chef/ansible?
    • Для чего используется Nagios/Zenoss/NewRelic?
    • Для чего используется Jenkins/TeamCity/GoCI?
    • В чем разница между контейнеризацией и виртуализацией?
    • Как создать нового postgres пользователя?
    • Что такое виртуальный IP адрес? Что такое кластер?
    • Как вывести все строки печатных символов, присутствующих в файле?
    • Как найти зависимости для библиотеки?
    • Что такое Automake и Autoconf?
    • ./configure вывела ошибку, что libfoobar не найдена в система, как вы будете исправлять это? Что может быть не так?
    • Какие преимущества/недостатки у скриптов против компилируемых программ?
    • Какая связь между непрерывной доставкой (continuous delivery) и DevOps?
    • Каковы важные аспекты системы непрерывной интеграции и развертывания?
    • Как бы вы включили совместное использование сетевых файлов в AWS, которые позволили бы экземплярам EC2 в нескольких зонах доступности обмениваться данными?
    • Небрежный сисадмин запустил команду chmod 444 /bin/chmod — как ву будете исправлять проблему?
    • Я потерял пароль пользователя root. Что мне делать?
    • Я перезагрузил удаленный сервер, но спустя 10 минут все еще не могу зайти по SSH. Что может быть не так?
    • Если бы вы попали на пустынный остров с 5 утилитами коммандной строки, то какие утилиты это были бы?
    • Вы сталкиваетесь с случайным компьютером и, похоже, это консоль к мирозданию. Что первое вы наберете?
    • Расскажите о креативном использовании ssh в вашей практике?
    • Вы случайно удалили запущенный скрипт, как вы будете его восстанавливать?
    • Что случится 19 января 2038 года?
    • Как перезагрузить сервер когда команда reboot не доступна?
    • Распакуйте test.tar.gz без использования man и google.
    • Удалите все «*.pyc» файлы рекурсивно из testdir.
    • Найдите все «my konfu is the best» во всех *.py файлах.
    • Замените все вхождения «my konfu is the best» на «I’m a linux jedi master» во всех *.txt файлах.
    • Проверьте доступность 443 порта на машине с IP X.X.X.X.
    • Получите страницу http://myinternal.webserver.local/test.html при помощи telnet.
    • Как отправить email без почтового клиента, только с помощью командной строки?
    • Напишите метод get_prim в python/perl/bash/pseudo.
    • Найдите все файлы, доступ к которым был осуществлен за последние 30 дней.
    • Объясните следующую команду (date ; ps -ef | awk ‘‘ | sort | uniq | wc -l ) >> Activity.log
    • Напишите скрипт, показывающий разницу двух каталогов.
    • Из лог файла, содержащего : [MESSAGE] : [ERROR_NO] — Human readable text выведите сумму/количество указанной ошибки, которая повторяется каждый час, или указанный час.

    Некоторые вопросы ‘заимствованы’ из других замечательных ссылок, например:

    Источник

    Оцените статью