191

Системный администратор Linux. Вопросы

Собеседования подходят к завершению, кандидаты согласованы, офферы разосланы. А это значит, что настало время выполнить обещания и выложить вопросы к кандидатам.


Если кто пропустил, вот начало: Системный администратор Linux и продолжение: Продолжение поста «Системный администратор Linux»


В комментариях к предыдущим постам было высказано много мнений по поводу тематики и самих вопросов. Была и критика, и занудство, и здравые мысли. От себя могу сказать, что это не универсальный список вопросов для собеседования. Это то, с чем у нас приходится сталкиваться чаще всего, что надо понимать и без чего рост компетенций будет заметно усложнён. Часть вопросов просто для понимания кругозора кандидата.

Системный администратор Linux. Вопросы

Так же и у нас: лучше долго выбирать наиболее подходящих под специфику и быстро догнать до нужного уровня, чем взять и обучить с нуля пусть даже очень грамотного новичка или не профильного специалиста.


Вопросы будут в порядке сложности. На многие вопросы я постараюсь давать два ответа. Первый - краткий и достаточный для того, что бы его зачесть. Второй ответ - более правильный или более развёрнутый, дающий кандидату преимущество перед остальными. Некоторые вопросы/ответы будут в форме диалога.


Готовы? Ну тогда поехали!


В: Как посмотреть версию ядра?

О: uname -a

В+: А если только версию?


О+: uname -r


В: Как узнать какие модули ядра загружены?

О: lsmod

В+: Как загрузить и выгрузить модуль?

О+: Загрузить командой modprobe, выгрузить ей же, но с ключом --remove, если модуль не используется.


В: Есть сервер с двумя интерфейсами. Один интерфейс смотрит в интернет, другой в локалку. На обоих адреса прописаны статикой. Как пользователей из локалки выпустить в интернет через этот сервер?

О: Маршрут по умолчанию должен быть назначен на интерфейс с интернетом, нужно поднять NAT через iptables и SNAT/DNAT или MASQUERADE, надо включить forward пакетов.

В+: Как именно это сделать?

О+: Для примера шлюз будет на RHEL-based дистрибутиве. В других дистрибутивах есть созвучные или аналогичные опции. В настройках интерфейса с локалкой надо прописать defroute=no, на интерфейсе с интернетом defroute=yes. Либо можно указать маршрут в файле route-название_интерфейса, который располагается рядом с файлом настроек интерфейса. Настройка NAT будет зависеть от того, фиксирован ли список клиентов в локалке или нет. Если фиксирован - настройка через SNAT, если не фиксирован - MASQUERADE. Так же, если к клиенту будут обращения из внешней сети, придётся использовать DNAT. Включить forward пакетов можно временно командой echo 1 > /proc/sys/net/ipv4/ip_forward или постоянно, прописав net.ipv4.ip_forward = 1 в файл /etc/sysctl.conf и загрузить их из файла командой sysctl -p.

О++: Можно ещё поднять прокси и выпустить через него. Например squid. При этом либо явно указав этот прокси у клиентов, либо прозрачно, через iptables и POSTROUTING.


[Дословный синтаксис команд не нужен. Главное, что кандидат понимает что именно и как он будет делать. Если кандидат расскажет ещё что такое этот ip_forward - это будет дополнительным плюсом.]


В: Есть сервер с двумя интерфейсами, к каждому из которых подключён отдельный интернет провайдер. Например первый 100 мегабит, второй 50. Можно ли как-то получить суммарный внешний канал в 150 мегабит?

О: Штатно - нельзя. Но можно поставить пакет iproute2, который позволяет сделать два маршрута по умолчанию, каждый из которых будет иметь свой вес. Например вес первого интерфейса сделать вес 2, а второго - 1. Тогда трафик будет пытаться направляться в соотношении 2 к 1 относительно интерфейсов. В идеальных условиях это даст суммарные 150 мегабит. В реальных - будет зависимость и «тяжелых» сессий, которые будут привязываться к одному конкретному интерфейсу.


В: Как посмотреть какой DNS использует система? У нас настроен DHCP и «в лоб» в настройках на клиенте ничего нет. Файл /etc/resolv.conf много где считается устаревшим и там может быть пусто.

О: Попробовать отрезольвить любой адрес. Например командами nslookup, host или dig. Они показывают какой DNS сервер был использован.

В+: А если у нас какая нибудь Ubuntu, которая из коробки за собой тянет dnsmasq? В таком случае эти команды будут говорить, что DNS сервером является 127.0.1.1 или 127.0.0.53. Как быть?

О+: Если есть dnsmasq, значит у него есть конфиги и логи, в которых можно посмотреть что он использует. В крайнем случае можно использовать tcpdump и посмотреть какие есть исходящие подключения на 53 порт.


В: Как посмотреть таблицу маршрутизации на любой системе?

О: Это можно сделать командами route -n или ip r

В+: А на любой системе одной и той же командой?

О+: Команда netstat -rn работает везде, на Linux, Windows, MacOS, Solaris. Даже на Android. В некоторых системах это единственный вариант посмотреть маршруты.


В: Есть LVM. На одной VG есть 2 LV. Один смонтирован в корень системы, другой в /home. При создании разделов ошиблись и создали корень слишком маленький, а home слишком большой. Можно ли как-то перекинуть место из одного раздела в другой? Оба раздела содержат данные, которые нельзя удалять. В разделе home есть достаточно свободного места. Систему нельзя перезагружать.

О: Уменьшить можно, если файловая система позволяет уменьшать свой размер. Например ext4 позволяет это сделать, а xfs - нет. Увеличивать разделы можно «на горячую». Для уменьшения надо размонтировать /home, уменьшить файловую систему, уменьшить LV с этим разделом, смонтировать /home, увеличить LV раздела с корнем, увеличить файловую систему. Командой lvextend с ключом -r последние два действия можно совместить.

В+: А есть там xfs?

О+: Тогда придётся использовать временный диск. Скопировать на него данные из /home, пересоздать раздел меньшего размера, скопировать данные обратно. Можно командами pvs или vgs посмотреть свободное место на LVM. Возможно не всё пространство было размечено и его можно будет использовать вместо временного диска.


В: Как определить тип файловой системы, в которую отформатирован LV раздел в LVM? Команда fdisk -l показывает, что код раздела 83 или 8E, т.е. раздел Linux или LVM раздел.

О: Если раздел смонтирован можно командами df -T, mount или findmnt

В+: А если не смонтирован?

О+: Команда lsblk с ключом -f показывает тип файловой системы и метки, например для oracleasm дисков.


В: Как получить сводку о всём железе?

О: Командами группы ls. Например lspci, lsusb и т.д. Либо cat /proc/cpuinfo, cat /proc/meminfo и т.д.

В+: А более развёрнуто? Например с серийными номерами памяти и количеством плашек памяти?

О+: Можно через smbios командой dmidecode. Либо через ipmitool подключиться к менеджменту, если он есть, и через его shell достать данные.


В: Как обновить все пакеты, кроме одного? Например кроме ядра.

О: В RHEL-based командой yum update --exclude kernel*. В других дистрибутивах должен быть похожий ключ, который можно посмотреть в man’е к пакетному менеджеру.

В+: А если постоянно исключить из обновления?

О+: Можно использовать yum versionlock kernel*. В других дистрибутивах так же можно поискать в man’е по словам lock, hold или freeze.


Для начала, думаю, достаточно. Продолжение будет в следующих постах. Постараюсь сильно с ними не затягивать.

GNU/Linux

1.2K поста15.6K подписчика

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

7
Автор поста оценил этот комментарий

"Ответ новичка на вопрос

-Как выйти из vi?

-Перезагрузка(reset)." )))

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

"Все мы в первый раз закрывали консоль для выхода из vi" (c)

показать ответы
Автор поста оценил этот комментарий
Насколько я помню можно собрать bond из нескольких сетевых адаптеров, объединенив их.
роутинг можно смотреть командой ip r, настройки сетевой карты ip a.
если мне память не изменяет, xfs ресайзится в обе стороны... Хотя могу ошибаться
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Три промаха из трёх. Bond не собирётся на разных провайдерах. Команда ip есть, но речь не про неё. И таки xfs только в бОльшую сторону можно менять.
0
DELETED
Автор поста оценил этот комментарий

Эт типа на водительское сдавать?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это скорее водитель и механик в одном лице.

18
Автор поста оценил этот комментарий

Вопрос о том "как выйти из vi" уже предлагали?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ещё нет. Но в следующий раз это будет номером 1 в списке.

показать ответы
0
Автор поста оценил этот комментарий

> Например командами nslookup, host или dig
Не помню про nslookup но в минимальном центос 6, например, host и dig отсутствуют и надо ставить bind-utils.

раскрыть ветку (1)
Автор поста оценил этот комментарий

В минимале много чего нет. Вернее мало что есть. На то он и минимал. Опять же, в 6й центосе resolv.conf ещё использовался и можно там посмотреть.

показать ответы
2
Автор поста оценил этот комментарий

В: Есть сервер с двумя интерфейсами.

хм... А вот тут я вам ничего не мог бы сказать. На голом сервере с только что установленными подключениями - легко можно как в О. Но на работающем сервере, где уже что-то бегает... Надо сначала смотреть.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вопросы про интерфейсы - это как раз на кругозор. Тут важнее понимание сути происходящего, чем конкретные знания.

показать ответы
4
Автор поста оценил этот комментарий

Как-то слабовато.

При нормальном остальном - про LAN+WAN=Internet бред столетний с masquerade, мы ж ничего не знаем про LAN маршруты и может и там ещё гейт есть по дефолту, раскидывание по iproute2 и два WAN туда же - формально решено будет, а вот работать треть софта не будет так, да и те только по TCP, потому как бред, так делать абсолютно точно нельзя, weight по lanmac/lanip разве что, но тогда эффективность никакая даже при 20 клиентах.


Причём на вопрос 100+50 без сотрудничества с провайдером уже как раз именно формальный тестовый ответ -- НИКАК НЕЛЬЗЯ, вообще, совсем. Это уже точка зрения формализации. В НЕКОТОРЫХ СЛУЧАЯХ когда много коннектов, TCP/Static endpoint UDP, все соединения исходящие итд можно воспользоваться таким, но это нечасто, и уж подавно нельзя от балды по весу раскидывать коннекты как в случае выше.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Для начала и это нормально. А вот если ты понимаешь и начинаешь задавать правильные вопросы в ответ - это только плюс тебе, как кандидату.

показать ответы
4
Автор поста оценил этот комментарий
За знания линуха на этом уровне. Имхо если сравнивать с виндой то это уровень продвинутого эникея.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Очевидно, предыдущие посты ты не читал? Там была и цена и уровень и регион и описание сути вопросов. Вопросы этого поста - начального уровня. Дальше будет сложнее.

показать ответы
5
Автор поста оценил этот комментарий
Сколько платят за это?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Сколько платят за что?

показать ответы
21
Автор поста оценил этот комментарий

и тут я понял что на самом то деле я ни разу не прошареный пользователь ПК, а баба Клава с соседнего подьезда

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если не отличаешь ПК от сервера - да.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества