fa
Feedback
DevOps | Вопросы собесов

DevOps | Вопросы собесов

رفتن به کانال در Telegram
5 497
مشترکین
-724 ساعت
-127 روز
-1630 روز
آرشیو پست ها
🤔 Когда к nginx идёт более 1024 соединений, он падает, что делать? 🚩Шаги 1⃣Увеличение лимита открытых файлов Linux системам часто по умолчанию разрешается иметь открытыми не более 1024 файловых дескрипторов на процесс. Это число может быть увеличено. Проверка текущих лимитов: Используйте команду ulimit для проверки текущих лимитов:
ulimit -n
Чтобы увеличить лимит, отредактируйте файл /etc/security/limits.conf и добавьте или измените следующие строки. Перезапустите терминал или перезагрузите систему для применения изменений.
* soft nofile 65536
* hard nofile 65536
2⃣Настройка системных параметров Отредактируйте файл /etc/sysctl.conf и добавьте следующие строки
fs.file-max = 2097152
Примените изменения командой
sudo sysctl -p
3⃣Настройка Worker Connections в Nginx Убедитесь, что в конфигурации Nginx указано достаточно соединений на один процесс. Откройте файл конфигурации Nginx (обычно /etc/nginx/nginx.conf) и настройте параметры worker_connections и worker_rlimit_nofile.
worker_rlimit_nofile 65536;

events {
    worker_connections 65536;
}
4⃣Проверка системных ограничений Отредактируйте файл /etc/security/limits.conf и добавьте или измените строки для увеличения максимального количества процессов
* soft nproc 65536
* hard nproc 65536
Отредактируйте файл /etc/sysctl.conf и добавьте следующие строки:
kernel.pid_max = 4194303
Примените изменения:
sudo sysctl -p
5⃣Перезапуск Nginx После внесения всех изменений перезапустите Nginx для применения новых настроек:
sudo systemctl restart nginx
🚩Пример изменения лимита Редактирование /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536   
Применение изменений sysctl
sudo sysctl -w fs.file-max=2097152   
🚩Пример настройки Nginx 1⃣Редактирование /etc/nginx/nginx.conf
worker_rlimit_nofile 65536;

events {
    worker_connections 65536;
}   
2⃣Перезапуск Nginx
sudo systemctl restart nginx   
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое мониторинг, какие инструменты можно использовать? Мониторинг — это процесс наблюдения за состоянием инфраструктуры и приложений для обеспечения их работоспособности и своевременного реагирования на сбои. Система мониторинга собирает метрики, логи и события для анализа и визуализации. Для мониторинга можно использовать инструменты, такие как Prometheus для сбора метрик, Grafana для визуализации, и ELK stack для логирования. Эти инструменты помогают отслеживать производительность и стабильность системы, а также выявлять аномалии в работе. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Помощь в трудоустройстве в IT-сфере! По всей России объявили бесплатную программу на шестимесячное обучение по IT-cпециальнос
+9
Помощь в трудоустройстве в IT-сфере! По всей России объявили бесплатную программу на шестимесячное обучение по IT-cпециальностям. Запись на участие в программе продлится до конца июля, но чтобы туда попасть, нужно пройти специальный профтест. По результату тестирования сразу узнаете, какая профессия вам подойдет, и проходите ли вы на бесплатное обучение. Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

🤔 Что происходит в тот момент, когда вы набираете в браузере, например google.com? Происходит несколько шагов, чтобы загрузить запрашиваемую веб-страницу. Эти шаги включают преобразование доменного имени в IP-адрес, установление соединения и загрузку содержимого страницы. 🚩Шаги 1⃣Ввод URL и обработка браузером Браузер проверяет кэш на наличие сохраненной копии страницы. 2⃣DNS-резолвинг Если IP-адрес не найден, браузер отправляет запрос к DNS-серверу для получения IP-адреса доменного имени google.com. DNS-сервер отвечает с IP-адресом (например, 172.217.10.46). 3⃣Установка TCP-соединения Браузер устанавливает TCP-соединение с сервером по полученному IP-адресу через трехстороннее рукопожатие (three-way handshake): 1. Клиент отправляет SYN (synchronize) пакет серверу. 2. Сервер отвечает SYN-ACK (synchronize-acknowledge) пакетом. 4⃣Установка HTTPS-соединения (если используется HTTPS) Если используется HTTPS, устанавливается TLS/SSL соединение для шифрования данных: 1. Клиент и сервер обмениваются сертификатами и ключами. 2. Устанавливается защищенный канал для передачи данных. 5⃣Отправка HTTP-запроса Браузер отправляет HTTP-запрос на сервер
GET / HTTP/1.1
Host: google.com 
6⃣Обработка запроса сервером Веб-сервер (например, Nginx или Apache) получает запрос и передает его к приложению (например, к веб-приложению Google). Сервер обрабатывает запрос, возможно, обращаясь к базе данных или другим сервисам, и формирует HTTP-ответ. 7⃣Получение HTTP-ответа Сервер отправляет HTTP-ответ обратно клиенту:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234

<html>
<head><title>Google</title></head>
<body>...</body>
</html>
🚩Дополнительные процессы 🟠Кэширование Браузер может кэшировать ресурсы (CSS, JS, изображения) для ускорения последующих загрузок. Сервер может отправлять заголовки кэширования, такие как Cache-Control и Expires, чтобы указать браузеру, как долго хранить ресурсы. 🟠Асинхронные запросы Страница может использовать JavaScript для выполнения дополнительных запросов к серверу (AJAX) без перезагрузки страницы. 🚩Подробный пример 1⃣Ввод URL Пользователь вводит google.com в адресную строку браузера. 2⃣DNS-резолвинг Браузер отправляет DNS-запрос и получает ответ
google.com has address 172.217.10.46
3⃣Установка TCP-соединения Браузер и сервер выполняют трехстороннее рукопожатие: 1. Клиент: SYN 2. Сервер: SYN-ACK 3. Клиент: ACK 4⃣Установка HTTPS-соединения Браузер и сервер обмениваются сертификатами и устанавливают защищенный канал. 5⃣Отправка HTTP-запроса Браузер отправляет запрос
GET / HTTP/1.1
Host: google.com
6⃣Получение HTTP-ответа Сервер отвечает
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>
<head><title>Google</title></head>
<body>...</body>
</html>     
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое репликасет, деплоймент? `ReplicaSet` — это контроллер в Kubernetes, который обеспечивает поддержание заданного количества подов для определённого приложения, автоматически создавая или удаляя поды по мере необходимости. `Deployment` — это более высокоуровневый объект, который управляет ReplicaSet, добавляя возможность обновления и отката приложений. Deployment используется для более сложных сценариев развертывания и управления приложениями, таких как автоматические обновления и скейлинг. `ReplicaSet` управляет реплицированием подов, а `Deployment` — жизненным циклом приложения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое провайдеры в Terraform? Это плагины, которые позволяют Terraform взаимодействовать с различными облачными провайдерами, сервисами и другими API. Они выступают в роли интерфейсов между Terraform и целевыми инфраструктурами, обеспечивая возможность создания, управления и изменения ресурсов в этих инфраструктурах. 🚩Функции 🟠Определение ресурсов Провайдеры определяют типы ресурсов, которые можно создавать и управлять с их помощью. Например, для провайдера AWS это могут быть ресурсы типа aws_instance, aws_s3_bucket и т.д. 🟠Управление ресурсами Провайдеры содержат логику для создания, обновления, чтения и удаления ресурсов в целевой системе. Они используют API целевых систем для выполнения этих операций. 🟠Аутентификация и настройка Провайдеры обрабатывают аутентификацию и настройки соединения, необходимые для взаимодействия с API целевых систем. 🚩Примеры 🟠AWS (Amazon Web Services) Управление ресурсами в AWS, такими как EC2, S3, RDS и другие. 🟠 Azure Управление ресурсами в Microsoft Azure, такими как виртуальные машины, базы данных и сети. 🟠Google Cloud Platform (GCP) Управление ресурсами в GCP, такими как Compute Engine, Cloud Storage и другие. 🟠Kubernetes Управление кластерами Kubernetes и ресурсами внутри них. 🟠GitHub Управление репозиториями, организациями и командами на GitHub. Пример использования провайдера в Terraform
# Определение провайдера
provider "aws" {
  region = "us-west-2"
  access_key = "your_access_key"
  secret_key = "your_secret_key"
}
# Определение ресурса
resource "aws_instance" "example" {
  ami = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"

  tags = {
    Name = "example-instance"
  }
}
🚩Установка и инициализация 1⃣Определение в конфигурации Провайдеры определяются в конфигурационных файлах Terraform (с расширением .tf). В примере выше это блок provider "aws". 2⃣Инициализация После определения провайдеров в конфигурации необходимо инициализировать рабочее окружение с помощью команды terraform init. Эта команда скачивает и устанавливает все необходимые плагины провайдеров.
terraform init
Пример команды инициализации
Initializing provider plugins...
- Finding latest version of hashicorp/aws...
- Installing hashicorp/aws v3.37.0...
- Installed hashicorp/aws v3.37.0 (signed by HashiCorp)

Terraform has been successfully initialized!
🚩ПлюсыУнифицированный интерфейс Провайдеры обеспечивают единый интерфейс для управления различными инфраструктурами, что упрощает процессы DevOps и автоматизацию. ➕Расширяемость Существует множество провайдеров, что позволяет работать с различными облачными платформами, сервисами и инструментами. ➕Автоматизация Провайдеры позволяют описывать инфраструктуру как код (Infrastructure as Code, IaC), что упрощает автоматизацию и управление инфраструктурой. Ставь 👍 и забирай 📚 Базу знаний

GitHub теперь в Telegram! Более 7000+ репозиториев с исходным кодом нейросетей, ботов, сайтов и других интересных проектов дл
GitHub теперь в Telegram! Более 7000+ репозиториев с исходным кодом нейросетей, ботов, сайтов и других интересных проектов для разработчиков: Всё разбито по #хештегам. Подписывайтесь: @GitHub

🤔 В чем разница Deployment и DaemonSet? `Deployment` в Kubernetes управляет развертыванием приложений, гарантируя наличие определенного количества реплик контейнеров в кластере, их обновление и масштабирование. `DaemonSet`, напротив, гарантирует, что на каждом узле кластера будет запущена ровно одна копия пода, что полезно для запуска системных служб, таких как агенты мониторинга. `Deployment` используется для управления приложениями, требующими масштабирования, а `DaemonSet` — для процессов, которые должны работать на каждом узле. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как убить процесс? Обычно это делается с помощью команды kill, но есть и другие команды, такие как pkill и killall, которые могут быть полезны в разных ситуациях. 🚩Команда `kill` Используется для отправки сигналов процессам. Наиболее часто используемый сигнал — это SIGTERM (15), который вежливо просит процесс завершиться. Если процесс не реагирует на SIGTERM, можно использовать сигнал SIGKILL (9), который принудительно завершает процесс. <PID>: идентификатор процесса, который вы хотите завершить.
kill [опции] <PID>
🚩Примеры использования 🟠Завершение процесса с `SIGTERM` Это вежливая просьба процессу завершиться.
kill <PID>   
🟠Принудительное завершение процесса с `SIGKILL` Это принудительное завершение процесса.
kill -9 <PID>   
🚩Команда `pkill` Используется для отправки сигналов процессам по имени. Она удобна, если вы хотите завершить все процессы с определенным именем.
pkill [опции] <имя процесса>
🚩Примеры использования Завершение процесса по имени с SIGTERM
pkill <имя процесса>   
Принудительное завершение процесса по имени с SIGKILL
pkill -9 <имя процесса>   
🚩Команда `killall` Команда killall завершает все процессы с заданным именем. Она похожа на pkill, но позволяет использовать более сложные шаблоны и опции.
killall [опции] <имя процесса>
🚩Примеры использования Завершение всех процессов с именем processname с SIGTERM
killall processname   
Принудительное завершение всех процессов с именем processname с SIGKILL
killall -9 processname   
🚩Дополнительные команды 🟠Команда `xkill` Используется для завершения графических приложений. При вызове команда позволяет выбрать окно, которое нужно закрыть.
xkill   
🟠Команда `htop` или `top` Используются для интерактивного мониторинга процессов. Вы можете завершить процесс, выбрав его в списке и нажав k в htop или top.
htop
top   
🚩Примеры использования команд Поиск PID процесса
ps aux | grep <имя процесса>   
Завершение процесса
kill <PID>   
Принудительное завершение процесса
kill -9 <PID>   
Завершение всех процессов с именем nginx
pkill nginx
killall nginx   
Принудительное завершение всех процессов с именем nginx
pkill -9 nginx
killall -9 nginx   
Ставь 👍 и забирай 📚 Базу знаний

K2 Cloud + DevOops Conf = бесплатный день конференции для инженеров 💜 Ребята из K2 Cloud помогли организовать Community Day
K2 Cloud + DevOops Conf = бесплатный день конференции для инженеров 💜 Ребята из K2 Cloud помогли организовать Community Day для DevOps-специалистов. 6 ноября ты сможешь бесплатно послушать часть докладов конференции DevOops: от основ работы сертификатов до организации Flux CD monorepo. Для участия нужно только зарегистрироваться. Подробнее на сайте

🤔 Чем отличается 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? Автор (Илья) на своем примере показывает, через что приходится проходить начинающему специалисту. 😉 Почему такого контента вы еще не видели? Илья создает уникальные видео, совмещая тренировки, бытовые моменты и рабочий процесс. Сейчас начинающий специалист поступил в вуз и переехал в другой город, поэтому контент будет еще интересней. Если хочешь узнать админа лучше, зайди в закреп его канала. 👋 Подписывайся, данный канал будет разжигать в тебе огонь. Путь в 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 без соответствующей активности процессора может свидетельствовать о блокировке ресурсов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

DevOps | Вопросы собесов - آمار و تحلیل کانال تلگرام @easy_devops