DevOps | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Show more5 541
Subscribers
-624 hours
+27 days
+3730 days
Posts Archive
🤔 Удалил файлы, но место не очищается, в чем дело?
Если вы удалили файлы, но место на диске не освободилось, это может происходить по нескольким причинам.
🚩Файл все еще используется процессом
Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".
🟠Как проверить:
Используйте команду
lsof (list open files), чтобы найти процессы, удерживающие файл
lsof | grep deleted
🟠Как исправить
Перезапустите процесс или завершите его с помощью kill:
kill -9 <PID>
🚩Файл удален, но он находился в другом файловом пространстве
Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.
🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
df -h
🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.
🚩Файл был удален из директории, но находится в другой ссылке (hard link)
Если файл имеет несколько жестких ссылок, удаление одного из них не освободит место до тех пор, пока не удалены все ссылки.
🟠Как проверить
Используйте команду find, чтобы найти оставшиеся ссылки:
find / -samefile <имя_файла>
🟠Как исправить
Удалите все ссылки на файл.
🚩Файл был удален, но находился в файловой системе с квотой
Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.
🟠Как проверить
Проверьте квоты:
quota -u <username>
🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.
🚩Кэшированные данные или временные файлы
Иногда удаленные файлы остаются в виде кэша, временных данных или не удаляются из корзины.
🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
sudo du -sh /tmp
sudo rm -rf /tmp/*
🟠Как исправить
Удалите временные файлы, очистите кэш:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
Ставь 👍 и забирай 📚 Базу знанийБесплатный курс по дизайну: веб, графический и UX/UI
Получи востребованные навыки:
- создание дизайна сайтов и приложений
- создание инфографики и карточек для маркетплейсов
- работа в графическом редакторе Figma и др.
Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰
Зарегистрироваться
#реклама 16+
ydaev.ru
О рекламодателе
🤔 Есть приложение, мы его запускаем, и оно завершается с кодом, не равным 0. Как его подебажить?
1. Посмотреть exit code — может указать тип ошибки.
2. Проверить логи приложения.
3. Добавить логирование и вывод ошибок в консоль.
4. Запустить через strace или gdb.
5. Проверить зависимости, переменные окружения, права на доступ.
Ненулевой код означает ошибку исполнения — важно найти её источник.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля
Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!
- Бесплатный доступ
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
🤔 Что внутри директории Linux: /proc?
Это виртуальная файловая система, предоставляющая доступ к информации о процессах и системе в реальном времени. Она не занимает место на диске, так как данные в ней формируются ядром Linux динамически. Эта файловая система называется procfs (процессная файловая система).
🚩Основное назначение `/proc`
Предоставляет информацию о запущенных процессах, ресурсах системы и конфигурации ядра. Позволяет взаимодействовать с ядром, изменять параметры системы и получать данные о состоянии процессов.
🚩Ключевые элементы внутри `/proc`
🟠Каталоги с идентификаторами процессов (`/proc/[PID]`)
Каждый процесс в системе имеет каталог в
/proc, название которого соответствует его PID (Process ID). В этих каталогах содержится информация о конкретном процессе:
/proc/[PID]/cmdline: Команда, запустившая процесс.
/proc/[PID]/cwd: Символическая ссылка на текущую рабочую директорию процесса.
/proc/[PID]/exe: Символическая ссылка на исполняемый файл процесса.
/proc/[PID]/fd: Директория с открытыми файловыми дескрипторами.
/proc/[PID]/status: Детализированная информация о состоянии процесса (UID, GID, память и т.д.).
🟠Файлы системы
/proc/cpuinfo
Информация о процессоре (модель, частота, количество ядер).
cat /proc/cpuinfo
/proc/meminfo
Информация о памяти (доступная память, кэш, использованная память).
cat /proc/meminfo
/proc/diskstats: Статистика ввода-вывода для дисков.
/proc/uptime: Время работы системы с момента загрузки.
/proc/loadavg: Средняя нагрузка на систему за последние 1, 5 и 15 минут.
🟠Конфигурационные файлы ядра
/proc/sys: Содержит настраиваемые параметры ядра. Например, можно изменить значение максимального количества открытых файлов:
echo 100000 > /proc/sys/fs/file-max
Некоторые популярные настройки
/proc/sys/net/ipv4/ip_forward: Управление пересылкой IPv4-пакетов.
/proc/sys/kernel/pid_max: Максимальный PID, который может быть назначен процессу.
🟠Сетевые интерфейсы
/proc/net:
Информация о сетевых соединениях и интерфейсах.
Примеры:
/proc/net/dev: Статистика сетевых интерфейсов.
/proc/net/tcp: Состояние TCP-соединений.
🟠Информация об устройствах
/proc/devices: Список всех зарегистрированных устройств (символьных и блочных).
/proc/partitions: Информация о разделах жесткого диска.
Ставь 👍 и забирай 📚 Базу знаний🤔 Почему плохо запускать контейнер от рута в Kubernetes?
- Повышенный риск эксплойта и компрометации хоста;
- Нарушение принципов наименьших привилегий;
- Некоторые security policies запрещают root-контейнеры;
- Контейнер может получить доступ к host namespace и ресурсам.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как задать права на всё?
В Linux права доступа к файлам и папкам регулируются с помощью команд
chmod и chown.
🟠Назначение всех прав (777)
Если вам нужно дать полный доступ ко всем файлам и папкам, используйте
chmod -R 777 /путь/к/папке
-R (recursive) — применяет права ко всем вложенным файлам и каталогам.
777 означает:
7 (чтение, запись, выполнение) для владельца
7 (чтение, запись, выполнение) для группы
7 (чтение, запись, выполнение) для всех остальных
🟠Передача владения (если нет прав)
Если текущий пользователь не владеет файлами, назначьте нового владельца
chown -R username:group /путь/к/папке
username — новый владелец
group — новая группа
🟠Лучший вариант — более безопасные права
Вместо 777 лучше дать только нужные права:
Для исполняемых файлов: chmod 755
Для конфигураций и данных: chmod 644
Для приватных ключей и чувствительных файлов: chmod 600
Ставь 👍 и забирай 📚 Базу знаний🤔 Что означает команда ping ::1?
Эта команда выполняет ping на локальный IPv6-адрес, аналог IPv4 127.0.0.1. ::1 — это loopback-адрес в IPv6, используемый для проверки работы стека IPv6 на устройстве.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Когда выполняются пробы?
Пробы выполняются для оценки и проверки возможностей, навыков или функций, обычно в контексте экспериментов, тестирования или практических заданий. Это может касаться научных экспериментов, технических испытаний или проверок навыков в различных сферах, например, на актерских или рабочих прослушиваниях.
🚩Существует три основных типа:
🟠Liveness Probe (Проверка жизнеспособности)
Liveness Probe проверяет, работает ли контейнер. Если проверка liveness не удалась, Kubernetes перезапускает контейнер.
🟠Readiness Probe (Проверка готовности)
Readiness Probe проверяет, готов ли контейнер обслуживать запросы. Если проверка readiness не удалась, под будет исключен из службы (service) и не будет получать трафик.
🟠Startup Probe (Проверка при запуске)
Startup Probe проверяет, что контейнер успешно запустился. Если проверка startup не удалась, Kubernetes считает, что контейнер не может запуститься, и перезапускает его.
🚩Когда они выполняются:
🟠Периодически в течение жизни контейнера, начиная после заданного периода
initialDelaySeconds. Используется для проверки состояния контейнеров, которые могут войти в неопределенное состояние и требуют перезапуска для восстановления работоспособности.
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
failureThreshold: 3
🟠Периодически в течение жизни контейнера, начиная после заданного периода initialDelaySeconds. Используется для проверки готовности контейнеров, которые могут быть временно не готовы обслуживать трафик, например, во время загрузки данных или выполнения миграций.
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
failureThreshold: 3
🟠В начале жизни контейнера, начиная с момента запуска и до тех пор, пока проверка не будет успешной или пока не истечет заданное время. Используется для контейнеров, которые могут долго запускаться, что предотвращает преждевременные сбои liveness и readiness проб.
startupProbe:
httpGet:
path: /startup
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
failureThreshold: 30
🚩Механизмы
🟠HTTP GET:
Проверка выполняется путем отправки HTTP GET запроса к контейнеру.
httpGet:
path: /healthz
port: 8080
🟠TCP Socket:
Проверка выполняется путем установления TCP-соединения с контейнером.
tcpSocket:
port: 8080
🟠Exec:
Проверка выполняется путем выполнения команды внутри контейнера.
exec:
command:
- cat
- /tmp/healthy
Ставь 👍 и забирай 📚 Базу знаний🤔 Где хранятся метрики?
Метрики могут храниться в памяти демона (например, node_exporter) или записываться в базу Prometheus. Обычно они доступны по HTTP endpoint, откуда считываются системой мониторинга.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что сделать если зависает ssh?
Если SSH завис, не стоит сразу закрывать терминал. Есть несколько причин и решений.
🚩Проверить, можно ли выйти без разрыва сессии
Если SSH завис, но сессия не разорвана, попробуйте выйти без закрытия терминала:
~.
Переключение в режим управления SSH
~Ctrl+Z
🚩Проверить соединение с сервером
Если SSH завис, причина может быть в разрыве соединения. Проверьте:
Работает ли пинг до сервера:
ping server_ip
🔹 Открыт ли SSH-порт (22):
nc -zv server_ip 22
🚩Перезапустить SSH-клиент
Если только один SSH-клиент завис, попробуйте:
pkill -9 ssh
или
killall -9 ssh
Затем переподключитесь
ssh user@server_ip
🚩Проверить SSH-сервер
Если сервер доступен, но SSH зависает, войдите через консоль или другой метод (например, VNC, IPMI).
Если SSH не отвечает, перезапустите его:
sudo systemctl restart ssh
или
service ssh restart
🚩Отключить TCP KeepAlive или изменить таймауты
Иногда SSH зависает из-за разрыва соединения на роутере или файрволе.
Добавьте в ~/.ssh/config на клиенте
Host *
ServerAliveInterval 60
ServerAliveCountMax 5
Или в /etc/ssh/sshd_config на сервере
ClientAliveInterval 60
ClientAliveCountMax 5
Затем перезапустите SSH
sudo systemctl restart ssh
🚩Убить зависшую SSH-сессию на сервере
Если осталось зависшее подключение, найдите его и завершите:
who # Показывает активные пользователи
ps aux | grep ssh # Показывает процессы SSH
pkill -9 -u username # Завершает все сессии пользователя
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое CRD (Custom Resource Definition)?
CRD — это механизм расширения API Kubernetes, позволяющий создавать свои типы ресурсов. Они управляются как стандартные ресурсы, но определяются и обрабатываются отдельно.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Какие есть три вида монтирования в докере?
В Docker есть три типа монтирования данных в контейнеры:
Volumes (Тома) – рекомендуемый способ хранения данных
Bind Mounts (Привязанные тома) – монтирование локальных файлов/папок
Tmpfs (Временное хранилище в RAM) – для быстрого доступа без записи на диск
🚩Volumes (Тома) – лучший вариант хранения данных
Данные хранятся внутри Docker (
/var/lib/docker/volumes)
Можно использовать в нескольких контейнерах
Не зависят от файловой системы хоста
sh
docker volume create mydata
docker run -d -v mydata:/app/data --name mycontainer ubuntu
Удаление тома (только если он не используется)
sh
docker volume rm mydata
🚩Bind Mounts (Привязанные тома) – монтирование папок с хоста
Монтирует директорию с хоста в контейнер
Изменения сразу видны на хосте
Зависит от структуры файлов на хосте
sh
docker run -d -v /home/user/logs:/app/logs --name mycontainer ubuntu
🚩Tmpfs (Временное хранилище в RAM) – быстрый, но не сохраняющийся вариант
Хранит данные в оперативной памяти (RAM)
Очень быстрое чтение/запись
Пропадает при перезапуске контейнера
Пример: создать tmpfs-монтирование для /app/cache
sh
docker run -d --tmpfs /app/cache:size=100m --name mycontainer ubuntu
Ставь 👍 и забирай 📚 Базу знанийRepost from easyoffer
Новая фича на easyoffer – Автоотлики
Вы автоматически откликаетесь на подходящие вам вакансии. Попробуйте её бесплатно и начните получать больше предложений о работе.
🚀 Запуск занимаем всего 3 минуты, а экономит очень много времени
🛡 Это безопасно: easyoffer официально одобрен HeadHunter и прошел его модерацию.
🥷🏻 Автоотклик незаметен для рекртера. Автоотклик ничем не отличается от обычного отклика, который вы делаете вручную
Рекрутеры давно используют автоматизацию для поиска кандидатов. Так почему вы должны откликаться вручную?
💡Совет – Добавьте шаблон сопроводительного письма, чтобы откликаться на большее количество вакансий (на некоторые вакансии нельзя откликнуться без сопроводительного)
Попробовать бесплатно → https://easyoffer.ru/autoapply
🤔 Какие есть три вида монтирования в Docker?
1. Volumes — управляются самим Docker, хранятся в /var/lib/docker/volumes, удобны для долговременного хранения.
2. Bind mounts — указываются вручную, монтируют директорию с хоста, позволяют использовать локальные файлы.
3. tmpfs — размещаются в оперативной памяти, временные, очищаются после остановки контейнера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 На каких принципах работает докер?
Это платформа для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Контейнеры позволяют изолировать приложения и их зависимости, обеспечивая легкую переносимость и консистентность окружения. Основные принципы работы Docker включают в себя контейнеризацию, использование образов, контейнеров, оркестрацию и сетевую инфраструктуру.
🚩Основные принципы
🟠Контейнеризация
Контейнеризация позволяет запускать приложения и их зависимости в изолированных окружениях. Контейнеры предоставляют легкие и эффективные среды, которые включают все необходимое для запуска приложений.
Контейнеры: Легковесные, изолированные окружения, которые работают поверх ядра хостовой операционной системы.
Namespace: Механизм ядра Linux, обеспечивающий изоляцию процессов, сети, PID, пользовательских идентификаторов и монтирования файловых систем.
Cgroups: Контрольные группы в Linux, которые ограничивают и отслеживают использование ресурсов контейнерами, включая процессорное время, память и I/O.
🟠Использование образов
Образы Docker являются шаблонами для создания контейнеров. Образ включает в себя все необходимые компоненты, такие как код приложения, библиотеки, зависимости и конфигурационные файлы.
Dockerfile: Скрипт, содержащий инструкции по созданию образа. Используется для автоматизации создания образов.
Слойность: Каждый образ состоит из нескольких слоев, которые кэшируются и могут использоваться повторно, что ускоряет процесс сборки и уменьшает использование ресурсов.
🟠Изоляция и безопасность
Docker обеспечивает изоляцию приложений, что позволяет запускать несколько контейнеров на одном хосте без взаимного влияния.
Изоляция процессов: Каждый контейнер имеет свой собственный процессорный контекст, что исключает конфликты между приложениями.
Изоляция файловой системы: Контейнеры имеют свои собственные файловые системы, изолированные от файловой системы хостовой операционной системы.
Безопасность: Docker использует механизмы, такие как AppArmor, SELinux и seccomp, для обеспечения безопасности контейнеров.
🟠Управление сетями
Docker предоставляет гибкие возможности управления сетями для контейнеров, включая создание изолированных сетей и подключение контейнеров к различным сетям.
Bridge Network: Создает изолированную сеть для контейнеров на одном хосте.
Host Network: Контейнер использует сетевые интерфейсы хостовой операционной системы.
Overlay Network: Позволяет контейнерам на разных хостах взаимодействовать друг с другом.
Macvlan Network: Контейнеры получают собственные MAC-адреса и ведут себя как физические устройства в сети.
🟠Хранение данных
Docker поддерживает различные механизмы хранения данных для обеспечения сохранности и доступности данных контейнеров.
Volumes: Независимые от контейнеров хранилища данных, которые могут быть подключены к одному или нескольким контейнерам.
Bind Mounts: Позволяют монтировать директории хостовой файловой системы в контейнеры.
Tmpfs: Использует память хоста для хранения данных контейнера, что полезно для временных данных.
Ставь 👍 и забирай 📚 Базу знаний
🤔 Если не успеваешь к дедлайну и появилась дополнительная работа — как поступить?
Варианты:
- Прозрачно заэскалировать: предупредить менеджера, обосновать риски и объем допработы.
- Предложить минимальный MVP в срок, доработки — позже.
- Попросить поддержку команды или делегирование части задач.
- Перепланировать приоритеты и зафиксировать новые сроки.
- Использовать timeboxing и вести трекинг прогресса.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что за протокол http, зачем он нужен?
HTTP (HyperText Transfer Protocol) — это протокол передачи данных в интернете. Он используется для обмена данными между клиентом (браузером) и сервером.
🚩Пример работы HTTP
Браузер отправляет запрос →
"GET /index.html HTTP/1.1".
Сервер отвечает → HTML-страницей (200 OK).
Браузер отображает страницу.
🚩Основные принципы HTTP
Клиент-серверная модель → браузер запрашивает, сервер отвечает.
Без состояния (stateless) → каждый запрос независим (нет сессий).
Текстовый протокол → данные передаются в читаемом формате.
🚩Структура HTTP-запроса
Пример запроса от браузера к серверу
GET /index.html HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0Ставь 👍 и забирай 📚 Базу знаний
🤔 Что такое LDAP?
LDAP (Lightweight Directory Access Protocol) — протокол доступа к распределённой иерархической базе данных:
- Используется для аутентификации (OpenLDAP, Active Directory).
- Хранит данные о пользователях, группах, компьютерах.
- Протокол TCP/389.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Изиоффер переходит в публичное бета-тестирование!
🎉 Что нового:
🟢Анализ IT собеседований на основе 4500+ реальных интервью
🟢Вопросы из собеседований с вероятностью встречи
🟢Видео-примеры ответов на вопросы от Senior, Middle, Junior грейдов
🟢Пример лучшего ответа
🟢Задачи из собеседований
🟢Тестовые задания
🟢Примеры собеседований
🟢Фильтрация всего контента по грейдам, компаниям
🟢Тренажер подготовки к собеседованию на основе интервальных повторений и флеш карточек
🟢Тренажер "Реальное собеседование" с сценарием вопросов из реальных собеседований (скоро)
🟢Автоотклики на HeadHunter
🟢Закрытое сообщество easyoffer
💎 Акция в честь открытия для первых 500 покупателей:
🚀 Скидка 50% на PRO тариф на 1 год
🔥 Акция уже стартовала! 👉 https://easyoffer.ru/pro
