Linux Skill - Освой Linux c нуля до DevOps – Telegram
Linux Skill - Освой Linux c нуля до DevOps
11.2K subscribers
54 photos
103 videos
482 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
🔍 Как объединить логи всех контейнеров в одном месте

Привет, укротитель логов!

Вчера в комментах подсказали инструмент logdy — теперь смотрю все логи через браузер. Один бинарник, никаких зависимостей. Показываю все режимы работы.

Установка за 10 секунд

# curl https://logdy.dev/install.sh | sh


## Простой режим — один лог

# tail -f /var/log/syslog | logdy --ui-ip=0.0.0.0


Или так:
# logdy --ui-ip=0.0.0.0 follow /var/log/syslog


Открывай http://твой-ip:8080 — логи в браузере!

Логи Docker контейнера

# docker logs 761965fa13b2 --follow | logdy --ui-ip=0.0.0.0


Объединение нескольких контейнеров

Запускаем logdy в режиме сокетов:
# logdy --ui-ip=0.0.0.0 socket 8123 8124


Направляем логи каждого контейнера:
# docker logs d20339949095 --follow | logdy forward 8123
# docker logs 761965fa13b2 --follow | logdy forward 8124


Теперь все логи в одном интерфейсе с фильтрацией по источнику!

Для локальной разработки

# node app.js | logdy


В VS Code: Ctrl+Shift+P → "Simple Browser: Show" → http://localhost:8080

API режим с токеном

Запускаем с API:
# logdy --ui-ip=0.0.0.0 --api-key=secrettoken


Отправляем логи через curl:
curl --location --request POST 'http://1.2.3.4:8080/api/log' \
--header 'Authorization: Bearer secrettoken' \
--header 'Content-Type: application/json' \
--data '{"logs": [{"log": "this is a log message as a string" }],"source":"machine identifier"}'


Режим stdin для пайпов

# logdy stdin


Фишки logdy:
- Парсит JSON логи автоматически
- Разбивает на колонки
- Фильтрация и поиск в реальном времени
- Защита паролем через ключи запуска
- Экспорт логов

💡 Где выручает:
- Отладка микросервисов
- Мониторинг нескольких контейнеров
- Быстрый просмотр логов без SSH
- Демо для заказчика

Итог: один инструмент покрывает 90% задач с логами. Особенно круто для Docker-окружения.
____________________

Дополнительный материал:
🧠 - Путешествие LXD: Как Контейнеры LXD Переопределили Виртуализацию
🧠 - Удаление файлов и каталогов без стресса
🧠 - Создание Docker Образов и Магия Сетей: От Одиночных Узлов до Docker Swarm

#Linux_Mastery #logs #devops #docker #monitoring #tools
👍9🔥7
🔧 История команд исчезает? Вот решение

Привет, хранитель команд!

Бесит, когда нужная команда не сохранилась в history? На всех своих серверах первым делом настраиваю правильное хранение истории. Делюсь проверенными настройками для ~/.bashrc.

Мгновенное сохранение команд

PROMPT_COMMAND='history -a'

Команда сохраняется сразу после ввода, а не при выходе из сессии.

Метки времени для команд

export HISTTIMEFORMAT='%F %T '

Теперь видно когда выполнялась команда: 2024-09-25 16:39:30

Увеличение размера истории

export HISTSIZE=10000

Вместо дефолтных 500 команд — храним 10000. Хватает с запасом.

Исключение мусорных команд

export HISTIGNORE="ls:history:w:htop:pwd:top:iftop"

Эти команды не засоряют историю.

Пробел = команда не сохраняется

export HISTCONTROL=ignorespace

Поставил пробел перед командой — она не попадёт в историю.

Применение настроек

# source ~/.bashrc


Проверка параметров

# export | grep -i hist


Для всех пользователей

Создай файл /etc/profile.d/history.sh с этими настройками — применится для всех.

Поиск по истории

Быстрый поиск: Ctrl+R и начинай вводить команду. Повторное Ctrl+R — следующее совпадение.

Мой способ через grep:
# history | grep 'apt install'


⚠️ Опасный подвох HISTIGNORE

История из жизни: htop в исключениях → перезагрузил сервер командой reboot → зашёл обратно → запустил htop → закрыл → нажал стрелку вверх для повтора → там reboot (htop не сохранился!) → Enter на автомате → сервер ушёл в ребут 🤦

Мораль: осторожнее с исключениями и стрелкой вверх!

💡 Итог: правильная настройка history экономит часы при поиске той самой команды, которую вводил месяц назад.
____________________

Дополнительный материал:
🧠 - Btrfs: Революция Файловых Систем в Мире Linux
🧠 - Станьте мастером привилегий в Linux: Всё о sudo и su
🧠 - Docker Swarm & GitLab: Ускоряем Деплой Проектов с Шифрованием Секретов

#Linux_Mastery #linux #terminal #bash #productivity #sysadmin
👍23🔥2
SS: находим атакующих за 30 секунд

Эй, ловец сетевых пакетов!

Netstat устарел, в новых дистрибутивах его нет. Пора привыкать к SS. Делюсь рабочими командами и трюком, как запомнить ключи через слово "тулуп".

Базовые команды SS

Все открытые порты (запомни как "тулуп"):
# ss -tulnp


Проверка unix-сокетов:
# ss -l | grep .sock


Все unix-сокеты (но вывод перегружен):
# ss -ax


Активные соединения

# ss -ntu


Поиск атакующих — практика

Подсчёт соединений с каждого IP:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | \
cut -d: -f1 | sort | uniq -c | sort -n | sed 's/^[ \t]*//'


Только IP с более 30 соединениями:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | \
cut -d: -f1 | sort | uniq -c | sort -n | sed 's/^[ \t]*//' | \
awk '{if ($1 > 30) print$2}'


Общее количество активных соединений:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | wc -l


Все соединения (не только активные):
# ss -ntua


Применение на практике

Получил список подозрительных IP? Отправляй их в:
- fail2ban
- ipset
- nftables

И блокируй атакующих автоматически!

Минус SS: в узком терминале вывод расползается. Приходится разворачивать окно на весь экран, в отличие от компактного netstat.

Лайфхак: "tulnp" = "тулуп". Глупо звучит, но реально помогает запомнить ключи навсегда.

💡 Итог: SS неудобнее netstat визуально, но работает быстрее и есть везде по умолчанию. Пора переучиваться.
____________________

Дополнительный материал:
🧠 - От Knoppix до MX Linux: Путешествие Debian-базированных Дистрибутивов
🧠 - Управление файлами и каталогами как профи
🧠 - Ваш путеводитель по командам Adduser и Addgroup в Linux

#Linux_Mastery #linux #terminal #networking #security #ddos
👍22
Media is too big
VIEW IN TELEGRAM
🔥 Как я ускорил поиск с 10 секунд до миллисекунд

Привет, цифровой архитектор!

Твой поиск по базе тормозит как трактор в болоте? Пользователи ждут результаты вечность, а ты не знаешь, как это починить? Сейчас покажу реальное решение.

📍 Таймкоды видео:
00:00 — Введение в Elasticsearch
02:05 — Почему обычный поиск тормозит
05:49 — Основные понятия: индексы, документы, запросы
07:09 — Установка через Docker
08:23 — Базовые команды GET, PUT, POST
10:51 — Добавление и обновление документов
14:19 — Настройка поиска и ранжирование
18:29 — Реальный пример: веб-приложение на Spring Boot
25:43 — Тестирование и результаты

🚀 Попробуй настроить у себя и сравни скорость!

🌐 Источник: https://youtu.be/vxE1aGTEnbE?si=1tTdg2QASMGfF6f_
____________________

Дополнительный материал:
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации
🧠 - Linux Mastery: Управление разрешениями каталогов с помощью chmod
🧠 - Станьте мастером управления пользователями и группами в Linux с помощью команд adduser и addgroup

#Linux_youtube #Elasticsearch #DevOps #Search #Docker #Performance #Database
🔥3
Вопрос из теста Linux Essentials Certification: How could one search for the file foo.txt under the directory /home? | Как можно найти файл foo.txt в директории /home?
Anonymous Quiz
43%
find /home -name foo.txt
16%
find /home -file foo.txt
6%
search /home -file foo.txt
7%
search /home foo.txt
28%
find /home foo.txt
👍9👎2
Вопрос из теста Linux Essentials Certification: You have a program called /user/bin/foo. You wish to create a symbolic link, /home/user/bin/foo, that points to it. Which command will do this task?
Anonymous Quiz
21%
ln --symlink /home/user/foo /user/bin/foo
10%
ln /user/bin/foo /home/user/foo
60%
ln -s /user/bin/foo /home/user/foo
3%
ln -sys /home/user/foo /user/bin/foo
6%
ln /home/user/foo /user/bin/foo
👎23👍7
Что делает эта команда?

adduser --disabled-login [OPTIONS] user


Не гугли — напиши в комментах 👇

#linux #bash #useradd #devops #вопрос
👍4👀2
Media is too big
VIEW IN TELEGRAM
🔧 Устанавливаем полноценный Linux на MacBook с M1

Можно ли жить на Linux, если у тебя MacBook с Apple Silicon?
Автор проверяет это вживую: Fedora AArch64, KDE, Steam, Docker, OBS — всё на голом железе без виртуалок.

👨‍💻 Что в видео:
— Установка Linux с нуля на Mac M1
— Автомонтирование, Steam, Docker, OBS
— Что работает, что нет (Thunderbolt, USB 4, Touch ID)
— Настройки для игр, DevOps и реального использования

🌐 Источник: https://www.youtube.com/live/riKVQjbO-nU?si=8bOjeM8RVXdX88A2

#linux #macbook #fedora #asahi #arm64 #devops
👍8🔥4
🔥 Fstab блокирует загрузку? Переходи на systemd

Привет, мастер монтирования!

Облачные провайдеры давно используют systemd для управления дисками в твоих виртуалках. Я однажды чуть не потерял данные, не зная этого.

👉 Показываю, как systemd заменяет fstab и почему это лучше

#Linux_Mastery #systemd #mount #linux #devops #storage
👍7👀4
Что делает эта команда?

ar [OPTIONS] archive_name member_files


Не гугли — напиши в комментах 👇

#linux #bash #useradd #devops #вопрос
👍5
Media is too big
VIEW IN TELEGRAM
📉 Диагностика производительности в Linux: с чего начать?

Если top, iotop, perf, uptime и vmstat вызывают только лёгкую тревогу, а не понимание — это видео для тебя.

Разбираем, как анализировать ресурсы, собирать метрики, строить флеймграфы и не ловить фантомные баги при помощи методики Брендона Грега.

🌐 Источник: https://www.youtube.com/watch?v=bGqdRyXWPP0

#linux #performance #diagnostics #devops #monitoring
👍11
Вопрос из теста Linux Essentials Certification: What is the first character for a file or directory names if they should not be displayed by commands such as ls unless specifically requested?
Anonymous Quiz
25%
\ (обратный слэш)
9%
- (минус)
62%
. (точка)
4%
_ (подчеркивание)
👍4
Вопрос из теста Linux Essentials Certification: Which of the following is a combined audio/video interface for transmission of digital data? / Какой из следующих интерфейсов является комбинированным аудио/видео интерфейсом для передачи цифровых данных?
Anonymous Quiz
9%
DVI
2%
DVD
2%
ATI
86%
HDMI
2%
VGA
👍1
Что делает эта команда?

$  cpulimit -l 30 dd if=/dev/zero of=/dev/null &


Не гугли — напиши в комментах 👇

#linux #cpulimit #вопрос
👍4👀4
Media is too big
VIEW IN TELEGRAM
💥 SSH-туннель: доступ к закрытым портам за минуту

Привет, мастер удалённого доступа!

База данных спрятана за файрволом? Веб-приложение доступно только локально? Автор за 17 минут показывает полный цикл работы с SSH: от создания ключей до магии проброса портов!

🌐 Источник: https://youtu.be/

#Linux_youtube #ssh #security #tunnel #linux #networking
👍21🔥3
💾 Потерял данные? Вот скрипт, который этого не допустит

Привет, хранитель данных!

Делаешь бэкапы вручную? Пора автоматизировать! Готовый bash-скрипт архивирует важные директории и отправляет на удалённый сервер. Настрой раз и спи спокойно.

Скрипт backup.sh

#!/bin/bash

backup_dirs=("/etc" "/home" "/boot")
dest_dir="/backup"
dest_server="server1"
backup_date=$(date +%b-%d-%y)

echo "Starting backup of: ${backup_dirs[@]}"

for i in "${backup_dirs[@]}"; do
sudo tar -Pczf /tmp/$i-$backup_date.tar.gz $i
if [ $? -eq 0 ]; then
echo "$i backup succeeded."
else
echo "$i backup failed."
fi
scp /tmp/$i-$backup_date.tar.gz $dest_server:$dest_dir
if [ $? -eq 0 ]; then
echo "$i transfer succeeded."
else
echo "$i transfer failed."
fi
done

sudo rm /tmp/*.gz
echo "Backup is done."


Как работает скрипт

Переменные:
- backup_dirs — массив директорий для бэкапа
- dest_dir — куда складывать на удалённом сервере
- dest_server — имя/IP целевого сервера
- backup_date — дата в имени архива

Процесс:
1. Архивирует каждую директорию в tar.gz
2. Отправляет по scp на удалённый сервер
3. Проверяет успешность каждого шага
4. Удаляет локальные временные архивы

Пример работы

kabary@handbook:~$ ./backup.sh
Starting backup of: /etc /home /boot
/etc backup succeeded.
etc-Aug-30-20.tar.gz 100% 1288KB 460.1KB/s 00:02
/etc transfer succeeded.
/home backup succeeded.
home-Aug-30-20.tar.gz 100% 2543KB 547.0KB/s 00:04
/home transfer succeeded.
/boot backup succeeded.
boot-Aug-30-20.tar.gz 100% 105MB 520.2KB/s 03:26
/boot transfer succeeded.
Backup is done.


Автоматизация через cron

Добавь в crontab для ежедневного запуска в 3 ночи:
0 3 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1


💡 Совет: настрой SSH-ключи для scp без пароля, иначе скрипт не сработает в cron.

Результат: автоматические бэкапы критически важных данных каждую ночь. Никакой рутины, полная автоматизация.
____________________

Дополнительный материал:
🧠 - От первого контейнера до мощного Swarm: Путешествие Docker в мире DevOps
🧠 - Углубляемся в безопасность Linux: Специальные режимы и их мощь!
🧠 - Разгадываем тайны команды "Apropos": Ваш ключ к миру Linux Man Pages

#Linux_Mastery #bash #backup #automation #sysadmin #noscripts
👍18
Что делает эта команда?

for token in a b c; do
echo -n ${token};
done

Не гугли — напиши в комментах 👇

#linux #bash #вопрос
👍6
Media is too big
VIEW IN TELEGRAM
🔥 Касперский ОС: будущее российской кибербезопасности или долгострой?

Эй, охотник за уязвимостями! Сегодня у нас необычный выпуск.

Немного разбавим поток пользы «таймкиллером». На повестке тема, которая уже вызывает споры: Касперский ОС. Для одних — филиал ФСБ и распил бюджета, для других — уникальная микроядерная архитектура и фундамент кибериммунитета.

🌐 Источник: https://www.youtube.com/watch?v=EaOc31KoFFI

#linux #os #kaspersky #security #architecture
🔥5👀5
Disable Apache configuration files?
Anonymous Quiz
12%
a2enconf
17%
a2dismod
63%
a2disconf
8%
a2enconf
Analyze text for sensitive data (secrets)?
Anonymous Quiz
30%
alien
11%
alex
44%
alias
15%
alpine