DevOps | Вопросы собесов
前往频道在 Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
显示更多5 566
订阅者
+124 小时
-37 天
-1030 天
帖子存档
🤔 Чем отличается Terraform от Ansible ELK stack?
Terraform — это инструмент для управления инфраструктурой как кодом (IaC), который позволяет создавать, изменять и версионировать облачные ресурсы. Ansible, в свою очередь, является инструментом для управления конфигурациями и автоматизации процессов, таких как настройка серверов или развертывание приложений. ELK stack (Elasticsearch, Logstash, Kibana) — это набор инструментов для сбора, анализа и визуализации логов и данных. Terraform больше фокусируется на создании инфраструктуры, тогда как Ansible используется для её настройки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Для чего директории право на исполнение?
В Unix-подобных операционных системах права доступа для файлов и директорий контролируются тремя основными типами разрешений: чтение (read), запись (write) и выполнение (execute). Права на выполнение для директорий играют особую роль и имеют специфические функции, которые отличаются от прав на выполнение для файлов.
🚩Права доступа
🟠Чтение (r)
Для файла: разрешает просмотр содержимого файла.
Для директории: разрешает просмотр списка файлов и поддиректорий в этой директории (команда
ls).
🟠Запись (w)
Для файла: разрешает изменение содержимого файла.
Для директории: разрешает создание, удаление и переименование файлов и поддиректорий в этой директории.
🟠Выполнение (x)
Для файла: разрешает выполнение файла как программы или скрипта.
Для директории: разрешает доступ к файлам и поддиректориям внутри этой директории (переход в директорию с помощью cd и доступ к ее содержимому).
🚩Особенности права
🟠Доступ к содержимому директории
Право на выполнение позволяет пользователю переходить в директорию с помощью команды cd. Без этого права пользователь не сможет получить доступ к содержимому директории, даже если у него есть права на чтение.
🟠Доступ к файлам и поддиректориям
Право на выполнение позволяет пользователю получить доступ к файлам и поддиректориям внутри директории. Например, если у пользователя есть права на выполнение для директории, он может открывать файлы в этой директории, использовать команды для изменения файлов (например, cat, less, vi), и переходить в поддиректории.
🚩Пример использования
Проверка прав доступа
ls -ld /path/to/directory
Пример вывода
Здесь rwxr-xr-x означает, что владелец имеет права на чтение, запись и выполнение, а группа и остальные пользователи имеют права на чтение и выполнение.
drwxr-xr-x 2 user user 4096 Jul 26 12:00 /path/to/directory
🚩Установка прав
1⃣Добавление права на выполнение
chmod +x /path/to/directory
2⃣Удаление права на выполнение
chmod -x /path/to/directory
🚩Примеры сценариев
🟠Доступ к директории без права на выполнение
1⃣Создание директории и файла
mkdir /tmp/testdir
touch /tmp/testdir/testfile
chmod 600 /tmp/testdir/testfile
chmod 400 /tmp/testdir
2⃣Проверка доступа
ls /tmp/testdir
Вывод: ls: cannot open directory '/tmp/testdir': Permission denied
Попытка перехода в директорию
Вывод: bash: cd: /tmp/testdir: Permission denied
cd /tmp/testdir
🟠Доступ к директории с правом на выполнение
1⃣Установка права на выполнение
chmod +x /tmp/testdir
2⃣Проверка доступа
ls /tmp/testdir
Вывод: testfile
Переход в директорию
cd /tmp/testdir
Ставь 👍 и забирай 📚 Базу знаний🤔 Чем отличаются роли от плейбуков?
В Ansible роли — это шаблоны, которые организуют задачи, переменные и файлы в структуру для многократного использования и удобства. Плейбуки же являются последовательностью задач, которая выполняется на хостах, и могут включать в себя одну или несколько ролей. Роли помогают структурировать плейбуки и разделять логику на многократно используемые модули. Плейбуки, в свою очередь, содержат инструкции по выполнению ролей или отдельных задач.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Где хранится название файла?
Хранится в специальной структуре данных, называемой директорией (или каталогом), а не в самом файле. Файловая система Linux использует иноды для хранения метаданных о файле, таких как размер, права доступа и местоположение данных на диске, но не имя файла.
🚩Концепции
🟠Индексный дескриптор (инод)
Инод хранит метаданные о файле: права доступа, владельца, размер, временные метки и указатели на блоки данных. Иноды не содержат имя файла.
🟠Директория
Это специальный тип файла, который содержит записи о файлах и поддиректориях, находящихся в ней. Каждая запись в директории связывает имя файла с номером инода.
🚩Структура директории
Директория содержит список записей, каждая из которых состоит из имени файла и номера инода. Эта структура позволяет файловой системе быстро находить инод по имени файла.
🚩Пример
1⃣Создание файла
touch myfile.txt
2⃣Просмотр содержимого директории
ls -i myfile.txt
Пример вывода
Здесь 123456 — это номер инода файла myfile.txt.
123456 myfile.txt
3⃣Просмотр информации об иноде
stat myfile.txt
Пример вывода
File: myfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 123456 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2024-07-26 12:00:00.000000000 +0000
Modify: 2024-07-26 12:00:00.000000000 +0000
Change: 2024-07-26 12:00:00.000000000 +0000
1⃣Выделение инода
Файловая система выделяет новый инод для хранения метаданных файла.
2⃣Добавление записи в директорию
Файловая система добавляет запись в директорию, содержащую имя файла и номер инода.
3⃣Сохранение данных файла
Данные файла сохраняются в блоках данных, и указатели на эти блоки хранятся в иноде.
🚩Взаимодействие
1⃣Создание файла
Команда touch myfile.txt создает новый инод и добавляет запись в текущую директорию. Директория связывает имя myfile.txt с новым номером инода.
2⃣Удаление файла
Команда rm myfile.txt удаляет запись в директории, но не обязательно сразу удаляет данные файла. Если инод больше не связан с другими именами файлов (жесткими ссылками), он и связанные с ним блоки данных освобождаются.
3⃣Переименование файла
Команда mv myfile.txt newfile.txt изменяет имя файла, изменяя соответствующую запись в директории, но не трогает сам инод или данные файла.
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое kubernetes?
Kubernetes — это платформа для автоматизированного управления контейнеризованными приложениями, которая упрощает развертывание, масштабирование и управление контейнерами. Он предоставляет инструменты для оркестрации контейнеров в кластере, управления их состоянием и балансировки нагрузки. Kubernetes также автоматизирует задачи, такие как обновление приложений, восстановление контейнеров после сбоев и распределение ресурсов между контейнерами. Это стандартный инструмент для управления микросервисами и облачными приложениями.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Когда вы создаёте файл какие права создаются по умолчанию?
Права доступа по умолчанию зависят от базовых прав доступа и значения
umask. Базовые права доступа — это значения, которые система использует для определения разрешений перед применением маски umask.
🟠Файлы: 666 (rw-rw-rw-)
Это означает, что по умолчанию все пользователи могут читать и записывать в файл.
🟠Каталоги: 777 (rwxrwxrwx)
Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог.
🚩Значение umask: 022
Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение umask указывается в восьмеричной системе счисления.
🟠Создание файла
Базовые права доступа: 666
Значение umask: 022
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)
🟠Создание каталога
Базовые права доступа: 777
Значение umask: 022
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)
🚩Создание файла с umask 0022
1⃣Установка umask
umask 0022
2⃣Создание файла
touch myfile
3⃣Проверка прав доступа
ls -l myfile
Вывод
Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile
🚩Создание каталога с umask 0027
1⃣Установка umask
umask 0027
2⃣Создание каталога
mkdir mydir
3⃣Проверка прав доступа
ls -ld mydir
Вывод
Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir
🚩Дополнительные замечания
🟠umask в скриптах
Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1
🟠Проверка прав доступа в разных ситуациях
Для файлов: По умолчанию права доступа 666 минус umask.
Для каталогов: По умолчанию права доступа 777 минус umask.
Ставь 👍 и забирай 📚 Базу знаний👀 Вы все еще не слышали про канал Путь в IT?
Автор (Илья) на своем примере показывает, через что приходится проходить начинающему специалисту.
😉 Почему такого контента вы еще не видели?
Илья создает уникальные видео, совмещая тренировки, бытовые моменты и рабочий процесс. Сейчас начинающий специалист поступил в вуз и переехал в другой город, поэтому контент будет еще интересней. Если хочешь узнать админа лучше, зайди в закреп его канала.
👋 Подписывайся, данный канал будет разжигать в тебе огонь.
Путь в IT
🤔 Что такое kafka?
Kafka — это распределённая платформа для обработки потоков данных в режиме реального времени, которая предоставляет надёжную систему очередей и логов для передачи сообщений между приложениями. Она используется для сбора, хранения и обработки больших объемов данных, часто применяемая для построения систем потоковой аналитики и обработки событий. Kafka обеспечивает высокую производительность, масштабируемость и устойчивость к сбоям. Её архитектура поддерживает горизонтальное масштабирование за счет разделения данных на партиции.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое umask?
Это команда и настройка в Unix-подобных операционных системах, которая определяет права доступа по умолчанию для новых файлов и каталогов, создаваемых пользователем.
umask устанавливает маску, которая определяет, какие разрешения будут отключены для вновь создаваемых файлов и каталогов.
🟠Базовые права доступа
Для файлов: 666 (чтение и запись для всех). Для каталогов: 777 (чтение, запись и выполнение для всех).
🟠Маска umask
Значение umask указывается в восьмеричной системе счисления и вычитается из базовых прав доступа для определения окончательных прав доступа.
🚩Как работает
Когда создается новый файл или каталог, операционная система сначала применяет базовые права доступа, а затем вычитает значение umask из этих прав.
🚩Пример расчета прав доступа
1⃣Создание файла
Базовые права доступа: 666
Значение umask: 022
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)
2⃣Создание каталога
Базовые права доступа: 777
Значение umask: 022
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)
🚩Установка и проверка
1⃣Проверка текущего значения umask
umask
2⃣Установка нового значения umask
umask 027
🚩Примеры использования
Проверка текущего значения
$ umask
0022
Установка нового значения. После выполнения этой команды новые файлы будут создаваться с правами 640 (rw-r-----), а новые каталоги с правами 750 (rwxr-x---).
$ umask 027
🚩Создание файла с umask 0022
Новый файл myfile будет создан с правами 644.
$ umask 0022
$ touch myfile
$ ls -l myfile
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile
Создание каталога с umask 0027. Новый каталог mydir будет создан с правами 750.
$ umask 0027
$ mkdir mydir
$ ls -ld mydir
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir
🚩Использование umask в скриптах
Чтобы задать значение umask для всех команд в скрипте, можно указать его в начале скрипта.
#!/bin/bash
umask 027
# Все команды ниже будут создавать файлы и каталоги с правами, определенными umask 027
touch file1
mkdir dir1
Ставь 👍 и забирай 📚 Базу знаний🤔 Что показывает load average?
Load average показывает среднее количество процессов, ожидающих выполнения на ядре процессора за последние 1, 5 и 15 минут. Он включает в себя процессы, которые активны и находятся в очереди на выполнение, или ожидают ресурсов, таких как диск или сеть. Load average помогает оценить нагрузку на систему: значение, превышающее количество ядер, может указывать на перегрузку системы. Высокий load average без соответствующей активности процессора может свидетельствовать о блокировке ресурсов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Каким образом диплоили приложение с помощью openshift?
Деплой в OpenShift выполняется через контейнерное изображение, которое загружается в репозиторий. Затем приложение разворачивается с помощью команд
oc или через веб-интерфейс, после чего OpenShift управляет контейнерами, обеспечивая масштабирование и обновления без простоя.
🚩Шаги
1⃣Установка и настройка OpenShift CLI (oc)
Установите OpenShift CLI (oc), чтобы взаимодействовать с кластером OpenShift.
# Скачать и установить OpenShift CLI
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz
tar -xvf openshift-client-linux.tar.gz
sudo mv oc /usr/local/bin/
2⃣Создание проекта
Создайте новый проект в OpenShift, который будет использоваться для развертывания вашего приложения.
# Войти в OpenShift
oc login https://<openshift-cluster-url> --token=<your-token>
# Создать проект
oc new-project my-project
3⃣Подготовка Dockerfile или S2I (Source-to-Image)
Создайте Dockerfile для вашего приложения или используйте S2I для автоматической сборки образов.
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "server.js"]
4⃣Создание и настройка билда
Создайте BuildConfig для сборки вашего образа Docker.
# Создать BuildConfig из Dockerfile
oc new-build --strategy=docker --binary --name=my-app
# Запустить билд
oc start-build my-app --from-dir=. --follow
Если вы используете S2I
# Создать BuildConfig с использованием S2I
oc new-app nodejs:14~https://github.com/username/my-app.git --name=my-app
5⃣Развертывание приложения
Создайте DeploymentConfig для развертывания вашего приложения.
# Создать DeploymentConfig из ранее созданного BuildConfig
oc new-app my-app
# Или, если используется S2I
oc new-app nodejs:14~https://github.com/username/my-app.git --name=my-app
6⃣Настройка маршрутизации (Routes)
Создайте Route для доступа к вашему приложению извне.
# Создать маршрут
oc expose svc/my-app
# Проверить созданный маршрут
oc get routes
Пример деплоя с полным процессом
# Вход в OpenShift
oc login https://<openshift-cluster-url> --token=<your-token>
# Создание проекта
oc new-project my-project
# Создание билда
oc new-build --strategy=docker --binary --name=my-app
oc start-build my-app --from-dir=. --follow
# Развертывание приложения
oc new-app my-app
# Настройка маршрута
oc expose svc/my-app
# Проверка статуса маршрута
oc get routes
Ставь 👍 и забирай 📚 Базу знаний😂 На одном кодинге уже давно не вывезешь, перспектива 2024 года - Информационная Безопасность
Ловите два канала на тему ИБ и хакинга
Арсенал Безопасника - Проект по кибербезопасности - сборник лучших инструментов и утилит по OSINT, хакингу и деанону
Бункер Хакера - Все что необходимо, для того чтобы начать свой путь в безопасности - инструменты, книги, справочники, гайды и ресурсы.
🤔 Что такое зомби процессы?
Зомби-процессы — это процессы, которые завершились, но их запись в таблице процессов остаётся, так как родительский процесс не обработал их код завершения. Они занимают минимальные системные ресурсы, но их наличие может указывать на проблемы в управлении процессами родительским процессом. Зомби-процессы можно устранить только завершением родительского процесса или с помощью сигналов. Наличие большого количества зомби-процессов может привести к исчерпанию доступных PID в системе.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что за команда truncate?
Это команда в Linux, которая используется для изменения размера файла. С ее помощью можно как увеличивать, так и уменьшать размер файла. При уменьшении размера файла данные, находящиеся за новой границей, будут потеряны, а при увеличении — файл будет дополнен нулями.
🚩Возможности команды
🟠Создание новых файлов
Если указанный файл не существует, команда
truncate создаст его с нулевым размером или с заданным размером.
🟠Уменьшение размера файлов
При уменьшении размера файла данные, находящиеся за новой границей, будут потеряны.
🟠Увеличение размера файлов
При увеличении размера файла он будет дополнен нулями до указанного размера.
Синтаксис команды truncate
truncate [OPTIONS] FILE...
🚩Параметры
🟠-s, --size=SIZE: Задает размер файла. Размер может быть указан в байтах или с использованием суффиксов (K, M, G, T, P, E, Z, Y).
🟠-r, --reference=RFILE: Задает размер файла на основе другого файла (RFILE).
🚩Создание файла с заданным размером
Создание файла размером 1 МБ
truncate -s 1M myfile
Создание файла размером 512 байт
truncate -s 512 myfile
🚩Увеличение размера существующего файла
Увеличение файла до 2 ГБ
truncate -s 2G myfile
🚩Уменьшение размера существующего файла
🟠Уменьшение файла до 100 КБ:
truncate -s 100K myfile
🚩Установка размера файла на основе другого файла
Установка размера файла myfile на размер файла referencefile
truncate -r referencefile myfile
🚩Практические примеры
🟠Пример 1
Создаст пустой файл с именем emptyfile.
truncate -s 0 emptyfile
🟠Пример 2
Увеличит размер файла logfile на 500 МБ.
truncate -s +500M logfile
🟠Пример 3
Уменьшит размер файла largefile на 100 КБ.
truncate -s -100K largefile
Ставь 👍 и забирай 📚 Базу знаний📺 Уникальная база записей IT собеседований
180+ записей реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы.
Записи собесов от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.
🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!
У тебя есть запись собеседования? Мы готовы ее купить и заплатим до 3000 руб. за каждую
🤔 Что такое inode?
Inode — это структура данных в файловых системах Unix, которая хранит информацию о файле, включая его метаданные (размер, права доступа, время изменения), но не сам контент файла или его имя. Каждый файл или директория имеет свой собственный inode, и доступ к содержимому файла осуществляется через указатели inode. Inode не хранит информацию о самих данных файла, только о его расположении на диске. Число inode ограничено при создании файловой системы, что может повлиять на её емкость.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как будете решать проблему если у вас коллега постоянно удаляет файлы rm rf но файлы не исчезают и место на диске не освобождается?
Это может быть связано с тем, что файлы все еще открыты каким-либо процессом. В таких случаях система не освобождает пространство до тех пор, пока процесс не завершится. Вот шаги для диагностики и решения этой проблемы:
1⃣Проверка использования диска
Используйте команду
df для проверки использования дискового пространства.
df -h
Проверьте, сколько места занимают файлы в проблемной директории.
du -sh /path/to/directory
2⃣Поиск процессов, держащих удаленные файлы открытыми
Найдите процессы, которые держат открытыми удаленные файлы.
lsof | grep deleted
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
myprocess 1234 user 10r REG 8,1 12345678 567890 /path/to/deleted/file (deleted)
3⃣Завершение процессов
Найдите процесс, держащий файл открытым, по PID (идентификатор процесса) из вывода lsof. Завершите процесс, чтобы освободить место на диске.
kill -9 <PID>
kill -9 1234
4⃣Проверка освобожденного пространства
После завершения процесса, повторно проверьте использование дискового пространства.
df -h
Убедитесь, что место в директории освободилось.
du -sh /path/to/directory
🚩Примеры
Поиск удаленных файлов
lsof | grep deleted
Завершение процесса
kill -9 <PID>
Ставь 👍 и забирай 📚 Базу знанийПерец на канале «Записки необычного препода» делает невозможное!
А именно — встраивает мышление на английском взрослым людям.
Как обычно пытаются научить «думать на языке»? Методом «бери больше, кидай дальше». Слушайте песни, смотрите фильмы, читайте книги в оригинале, и оно само как-нибудь запустится.
Тут всё совсем не так. Тут происходит встраивание языка на кардинально других принципах. В результате вы ощущаете грамматику и слова «изнутри». Так, как бы вы их ощущали, будь вы носителем английского языка.
Почитать подробнее про эту технологию можно тут.
Есть конкретный механизм мышления. Он состоит из визуального слоя, слоя смыслов и слоя слов. Механизм разбивается на элементы. Каждый элемент тренируется отдельно. Оттренированные элементы стыкуются друг с другом с помощью специальных упражнений.
Здесь:
- Пошаговая технология;
- Разбор механик мышления на языке;
- Простота — любое сложное упражнение должно быть разбито на простые.
- Измеримость — все упражнения тренируются до норматива (как правило в секундах). Норматив гарантирует освоение упражнения на уровне навыка.
- Сумма упражнений неизбежно приводит к мышлению на языке. Так же, как правильно собранные вместе детали создают автомобиль.
Вот, например:
- как найти английские артикли в русском;
- как освоить что угодно в 10 раз быстрее;
- как взломать английскую грамматику.
Подписывайся, чтобы узнать больше.
🤔 Что такое Prometheus?
Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая собирает метрики с различных источников, храня их в виде временных рядов данных. Он поддерживает гибкий язык запросов PromQL для анализа собранных метрик и построения графиков. Prometheus активно используется для мониторинга инфраструктуры и приложений, а также интегрируется с системами алертинга, такими как Alertmanager. Он особенно полезен для мониторинга микросервисов и облачных приложений.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Обучение на Frontend-разработчика. С нуля за 9 месяцев.
На курсе вы получите все навыки, необходимые для старта в профессии Frontend-разработчика.
Персональный наставник middle/senior уровня.
14 проектов, лайвкодинг, хакатоны, репетиции техсобеседования.
Освоите JavaScript, React, TypeScript
Официальный диплом и сертификат школы.
Поддержка наставника по JS в течение 3-х месяцев после диплома.
Гарантия трудоустройства. Если вы не устроитесь, вернём деньги. Это закреплено в договоре п. 6.14
Узнать больше
#реклама 16+
result.school
О рекламодателе
