DevOps | Вопросы собесов
5.2K subscribers
34 photos
824 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Тесты t.me/+2P7cpjeyfDVlZjcy
Вакансии t.me/+i5KFWEWJ21hhYWEy
Download Telegram
🤔 Какие утилиты в linux обычно используете для траблшутинга?

🟠`top` и `htop`
Эти утилиты показывают информацию о системных процессах в реальном времени, включая использование CPU, памяти и дискового ввода-вывода.
top
htop


🟠`ps`
Показывает список активных процессов.
ps aux  


🟠`netstat` и `ss`
Показывают сетевые соединения, таблицы маршрутизации, интерфейсы и другую сетевую информацию
netstat -tuln
ss -tuln


🟠`lsof`
Показывает открытые файлы и порты.
lsof
lsof -i :80


🟠`df` и `du`
Показывают информацию о дисковом пространстве. df показывает общий объем использования диска, а du - использование дискового пространства отдельными файлами и директориями.
df -h
du -sh /var/log/*


🟠`ping` и `traceroute`
Используются для диагностики сетевых проблем. ping проверяет доступность хоста, а traceroute показывает путь пакетов к хосту.
ping google.com
traceroute google.com


🟠`curl` и `wget`
Используются для отправки HTTP-запросов и загрузки файлов с веб-серверов. Полезны для проверки доступности веб-сервисов.
curl -I https://www.example.com
wget https://www.example.com/file.zip


🟠`journalctl`
Используется для просмотра системных журналов, управляемых systemd.
journalctl -xe
journalctl -u nginx.service


🟠`dmesg`
Показывает сообщения ядра. Полезно для диагностики аппаратных и загрузочных проблем.
dmesg | grep error  


🟠`strace`
Трассирует системные вызовы и сигналы. Полезно для диагностики проблем с приложениями.
strace -p <PID>  


🟠`tcpdump`
Анализатор сетевых пакетов. Полезно для диагностики сетевых проблем.
tcpdump -i eth0 


🟠`vmstat` и `iostat`
vmstat показывает статистику виртуальной памяти, процессов и CPU. iostat показывает статистику ввода-вывода на устройстве.
vmstat 1
iostat 1


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤔1
🤔 В чём разница между контейнеризацией и виртуализацией?

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

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔3🔥2
🤔 Как проверяете свободное место на диске?

🟠df
disk freе показывает объем свободного и используемого пространства на файловой системе.
df -h  


-h: Показывает информацию в человекочитаемом формате (например, 1K, 234M, 2G).
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /
tmpfs 1.9G 1.2M 1.9G 1% /dev/shm


🟠du
disk usage показывает использование дискового пространства файлами и директориями. Это полезно для поиска крупных файлов и директорий.
du -sh /var/log/* 


-s: Показывает общий размер каждой аргументированной директории.
-h: Человекочитаемый формат.
12M /var/log/apache2
4.0K /var/log/boot.log
56M /var/log/kern.log


🟠lsblk
Показывает информацию о блочных устройствах, включая диски и их разделы.
lsblk  


Вывод команды
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 50G 0 part /
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part /mnt/data


🟠ncdu
NCurses Disk Usage — интерактивная командная утилита для анализа дискового пространства.
ncdu /  


Вывод команды
--- / ---
. 16.0 GiB [##########] /usr
. 8.0 GiB [##### ] /var
. 4.0 GiB [## ] /home


🟠btrfs filesystem df
Используется для файловых систем Btrfs и показывает использование дискового пространства.
sudo btrfs filesystem df /mnt  


Вывод команды
Data, single: total=10.00GiB, used=8.54GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=532.25MiB


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🤔 Что такое Prometheus?

Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая собирает метрики с различных источников, храня их в виде временных рядов данных. Он поддерживает гибкий язык запросов PromQL для анализа собранных метрик и построения графиков. Prometheus активно используется для мониторинга инфраструктуры и приложений, а также интегрируется с системами алертинга, такими как Alertmanager. Он особенно полезен для мониторинга микросервисов и облачных приложений.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥51
🤔 Как будете решать проблему если у вас коллега постоянно удаляет файлы 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>   


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍192🤯1
🤔 Что такое inode?

Inode — это структура данных в файловых системах Unix, которая хранит информацию о файле, включая его метаданные (размер, права доступа, время изменения), но не сам контент файла или его имя. Каждый файл или директория имеет свой собственный inode, и доступ к содержимому файла осуществляется через указатели inode. Inode не хранит информацию о самих данных файла, только о его расположении на диске. Число inode ограничено при создании файловой системы, что может повлиять на её емкость.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥6
🤔 Что за команда 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   


🚩Практические примеры

Создаст пустой файл с именем emptyfile.
truncate -s 0 emptyfile


Увеличит размер файла logfile на 500 МБ.
truncate -s +500M logfile


Уменьшит размер файла largefile на 100 КБ.
truncate -s -100K largefile


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3
🤔 Что такое зомби процессы?

Зомби-процессы — это процессы, которые завершились, но их запись в таблице процессов остаётся, так как родительский процесс не обработал их код завершения. Они занимают минимальные системные ресурсы, но их наличие может указывать на проблемы в управлении процессами родительским процессом. Зомби-процессы можно устранить только завершением родительского процесса или с помощью сигналов. Наличие большого количества зомби-процессов может привести к исчерпанию доступных PID в системе.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7
🤔 Каким образом диплоили приложение с помощью 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


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🤔 Что показывает load average?

Load average показывает среднее количество процессов, ожидающих выполнения на ядре процессора за последние 1, 5 и 15 минут. Он включает в себя процессы, которые активны и находятся в очереди на выполнение, или ожидают ресурсов, таких как диск или сеть. Load average помогает оценить нагрузку на систему: значение, превышающее количество ядер, может указывать на перегрузку системы. Высокий load average без соответствующей активности процессора может свидетельствовать о блокировке ресурсов.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3
🤔 Что такое 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


Ставь
👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
🤔 Что такое kafka?

Kafka — это распределённая платформа для обработки потоков данных в режиме реального времени, которая предоставляет надёжную систему очередей и логов для передачи сообщений между приложениями. Она используется для сбора, хранения и обработки больших объемов данных, часто применяемая для построения систем потоковой аналитики и обработки событий. Kafka обеспечивает высокую производительность, масштабируемость и устойчивость к сбоям. Её архитектура поддерживает горизонтальное масштабирование за счет разделения данных на партиции.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍8
🤔 Когда вы создаёте файл какие права создаются по умолчанию?

Права доступа по умолчанию зависят от базовых прав доступа и значения 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.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🤔 Что такое kubernetes?

Kubernetes — это платформа для автоматизированного управления контейнеризованными приложениями, которая упрощает развертывание, масштабирование и управление контейнерами. Он предоставляет инструменты для оркестрации контейнеров в кластере, управления их состоянием и балансировки нагрузки. Kubernetes также автоматизирует задачи, такие как обновление приложений, восстановление контейнеров после сбоев и распределение ресурсов между контейнерами. Это стандартный инструмент для управления микросервисами и облачными приложениями.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3😁2
🤔 Где хранится название файла?

Хранится в специальной структуре данных, называемой директорией (или каталогом), а не в самом файле. Файловая система 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 изменяет имя файла, изменяя соответствующую запись в директории, но не трогает сам инод или данные файла.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🤔 Чем отличаются роли от плейбуков?

В Ansible роли — это шаблоны, которые организуют задачи, переменные и файлы в структуру для многократного использования и удобства. Плейбуки же являются последовательностью задач, которая выполняется на хостах, и могут включать в себя одну или несколько ролей. Роли помогают структурировать плейбуки и разделять логику на многократно используемые модули. Плейбуки, в свою очередь, содержат инструкции по выполнению ролей или отдельных задач.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍87🔥1
🤔 Для чего директории право на исполнение?

В 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     


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
🤔 Чем отличается Terraform от Ansible ELK stack?

Terraform — это инструмент для управления инфраструктурой как кодом (IaC), который позволяет создавать, изменять и версионировать облачные ресурсы. Ansible, в свою очередь, является инструментом для управления конфигурациями и автоматизации процессов, таких как настройка серверов или развертывание приложений. ELK stack (Elasticsearch, Logstash, Kibana) — это набор инструментов для сбора, анализа и визуализации логов и данных. Terraform больше фокусируется на создании инфраструктуры, тогда как Ansible используется для её настройки.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4👾1
🤔 Как убить процесс?

Обычно это делается с помощью команды 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


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🤔 В чем разница Deployment и DaemonSet?

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

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4