Топ вопросов на собеседовании linux

Обновлено: 05.07.2024

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Вопросы по базовым командам Linux, которые вам могут задать на собеседовании

1) Назовите 15 команд, которые вы наиболее часто используете?

Некоторые примеры (В зависимости от рабочей платформы):

mkdir - Для создания папок (используйте -р для создания нескольких папок за раз)

ls - список директорий / файлов

top - мониторит статус ресурсов системы системы (свободная память, процессор, запущенные приложения и т.д)

lsof - Проверка что происходит на сервере, и какие файлы открываются какими процессами.

netstat -tcp - Дает полную картину о деталях подключения к сети.

vnstat - Статистика ширины полосы (bandwidth)

sh - Запускает shell скрипты

history - История команд, набранных пользователями

cd - Изменения директории

vi - Базовый текстовый редактор, стандартный для всех линуксов.

chmod - Изменение прав доступа к папкам и файлам.

mount - Монтирование файловых систем.

service - Запуск / перезапуск / остановка сервиса.

chkconfig - Перманентное включение / выключение сервиса.

fdisk -l - Список всех разделов вашей файловой системы

Это мой собственный список, у вас, конечно же может быть свой.

2) Назовите несколько команд для управления пользователями.

last, chage, chsh, lsof, chown, chmod, useradd, userdel, newusers.

3) Как делать проверку синтаксиса команд для следующих сервисов:

DNS, SAMBA, Apache и т.д.

Об этом мы погорим в следующих публикациях, т.к. эта тема тянет на отдельный пост.

4) Какие команды делают возможным доступ без использования паролей к другим компьютерам.

expect и ssh-keygen

5) Назовите команды мониторинга безопасности.

lsof, netstat, top, ps -ef, tail, last, tcpdump, sestatus, history, w.


Часть 1 - вопросы об интервью Linux (основные)

Эта первая часть охватывает основные вопросы и ответы об интервью с Linux

1. Каковы различные уровни Linux?

Ответ:
Ниже приведены различные уровни Linux:

  • Аппаратное обеспечение - Внутренний уровень состоит из физических устройств, таких как ОЗУ, ЦП и т. Д. В некоторых ОС может быть программное обеспечение драйвера для связи с устройствами.
  • Ядро - Ядро - это сердце ОС, скрывающее сложности базового оборудования и обеспечивающее абстракцию высокого уровня для верхних уровней. Существуют разные типы ядер, такие как микроядро, монолитное ядро ​​и т. Д. Ядро Linux является монолитным.
  • Shell - Shell - это программа, работающая поверх ядра, которая выступает в качестве основного метода взаимодействия между пользователем и ядром. Проще говоря, это программа, которая может запускать другие программы. В настоящее время графический интерфейс в значительной степени заменяет оболочку. Shell принимает команды и передает их на выполнение.
  • Служебные программы (Утилиты) - Эти программы или программы, работающие на верхнем уровне ОС, помогают пользователю в повседневных общих действиях, таких как планирование работы cron, или определенных задач, таких как создание текстовых документов.

2. Объясните вкратце о трех популярных оболочках Linux?

Ответ:

  • Bash Shell - оболочка по умолчанию во многих дистрибутивах Linux / Unix. Имеет такие функции, как
    1. Изменить историю команд
    2. Оболочка функционирует и дает ей псевдонимы
    3. Неограниченная история команд
    4. Массив неограниченного размера с индексом.
  • Оболочка Tcsh / Csh (обычно называемая оболочкой C) - Tcsh - улучшенная оболочка C,
    1. Больше C, как синтаксис
    2. Автозаполнение слова и имени файла программируется
    3. Проверка орфографии
    4. Контроль работы
  • K Shell - он называется Korn Shell или Ksh. Больше, чем интерактивная оболочка, K shell - это полноценный, мощный язык программирования высокого уровня. Имеет такие функции, как
    1. Параметры и переменные, которые дают вам больше возможностей для настройки вашей среды.
    2. Расширенные функции безопасности
    3. Расширенные регулярные выражения, - известные утилиты, такие как grep и awk.

Давайте перейдем к следующим вопросам об интервью Linux.

3. Какая команда используется для получения руководства о том, как использовать команду?

ИМЯ

Название команды или функции и простое объяснение этого.

СИНТАКСИС

Для команд, как запустить его и параметры, которые он принимает. Для функций - список параметров, которые он принимает, и какой заголовочный файл содержит его определение.

ОПИСАНИЕ

Подробное описание команды или функции, которую мы ищем.

ПРИМЕРЫ

Некоторые примеры использования. Самый полезный раздел

СМОТРИТЕ ТАКЖЕ

Этот раздел будет иметь список связанных команд или функций.

4. Как получить список текущих запущенных процессов и использования ресурсов в Linux?

Ответ:
Это основные вопросы интервью Linux, задаваемые в интервью. Ниже описан процесс и использование ресурсов в Linux:

  • верх - команда, используемая для этого. Это даст всю информацию о каждом процессе, запущенном на машине, например:
    1. Идентификатор процесса (PID)
    2. Владелец процесса (ПОЛЬЗОВАТЕЛЬ)
    3. Приоритет процесса (PR)
    4. Процент CPU (% CPU)
    5. Процент памяти
    6. Общее время процессора тратится на процесс.
    7. Команда используется для запуска процесса.
  • Популярная опция, используемая с командой top -
    1. top -u -> Процесс пользователем.
    2. top - i -> исключить пустые задачи
    3. top -p -> Показать определенный процесс

5. Что такое оператор конвейера в Linux?

Часть 2 - Вопросы об интервью Linux (Advanced)

Давайте теперь посмотрим на расширенные вопросы об интервью Linux.

6. Объясните разрешение файла в Linux. Как это изменить?

Ответ:
Разрешения установлены для всех файлов и каталогов. Разрешения указывают, кто может получить доступ к файлу или каталогу, и типы доступа. Все файлы и каталоги принадлежат пользователю.

Для изменения разрешения - используется chmod . Здесь в разрешениях могут быть указаны разные подходы. Файл (ы) параметров - это один или несколько файлов (или каталогов). Один из подходов к определению разрешений заключается в описании изменений, которые будут применены как комбинация u, g, o и r, w, x. Чтобы добавить разрешение, используйте +, а чтобы удалить разрешение, используйте -.

7. Каков процесс в контексте Linux?

Ответ:
Процесс - это запущенная программа. Процессы могут быть запущены из графического интерфейса или из командной строки. Процессы также могут запускать другие процессы. Всякий раз, когда процесс запускается, Linux отслеживает его через идентификатор процесса (PID). После загрузки первый процесс - это процесс инициализации, называемый init. Ему присваивается PID, равный 1. С этого момента каждый новый процесс получает следующий доступный PID.

Процесс может быть создан только другим процессом. Мы называем процесс создания родительским, а созданный процесс дочерним. Родительский процесс порождает один или несколько дочерних процессов. Нерест процесса может быть выполнен одним из нескольких способов. Каждому требуется системный вызов (вызов функции) для ядра Linux. Эти вызовы функций: fork (), vfork (), clone (), wait () и exec ().

Давайте перейдем к следующим вопросам об интервью Linux.

8. Что такое регулярные выражения (регулярные выражения)? Что означает *, +, ? В регулярном выражении?

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

  1. * Используется для соответствия предыдущему символу, если он появляется 0 или более раз
  2. + Используется для соответствия предыдущему символу, если он появляется 1 или более раз
  3. ? Используется для соответствия предыдущему символу, если он появляется 0 или 1 раз

9. Что такое команда sed?

10. В чем разница между Hard Link и Soft Link?

Ответ:
Мягкая ссылка (символическая ссылка) указывает на другой файл по имени. Поскольку оно просто содержит имя, это имя не обязательно должно существовать или существовать в другой файловой системе. Если вы замените файл или измените содержимое файла без изменения имени, то ссылка все равно будет содержать то же имя и будет указывать на этот файл. Жесткая ссылка указывает на файл по номеру инода. Файл должен фактически существовать в той же файловой системе. Файл будет удален с диска только после удаления последней ссылки на его индекс.

Рекомендуемая статья

Привет общество.
Помогите, нужно собеседовать Linux админов, может кто знает годный список вопросов, или тестов, спасибо.



Типичное: chmod -x /bin/chmod. Как фиксить?

Пусть расскажет про OSI, можно про основные 5 уровней.

А вообще см вопросы экзамена на сайте интуит.ру

roman77 ★★★★★ ( 04.09.14 20:58:28 )
Последнее исправление: roman77 04.09.14 21:05:25 (всего исправлений: 2)


кто знает годный список вопросов, или тестов

сайт redhat тебе в помощь


если основные это tcp ip стек, то их 4


А про chmod какой ответ?

Спроси как загружается линукс.


Про чмод много вариантов.


emerge -1 sys-apps/coreutils и баста.


подробно рассказать историю создания ядра и биографию Торвальдса, пересказать содержимое текста GNU GPL наизусть ну или хотя бы основные моменты :)


Спроси, почему гудит трансформатор =).


Афигеть типичное. Админу просто без этого нельзя, уберскилл.


как заходить на удалённый хост через SSH, используя ключ, а не пароль

Очевидно же, работает под высоким напряжением, и вообще линии тоже гудят :)

как заходить на удалённый хост через SSH, используя ключ, а не пароль

Ничего сложного, для начала настроить SSH на использование ключа.


Очевидно же, работает под высоким напряжением, и вообще линии тоже гудят :)

почему высокое напряжение должно вызывать гудение, почему линии гудят?




Вот ещё варианты:

2. В пользовательский пк установили второй хард, и ос перестала загружаться. В биосе настройки правильные. В чем причина, и как избежать такой проблемы в дальнейшем? (названия блочных устройств в fstab, а не uuid).

3. Можно про основы линукса. Как происходит запуск ос? Какой процесс имеет pid 1? Что он делает? Назначение каталогов в корне (usr, bin, etc)?

Так как я работаю системным администратором Linux (в основном хостинг, виртуальные сервера, выделенные сервера). Бывает, что я собеседуюсь в те или иные компании.
Мне нравится само прохождение собеседования, так как частенько задают вопросы, которые заставляют подумать и узнать что-то новое. Вот я и решился наконец выложить вопросы, которые мне задавали на собеседованиях. По ясным причинам я не буду указывать названия компаний, а просто буду их нумеровать.
Так же в силу того, что я специалист не самого высокого класса, я не буду писать свои ответы, но если Вы захотите, я бы с радостью обсудил возможные ответы в комментариях или по почте.
Так же тут будут, как и вопросы, так и тестовые задания. Некоторые вопросы довольно абсурды и очень мало информации, но что же поделать? Какие есть.
Буду рад если Вы скинете вопросы, которые задавали Вам при собеседовании на ту или иную вакансию.

Вакансии, на которые собеседовался лично.

Есть VPS с CentOS 6 и панелью управления VestaCP. Необходимо:
1. Обновить PHP до версии 5.6
2. Проверить работоспособность PhpMyAdmin/RoundCube
3. Обновить ionCube
4. Перевести Apache с prefork на ITK
5. Установить какой-либо socks прокси

1. Какую технологию ты узнал вчера, на этой неделе, недавно? Естесно связанную с хостингом
2. Можешь мне рассказать о самой большой ошибке которую делал на серверах?
3. Разницу между 0, 1, 5 и 10 рейдом расскажешь кратко? А что такое диск четности?
4. Как посмотреть зону для домена на нужном нс?
5. Расскажи какие LoadAverage в топе светятся и что это такое(la) вообще. Что оно показывает
6. Что такое свап и зачем он нужен? А можно ли отключить свап через sysctl? А в каких ситуациях ты бы рекомендовал вырубать свап?
7. Что такое снмп и приходилось ли использовать? А что он может делать для управления?
8. Что такое chroot jail?
9. Что такое ARP и для чего оно используется? На каком уровне используется этот протокол?
10. В чем разница между пингом и трассировкой
11. В чем разница между tcp и udp? Если я по udp отправляю пакет, я контролирую дошел ли он до получателя?
12. Найди текст test в файлах в папке и всех вложенных. Например хочешь найти пароль к базе данных, а где конфиг не знаешь

1. В чем недостаток установки софта из исходников?
2. Что такое BBU и есть ли смысл в его использовании?
3. Как настроить новый slave для MySQL для одной БД размером 40Gb, в которой есть как innodb так и myisam?
4. LA 8 это много или мало?
5. Допустим Вам поставлена задача настроить https only сайт example.com в nginx для production. Приведите пример ssl настроек для этого сайта (location, logs, тюнинг не нужны - нужны только опции касающиеся ssl)
6. Есть некая программа без исходников которая раньше работала и вдруг перестала запускаться в какой-то момент.
Условия:
- Попросить помощи у ее разработчиков нет;
- в логах никаких ошибок не пишет;
- просто при запуске сразу возвращает управление;
- как можно попытаться понять причину проблему.
7. Хостинг Провайдер выдал нам сервер с CentOS указав доступ для ssh входа на него.
IP: x.x.x.x (реальный IP)
login: root
pass: qwerty
С чего начнете настраивать сервер?
8. date -d@$[$(date -d '2009-10-25 00:00:00' +%s) + 24*60*60]
Sun Oct 25 23:00:00 EET 2009
Добавили 24 часа а получили 23:00. Как такое могло получится?
9. Чем отличается find -maxdepth 1 -name '*txt' -printf "%f\n" от shopt -s dotglob; ls -dC1a *txt; shopt -u dotglob
и в каких ситуациях вывод будет различаться
Важно именно отличие в выводе STDOUT (не STERR)
Сортировка роли не играет
Есть ситуация в которой эти команды будет выдавать разный результат
10. Есть миллион строк в которых очень много дублей
нужно показать из них уникальные (т.е. убрать дубликаты чтобы вместо всех дубллей была всего одна строка)

Необходимо развернуть тестовый кластер на контейнерах с опомощью ansible.
Для контейнеров советую использовать proxmox 3.4 можно и 4.0 но раньше ansible с ним не работал из-за изменений в API.

Например создаете виртуальную машинe в VirtualBox туда ставите proxmox
И с помощью ansible (лучше ставить из git'a только в 2.0 версии сделали плагин для proxmox) написать playbook который будет удалять все контейнеры и создавать заново (образ дефолтного контейнера тоже прийдется сделать самому, инфы в интернете полно по сути нужен контейнер с минимальной версией убунты или дебиан + возможно некоторые пакеты для ansible если они потребуются, мне например потребовался образ с новой версией python'a)

таким образом можно будет проверять основной playbook для кластера, подготавливая чистое окружение.

Кластер должен сотсоять из 6ти контейнеров первые 2 это контенеры с nginx, другие 3 это контенеры с php-fpm (весь софт должен устанавливаться с помощью ansible, конфиги и прочее тоже должны генерироваться через ansible и добавление новой ноды в кластер должно быть простое, без внесения изменений в конфиги) каждый nginx должен уметь load-balancing между php-fpm контейнерами. в php контенейры можно добавить какой-нибудь простой php скрипт, который и будет выполняться.

Т.е у вас должен получится образ 1го контейнера для proxmox на котором чистая ubuntu + минимум пакетов для ansible и playbookов которые разворачивают на основе этого образа кластер.

1. Развернуть на vps (можно взять любую, с бесплатным тестовым периодом, AWS например) стек mariadb, nginx (proxy to apache vhosts), apache2, php-fpm, php 5.6, exim, memcached. Образ можно использовать последний стабильный debian или ubuntu lts.
2. Настроить кеширование в mysql (mariadb) для любых запросов( result query >=1).
3. Настроить конфигурацию innodb заточенную именно для этой vps (под конкретный размер памяти OЗУ).
4. Предоставить пример конфигурации my.ini для сервера баз данных, если бы у сервера было 32 гигабайта памяти и 16 ядер процессора.
5. Настроить тестовый виртуальный хост на nginx, который проксирует запросы на php-fpm, сделать тестовую станицу index.php которая выводит информацию о конфигруации php (<?php phpinfo(); ?>).
6. Поставить доп модули для php - memcached, pdo_mysql, mongo-db, xdebug (если нет в основном репозитории, подключить сторонний).
7. Включить xdebug в конфигурации, (активация отладки - по куке).
8. Добавить пользователя test, и дать беcпарольный доступ к серверу (ssh key).
9. Настроить sudo и дать доступ выполнение команды apt-get apt-cache пользователю test.
10. Настроить на nginx - кеширование fastcgi запросов (если запрос содержит куку сессии, PHPSESSIONID - не кешировать).
11. Обновить пакеты на сервере.
12. Написать скрипт, который показывает какой скрипт или процесс использует максимально а. Диск, б. Процессор. Отсортировать список по убыванию.
13. Занести измененные файлы конфигурации в git (а еще круче если это будет puppet или другая тузла для централизованного конфигурирования сервера).

1. Нормальный LA на сервере виртуального хостинга колеблется от 0 до 2. LA резко увеличивается до 50. Как понять причину повышения нагрузки? Напишите команды для анализа проблемы и вероятные причины начиная с самой вероятной.
2. Каким образом можно гарантированно ограничить каждого пользователя виртуального хостинга от выедания им всех ресурсов cpu и памяти linux сервера, учитывая что mod_php/mod_perl не установлены?
3. Какие методы для борьбы с исходящим спамом через web скрипты и sendmail существуют в mta postfix и exim? Spamassasin и другие спам фильтры рассматривать не нужно.
4. Как организовать ежедневное резервное копирование сервера виртуального хостинга создавая при этом минимум нагрузки на него, учитывая, что он содержит около 10-ти миллионов файлов, а общий объем данных около 300Гб?
5. На одного из клиентов виртуального хостинга направлена DDOS атака. Ваши действия по его предотвращению? Как можно настроить linux сервер так, чтобы воздействие ddos атаки на одного клиента минимально сказалось на общей производительности и доступности сервера?
6. На OpenVZ ноде LA достигает 300. Как понять причину повышения нагрузки? Напишите команды для анализа проблемы и вероятные причины начиная с самой вероятной.
7. Как смигрировать Xen domU с одной ноды на другую с минимальным даунтаймом при условии что общее дисковое хранилище не используется и в качестве виртуальных дисков используется lvm? Опишите несколько вариантов.
8. Предложите способы ограничения количества одновременных подключений с одного ip (система: LAMP + nginx)? Каковы условия применимости каждого из указанных способов?

1. Please write iptables rules that will block all incoming traffic and allow outgoing (browsing from local machine should work, but all incoming connections should be dropped).
2. There is a directory with 2 files that are shown as '. ' and '. '. They have different names, but in console are shown as 3 question marks. How to remove them?
3. If you want to upload some file once per hour to 1 server from 1000 servers, how it can be done? What special cases should be taken into account?
4. You have a folder that stores backups of a few projects. Each project lays in a separate folder and each backup is a tarball file with unique name. Write a Python script that removes all backups for the given project except the last 5.

Задача 1:
- Есть клиенты, которые отдают контент. Клиенты - python+кеширующий nginx.
- За клиентами есть ноды, которые принимают решения и дают инструкции, какой контент отдавать. Ноды на python и чистом tornado.
- Клиенты и ноды общаются с Redis. Клиенты используют его для хранения сессий пользователей и синхронизации друг с другом, ноды используют для хранения и модификации слепков обучения.
- На виртуалке DO (2GB, 2 CPU) они переваривают 300 rps от клиента, дальше начинается рост скорости ответа из-за переполнения пула открытых сокетов. Это ограничение клиента, которое пока не оптимизировалось. Клиент на python видимо медленно закрывает сокеты. Аналогичный клиент на go кладет уже tornado на ноде при 1500 rps. Аналогичный клиент на php без роста скорости ответа работает с 50 rps.
- Ко всем клиентам планируется 100 млн обращений в сутки. Для упрощения задачи будем считать, что доступны только вышеуказанные виртуалки.
- Обращения могут быть из любого региона. Необходимо обеспечить как минимум 4 - AU, US, EU, SG в зависимости от того, откуда пришел пользователь.
- Процентное соотношение обращений из регионов неизвестно и может быть любым. Могут быть пиковые нагрузки, ужимающие весь объем обращений в четырехчасовое окно.

Необходимо:
- Задать уточняющие вопросы.
- Предложить решение по балансировке.
- Описать и аргументировать модель и количество виртуальных машин для отказоустойчивой модели.
- Описать собственные шаги по созданию инфраструктуры.
Любые мысли, мнения и рассуждения приветствуются.

Задача 2:
- Есть Clickhouse в качестве основного хранилища событий
- Количество событий для дева 100 млн в сутки, для продакшена 1 млрд в сутки
- Перед Clickhouse стоит RabbitMQ и воркеры на запись, которые пишут события не чаще раза в секунду.
- 1 млн событий занимает 0.150 GB дискового пространства без учета репликаций и бекапов.
- Для дева достаточная скорость отчетов достигается на одной машине 16 GB, 8 ядер. Для продакшена должны быть распределенные SELECT, чтобы уменьшить время отдачи тех же самых выборок в три раза.
- Скорость записи у Clickhouse высокая: 160к строк в секунду на 2GB, 2CPU. Можно принимать это значение за рабочее).
- Данные можно утилизировать через 90 дней хранения.

Необходимо:
- Предложить минимальную отказоустойчивую конфигурацию, задача которой обеспечить достаточную производительность отчетов, объем хранения и протестировать возможности шардирования, репликации, подъема в случае технических сбоев и отказа одной из машин. При этом для дева допустим полный простой базы в течение 6 часов. Ориентир - минимальная стоимость достаточной конфигурации и высокая скорость реализации инфраструктуры.
- Предложить аналогичную конфигурацию для продакшена, полная потеря работоспособности базы недопустима. Ориентир - максимальная надежность и высокая скорость формирования отчетов.
- Описать и аргументировать конфигурации: характеристики железа, модели шардирования и репликации, модели бекапа и используемые решения, другие способы повышения отказоустойчивости. Можно ссылаться на какие-то определенные хостинги или облачные решения.
- Описать собственные шаги по созданию инфраструктуры.

Присланные вакансии

1. Репликация БД. Процесс настройки и запуска.
2. Как установить свою ОС, со своей разбивкой дисков на выделенный сервер в интернете.
3. Что такое VMware vSphere. Какие в него входят компоненты.
4. Что такое RVM.
5. Что такое qemu, xen, openvz. В чем отличия.
6. Синхронизация данных между серверами. Какие есть варианты?
7. Что такое mdadm. Процедура замены диска. Коротко описать.
8. Какой веб сервер подходит лучше для раздачи видео. Почему?
9. Что такое Amazon EC2 и Amazon S3

Вакансии, найденные на просторах интернета

В ответах следует учитывать что под ОС Unix может пониматься как Linux так и Solaris/HP UX

Читайте также: