Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2💊1
Если сервер не пингуется, это не значит, что он не работает – проблема может быть в сети, настройках брандмауэра или самом сервере.
Подойти к серверу и проверить:
Горят ли индикаторы сети (LAN) на сервере?
Реагирует ли на клавиатуру/монитор?
Не завис ли сервер? (Может помочь Hard Reboot).
Проверяем, видит ли наш компьютер MAC-адрес сервера через `arp`.
Запрос ARP
arp -a | grep 192.168.1.100
Если MAC-адрес есть → пакеты доходят до сервера, но он не отвечает.
Если MAC-адреса нет → возможны проблемы с сетью (кабель, порт, VLAN, DHCP, статика).
Дополнительно проверить соединение
ethtool eth0 # Проверить состояние сетевого адаптера
ip link show eth0 # Интерфейс должен быть UP
Если
ping
отключен (ICMP заблокирован брандмауэром), но сервер работает, попробуем другие протоколы. Пробуем зайти по SSH (если это Linux)
ssh user@192.168.1.100
Пробуем зайти по RDP (если это Windows)
rdesktop 192.168.1.100
Пробуем зайти через HTTP (если там веб-сервер)
curl -I http://192.168.1.100
Подключаемся к серверу (если возможно) и проверяем, есть ли у него сеть.
Проверяем IP-адрес сервера
ip a
или
ifconfig -a
Пробуем пропинговать шлюз с сервера
ping 192.168.1.1
Если сервер не отвечает на ICMP, его может блокировать брандмауэр.
Linux (firewalld, iptables, ufw)
iptables -L -n | grep DROP # Проверяем правила iptables
ufw status # Проверяем UFW (если используется)
firewall-cmd --list-all # Проверяем firewalld
Если ICMP запрещен → разрешаем его
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
ufw allow proto icmp
firewall-cmd --add-icmp-block=echo-reply --permanent
firewall-cmd --reload
Windows (Проверить ICMP в брандмауэре Windows)
netsh advfirewall firewall show rule name="File and Printer Sharing (Echo Request - ICMPv4-In)"
Если правило отключено → включаем
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow
Если сервер и клиент находятся в разных VLAN или подсетях, проверяем маршрут.
На клиенте
traceroute 192.168.1.100 # Linux
tracert 192.168.1.100 # Windows
Проверить маршруты на сервере
ip route show
Если маршрут отсутствует → добавляем вручную
ip route add 192.168.1.0/24 via 192.168.1.1
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
- Velero — стандартный инструмент бэкапа Kubernetes:
- Бэкап объектов + PVC.
- Поддержка S3/MinIO.
- Etcdctl snapshot — если бэкапить etcd вручную.
- Kasten K10, Trilio, Stash — коммерческие и open-source альтернативы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4
Если при создании файла в Linux появляется ошибка, что места нет, но
df -h
показывает свободное место, проблема может быть в следующем: Inodes – это структуры, которые хранят метаданные о файлах. Даже если есть свободное место, но inodes кончились, новые файлы создать нельзя.
df -i
Найти каталоги с множеством маленьких файлов:
find /path -xdev -type f | wc -l # Количество файлов в каталоге
В системе могут быть настроены дисковые квоты, которые ограничивают использование диска для пользователя или группы.
quota -v
В системе может быть несколько дисковых разделов (
/
, /var
, /home
и т. д.). Если один из них заполнен, в него нельзя записывать файлы. df -hT
Если файловая система перешла в режим «только для чтения» (read-only) из-за ошибки или сбоя, запись на неё невозможна.
mount | grep ' ro,'
Если файловая система смонтирована с `ro`, значит, запись запрещена. Перемонтировать диск:
mount -o remount,rw /path
Проверить диск на ошибки:
dmesg | tail -20 # Лог ошибок
fsck /dev/sdX # Проверка диска
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
В iptables есть несколько таблиц, каждая отвечает за свою цель:
- filter — основная таблица для разрешения/запрета трафика.
- nat — используется для трансляции адресов (SNAT, DNAT, маскарадинг).
- mangle — модификация пакетов (TTL, приоритет и т.п.).
- raw — используется для исключения пакетов из connection tracking.
- security — дополнительная таблица для меток SELinux (редко используется).
Наиболее часто используются filter и nat.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2🔥1
HTTP (HyperText Transfer Protocol) — это протокол передачи данных в интернете. Он используется для обмена данными между клиентом (браузером) и сервером.
Браузер отправляет запрос →
"GET /index.html HTTP/1.1"
. Сервер отвечает → HTML-страницей (
200 OK
). Браузер отображает страницу.
Клиент-серверная модель → браузер запрашивает, сервер отвечает.
Без состояния (stateless) → каждый запрос независим (нет сессий).
Текстовый протокол → данные передаются в читаемом формате.
Пример запроса от браузера к серверу
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Используйте команду nslookup <домен> или dig <домен> для получения IP-адреса через DNS. Также можно использовать ping <домен> для получения IP-адреса, к которому идёт запрос.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5💊3🔥1
Это системный механизм в Astra Linux (и некоторых других дистрибутивах на базе Debian), который убивает "долгоиграющие" процессы, потребляющие слишком много ресурсов. Он предотвращает зависания системы и защищает от неэффективного использования вычислительных мощностей.
Long Killer анализирует процессы и завершает те, которые:
Запущены от обычного пользователя (не root).
Работают слишком долго (по умолчанию >10 минут).
Потребляют много CPU (по умолчанию >90% CPU).
Используют много памяти (если система близка к OOM – Out of Memory).
Не имеют активности (зависли, например, ожидание ввода).
Он не убивает root-процессы.
Системные службы (например,
sshd
, systemd
) остаются нетронутыми. Если процесс выполняется интерактивно (например, работа в
vim
или nano
), он обычно не трогает его. Если подозреваете, что ваш процесс завершился из-за Long Killer, посмотрите логи
journalctl -u long-killer.service --no-pager | tail -n 20
Также можно проверить
dmesg
dmesg | grep "killed by Long Killer"
Файл конфигурации находится здесь
/etc/long-killer.conf
Пример настроек
MAX_CPU_USAGE=90 # Максимальная загрузка CPU (%)
MAX_EXEC_TIME=600 # Максимальное время выполнения (секунды)
EXCLUDE_USERS=root # Не убивать процессы от root
После изменения перезапустите сервис
systemctl restart long-killer.service
Чтобы полностью отключить Long Killer
systemctl stop long-killer.service
systemctl disable long-killer.service
Запуск от
root
(если это безопасно): sudo my_long_process
Снижение приоритета процесса (nice/renice)
nice -n 10 my_process
renice -n 10 -p <PID>
Использование
nohup
или screen
для фоновых задач nohup my_script.sh &
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Для монтирования диска используется команда, которая связывает файловую систему диска с директорией в системе. После монтирования содержимое диска становится доступным в указанной точке монтирования.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
1💊22👍2
В Linux список дескрипторов файлов можно посмотреть, используя утилиты и команды, которые позволяют работать с процессами и их открытыми файлами. Основным методом является использование файловой системы
/proc
, которая содержит информацию о процессах, включая их открытые файловые дескрипторы.Каждый процесс в Linux имеет свой подкаталог в
/proc
с идентификатором процесса (PID). В подкаталоге fd
хранятся ссылки на открытые дескрипторы файлов.ls -l /proc/$(pidof <имя_процесса>)/fd
Вывод
lrwx------ 1 user user 64 Dec 23 12:00 0 -> /dev/pts/0
lrwx------ 1 user user 64 Dec 23 12:00 1 -> /dev/pts/0
lrwx------ 1 user user 64 Dec 23 12:00 2 -> /dev/pts/0
Команда
lsof
(list open files) отображает список всех открытых файлов в системе.lsof -p <PID>
Пример для всех процессов
lsof
Вывод
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1234 user cwd DIR 8,1 4096 256 /home/user
bash 1234 user rtd DIR 8,1 4096 2 /
bash 1234 user 0u CHR 136,0 0 3 /dev/pts/0
bash 1234 user 1u CHR 136,0 0 3 /dev/pts/0
bash 1234 user 2u CHR 136,0 0 3 /dev/pts/0
Утилита
lsfd
(из пакета util-linux
) удобна для просмотра файловых дескрипторов.lsfd
Вывод
PID FD TTY TYPE DEVICE SIZE/OFF NODE NAME
1234 0 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
1234 1 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
1234 2 /dev/pts/0 CHR 136,0 0 3 /dev/pts/0
Список дескрипторов определенного пользователя:
lsof -u <имя_пользователя>
Список файлов определенного типа (например, сокеты):
lsof -i
Фильтрация по определенному файлу или устройству:
lsof /path/to/file
Определение, какие файлы, сокеты или устройства использует процесс.
Проверка, остаются ли ненужные дескрипторы открытыми.
Диагностика проблем, связанных с блокировкой файлов.
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2
Нет, не включён по умолчанию. Нужно:
- Активировать Aurora Auto Scaling;
- Настроить CloudWatch alarms;
- Привязать к read-replicas или write-секциям.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы.
Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки).
Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры.
Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым.
Процесс A использует 1 ГБ памяти.
Процесс B использует 2 ГБ памяти.
Процесс C использует 500 МБ памяти, но это критический системный процесс.
Процесс A: 300
Процесс B: 600
Процесс C: 100 (низкий, так как процесс критический)
Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге
/proc
. Например, для изменения приоритета процесса:echo -1000 > /proc/<PID>/oom_score_adj
При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно
/var/log/syslog
или /var/log/messages
), что позволяет администраторам анализировать причины и предпринимать меры по предотвращению в будущем.Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
2. curl -fsSL
3. Установить Node.js:
4. sudo apt install -y nodejs
5. Проверить версию:
6. node -v
7. npm -v
Если Astra использует жёсткое разделение уровней доступа (например, в SE версии), может потребоваться временно изменить политику безопасности или установить из исходников.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊13🔥2🤔1
Для того чтобы узнать размер папки на диске, можно воспользоваться различными методами в зависимости от операционной системы. Вот несколько способов для наиболее распространённых ОС:
Откройте Проводник Windows.
Наведите на папку, размер которой вы хотите узнать.
Кликните правой кнопкой мыши и выберите "Свойства".
В открывшемся окне "Свойства" вы увидите размер папки в разделе "Размер".
Откройте командную строку (Cmd) или PowerShell.
Введите следующую команду, заменив
ПутьКПапке
на путь к интересующей вас папке:du -sh ПутьКПапке
Для PowerShell можно использовать
Get-ChildItem ПутьКПапке -Recurse | Measure-Object -Property Length -Sum
Использование терминала
Откройте терминал.
Введите команду
du
, чтобы узнать размер папки. Вот пример команды, которая показывает размер папки в читаемом виде (суммарный размер всех файлов)du -sh /путь/к/папке
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Обычно pipeline в GitLab CI включает следующие стадии:
- build — сборка приложения или зависимостей
- test — выполнение unit/integration тестов
- lint/code-quality — проверка качества кода
- package — упаковка приложения в артефакт (например, Docker-образ)
- deploy — развёртывание на окружение
- cleanup — удаление временных файлов, очистка после деплоя
Конкретные стейджи зависят от проекта, но выше — наиболее распространённый порядок.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥9👍4
Helm-чарты должны быть версионированы, чтобы отслеживать изменения и управлять развертываниями.
Версии чарта (
Chart.yaml
) Версии приложения (
appVersion
) Репозиторий Helm (
helm repo
) Git-теги и CI/CD
Каждый Helm-чарт содержит
Chart.yaml
, где указывается версия чарта. yaml
apiVersion: v2
name: my-app
description: Helm chart for my application
version: 1.2.3
appVersion: 2.0.1
Helm-чарты можно хранить в локальном или удаленном репозитории.
sh
helm package my-chart/
Обновить индекс в репозитории
sh
helm repo index .
Добавить новый чарт в Helm-репозиторий
sh
helm repo add my-repo https://charts.example.com
helm push my-app-1.2.3.tgz my-repo
Обычно чарты хранятся в Git, и версии обновляются автоматически через CI/CD.
Пример автоматического увеличения версии (
version
) в Chart.yaml
через helm/chart-releaser-action
yaml
name: Release Helm Chart
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: 'latest'
- name: Package Helm Chart
run: helm package my-chart/
- name: Upload to Helm Repo
uses: helm/chart-releaser-action@v1
Чтобы развернуть определенную версию Helm-чарта, указываем
--version
sh
helm install my-app my-repo/my-app --version 1.2.3
Или обновить до новой версии:
sh
helm upgrade my-app my-repo/my-app --version 1.2.4
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Разделяемая память (/dev/shm, shmget, mmap) — используется для IPC между процессами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1💊1
Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки.
Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки.
Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза.
Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям,
cherry-pick
позволяет аккуратно перенести только нужные коммиты.Перенос одного коммита из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick коммита
git cherry-pick <commit-hash>
Перенос нескольких коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick нескольких коммитов
git cherry-pick <commit-hash-1> <commit-hash-2> <commit-hash-3>
Перенос диапазона коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick диапазона коммитов
git cherry-pick <start-commit-hash>..<end-commit-hash>
git add <filename>
cherry-pick
git cherry-pick --continue
Если вы хотите прервать процесс
cherry-pick
, можно использовать командуgit cherry-pick --abort
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
- Использовать индексы на полях фильтрации.
- Денормализация или кэширование популярных данных.
- Разбивка на шарды или партиции.
- Чтение batch-ами, а не всё сразу.
- Оптимизация запросов, EXPLAIN PLAN.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM