🔥 DevOps-стек: Запусти 3 контейнера одной командой (YAML)
Привет, цифровой архитектор!
Тратить время на ручное развертывание тестовых сервисов.
Docker Compose позволяет тебе развернуть весь DevOps-стек (приложение, БД, мониторинг) одной командой.
Вывод: Запусти стек командой
#Docker #DevOps #Мониторинг #YAML
Привет, цифровой архитектор!
Тратить время на ручное развертывание тестовых сервисов.
Docker Compose позволяет тебе развернуть весь DevOps-стек (приложение, БД, мониторинг) одной командой.
# docker-compose.yml (версия 3.8)
version: '3.8'
services:
app:
# Пример: веб-приложение Flask
image: custom/app:1.0
ports: ["8080:8080"]
# Переменные среды для подключения к БД (The Twelve-Factor App)
environment:
DB_HOST: db
db:
# Официальный образ БД
image: postgres:15
# Сохраняем данные на томе (volume)
volumes:
- db_data:/var/lib/postgresql/data
monitor:
# Пример дашборда
image: grafana/grafana:latest
ports: ["3000:3000"]
volumes:
db_data: # Объявление тома
Вывод: Запусти стек командой
docker-compose up -d.#Docker #DevOps #Мониторинг #YAML
👎1
⚠️ Никогда не используй [ ] в Bash, пока не прочитаешь это
Привет, инженер! 👋
Сколько раз ты ловил binary operator expected или забывал экранировать > в условии? В Bash скобки — это не просто стиль, это разные инструменты с разной логикой.
Давай разложим всё по полочкам, чтобы твои скрипты работали предсказуемо.
📌 1. Одинарные квадратные [ ... ] — Классика (test)
Это синоним команды test. Она старая, POSIX-совместимая, но капризная.
Нюанс: Переменные нужно брать в кавычки "$var", иначе при пустом значении скрипт упадет.
Минус: Знаки > и < нужно экранировать (\>), иначе Bash решит, что это перенаправление ввода/вывода.
📌 2. Двойные квадратные [[ ... ]] — Расширенная проверка
Это ключевое слово самого Bash. Оно мощнее и безопаснее.
Плюс: Не нужно экранировать > и <.
Поддерживает логические && и || прямо внутри скобок.
Киллер-фича: Поддерживает регулярные выражения через оператор =~.
📌 3. Одинарные круглые ( ... ) — Подоболочка (Subshell)
Команды внутри запускаются в отдельном процессе.
Суть: Переменные, измененные внутри (), не меняются в основном скрипте.
Пример: (cd /tmp; rm *.log) — вы перейдете в папку только внутри скобок, основной скрипт останется в текущей директории.
📌 4. Двойные круглые (( ... )) — Арифметика
Специальная конструкция для математики в стиле Си.
Плюс: Можно не писать $ перед переменными.
Поддерживает инкременты var++ и тернарные операторы.
💡 Итог:
Пишешь на Bash? Всегда используй [[ ]] для условий и (( )) для математики. Оставь [ ] для совместимости со старым sh.
#Linux #Bash #DevOps #Scripting #Shell
Привет, инженер! 👋
Сколько раз ты ловил binary operator expected или забывал экранировать > в условии? В Bash скобки — это не просто стиль, это разные инструменты с разной логикой.
Давай разложим всё по полочкам, чтобы твои скрипты работали предсказуемо.
📌 1. Одинарные квадратные [ ... ] — Классика (test)
Это синоним команды test. Она старая, POSIX-совместимая, но капризная.
Нюанс: Переменные нужно брать в кавычки "$var", иначе при пустом значении скрипт упадет.
Минус: Знаки > и < нужно экранировать (\>), иначе Bash решит, что это перенаправление ввода/вывода.
if [ "$a" = "root" ]; then echo "Hi root"; fi
📌 2. Двойные квадратные [[ ... ]] — Расширенная проверка
Это ключевое слово самого Bash. Оно мощнее и безопаснее.
Плюс: Не нужно экранировать > и <.
Поддерживает логические && и || прямо внутри скобок.
Киллер-фича: Поддерживает регулярные выражения через оператор =~.
# Проверка регуляркой (без кавычек!)
if [[ "$ver" =~ ^3\. ]]; then echo "Version 3.x"; fi
📌 3. Одинарные круглые ( ... ) — Подоболочка (Subshell)
Команды внутри запускаются в отдельном процессе.
Суть: Переменные, измененные внутри (), не меняются в основном скрипте.
Пример: (cd /tmp; rm *.log) — вы перейдете в папку только внутри скобок, основной скрипт останется в текущей директории.
📌 4. Двойные круглые (( ... )) — Арифметика
Специальная конструкция для математики в стиле Си.
Плюс: Можно не писать $ перед переменными.
Поддерживает инкременты var++ и тернарные операторы.
(( a++ )) # Увеличить a на 1
b=$(( a + 5 )) # Записать результат в b
💡 Итог:
Пишешь на Bash? Всегда используй [[ ]] для условий и (( )) для математики. Оставь [ ] для совместимости со старым sh.
#Linux #Bash #DevOps #Scripting #Shell
👍16
🏎️ Почему твой Linux грузится вечность? Находим и обезвреживаем
Эй, линуксоид! 👋
Знакома ситуация: отправил сервер в reboot, и можно идти варить кофе, потому что он поднимается мучительно долго? 😤 Часто виноват один-единственный «зависший» сервис, который тянет время всей системы.
В systemd есть встроенный инструмент-детектив, который покажет, кто именно крадет твои секунды.
📌 1. Оцениваем общий масштаб бедствия
Сначала посмотрим, сколько времени ушло на загрузку в целом (ядро + userspace).
Это дает общее понимание: если userspace занимает слишком много времени, значит, проблема в службах.
📌 2. Ищем виновника (команда blame)
Эта команда выводит список всех запущенных юнитов, отсортированных по времени инициализации — от самых медленных к самым быстрым.
В данном примере видно, что NetworkManager-wait-online.service задерживает запуск почти на 4 секунды.
📌 3. Анализируем критический путь
Иногда сервис запускается долго, но не тормозит остальных. Чтобы увидеть дерево зависимостей и понять, какой процесс реально блокирует финиш загрузки, используйте:
Здесь видно, что systemd-networkd-wait-online.service является узким местом в цепочке,.
💡 Совет:
Если вы нашли «тормоза», которые вам не нужны (например, postfix на рабочей станции или ожидание сети там, где это не критично), их можно отключить (systemctl disable) или оптимизировать.
#Linux #Systemd #DevOps #SysAdmin #Performance
Эй, линуксоид! 👋
Знакома ситуация: отправил сервер в reboot, и можно идти варить кофе, потому что он поднимается мучительно долго? 😤 Часто виноват один-единственный «зависший» сервис, который тянет время всей системы.
В systemd есть встроенный инструмент-детектив, который покажет, кто именно крадет твои секунды.
📌 1. Оцениваем общий масштаб бедствия
Сначала посмотрим, сколько времени ушло на загрузку в целом (ядро + userspace).
$ systemd-analyze
Startup finished in 253ms (kernel) + 933ms (initrd) + 6.873s (userspace) = 8.060s
Это дает общее понимание: если userspace занимает слишком много времени, значит, проблема в службах.
📌 2. Ищем виновника (команда blame)
Эта команда выводит список всех запущенных юнитов, отсортированных по времени инициализации — от самых медленных к самым быстрым.
$ systemd-analyze blame
3.811s NetworkManager-wait-online.service
806ms tuned.service
680ms postfix.service
490ms lvm2-monitor.service
...
В данном примере видно, что NetworkManager-wait-online.service задерживает запуск почти на 4 секунды.
📌 3. Анализируем критический путь
Иногда сервис запускается долго, но не тормозит остальных. Чтобы увидеть дерево зависимостей и понять, какой процесс реально блокирует финиш загрузки, используйте:
$ systemd-analyze critical-chain
graphical.target @9.663s
└─multi-user.target @9.661s
└─snapd.seeded.service @9.062s +62ms
└─basic.target @6.336s
└─sockets.target @6.334s
└─snapd.socket @6.316s +16ms
└─sysinit.target @6.281s
└─cloud-init.service @5.361s +905ms
└─systemd-networkd-wait-online.service @3.498s +1.860s
Здесь видно, что systemd-networkd-wait-online.service является узким местом в цепочке,.
💡 Совет:
Если вы нашли «тормоза», которые вам не нужны (например, postfix на рабочей станции или ожидание сети там, где это не критично), их можно отключить (systemctl disable) или оптимизировать.
#Linux #Systemd #DevOps #SysAdmin #Performance
👍10🔥3
🔥 Компактный IP: Смотрим сеть без боли в глазах
EHLO, коллега! 👋
Признайся, сколько раз ты вводил ip addr и тонул в потоке информации о MTU, qdisc и broadcast-адресах, пытаясь найти заветные цифры IP? 😵 Или по старой привычке ставил net-tools, чтобы вернуть любимый, но устаревший ifconfig,?
В современном пакете iproute2 есть скрытая жемчужина — флаг -br (brief), который превращает вывод в аккуратную таблицу. Больше не нужно писать длинные пайплайны с grep и awk.
📌 Команда для читаемого вывода:
Что она делает:
-br (brief) — включает режим краткого вывода.
a (addr) — показывает адреса.
Результат будет выглядеть примерно так:
💡 Почему это круто:
1. Ты сразу видишь статус (
2. Это работает «из коробки» в большинстве современных дистрибутивов (CentOS 8+, Ubuntu 18.04+ и др.).
3. Идеально для твоих скриптов и беглого просмотра состояния сети.
#Linux #Networking #CLI #SysAdmin #DevOps
EHLO, коллега! 👋
Признайся, сколько раз ты вводил ip addr и тонул в потоке информации о MTU, qdisc и broadcast-адресах, пытаясь найти заветные цифры IP? 😵 Или по старой привычке ставил net-tools, чтобы вернуть любимый, но устаревший ifconfig,?
В современном пакете iproute2 есть скрытая жемчужина — флаг -br (brief), который превращает вывод в аккуратную таблицу. Больше не нужно писать длинные пайплайны с grep и awk.
📌 Команда для читаемого вывода:
ip -br a
Что она делает:
-br (brief) — включает режим краткого вывода.
a (addr) — показывает адреса.
Результат будет выглядеть примерно так:
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.1.10/24 fe80::a00:27ff:fe0d:d90c/64
💡 Почему это круто:
1. Ты сразу видишь статус (
UP/DOWN), имя интерфейса и IP.2. Это работает «из коробки» в большинстве современных дистрибутивов (CentOS 8+, Ubuntu 18.04+ и др.).
3. Идеально для твоих скриптов и беглого просмотра состояния сети.
#Linux #Networking #CLI #SysAdmin #DevOps
👍22
🛡 Твой новый стандарт: Генерируем SSH Ed25519
С возвращением! 👋
Всё еще генерируешь ключи через rsa -b 4096? Это надежно, но ключи получаются длинными, а генерация — медленной. В современном мире стандартом де-факто становится Ed25519. Это алгоритм на эллиптических кривых: он безопаснее, быстрее и создает очень компактные ключи, которые удобно копировать.
Давай обновим твои доступы за одну минуту.
📌 Команда для генерации:
Разбор флагов:
-t ed25519 — указываем тип ключа. Он обеспечивает превосходную безопасность и высокую производительность.
-C "комментарий" — метка (обычно email), чтобы ты не запутался в authorized_keys, когда ключей станет много.
💡 Что делать дальше?
1. Закинь ключ на сервер:
Используй утилиту ssh-copy-id, она сама разложит всё по полочкам:
Если ssh-copy-id нет под рукой, можно сделать это вручную (но это дольше):
2. Проверь права (на локальной машине):
Приватный ключ должен быть доступен только тебе (права 600), иначе SSH-клиент может отказаться работать или это создаст дыру в безопасности.
Переходи на Ed25519 — это быстрее, короче и безопаснее. Сохрани шпаргалку, чтобы не гуглить флаги! 🔥
#SSH #Linux #Security #DevOps #CLI
С возвращением! 👋
Всё еще генерируешь ключи через rsa -b 4096? Это надежно, но ключи получаются длинными, а генерация — медленной. В современном мире стандартом де-факто становится Ed25519. Это алгоритм на эллиптических кривых: он безопаснее, быстрее и создает очень компактные ключи, которые удобно копировать.
Давай обновим твои доступы за одну минуту.
📌 Команда для генерации:
ssh-keygen -t ed25519 -C "admin@myserver"
Разбор флагов:
-t ed25519 — указываем тип ключа. Он обеспечивает превосходную безопасность и высокую производительность.
-C "комментарий" — метка (обычно email), чтобы ты не запутался в authorized_keys, когда ключей станет много.
💡 Что делать дальше?
1. Закинь ключ на сервер:
Используй утилиту ssh-copy-id, она сама разложит всё по полочкам:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-host
Если ssh-copy-id нет под рукой, можно сделать это вручную (но это дольше):
cat ~/.ssh/id_ed25519.pub | ssh user@remote-host "cat >> ~/.ssh/authorized_keys"
2. Проверь права (на локальной машине):
Приватный ключ должен быть доступен только тебе (права 600), иначе SSH-клиент может отказаться работать или это создаст дыру в безопасности.
chmod 600 ~/.ssh/id_ed25519
Переходи на Ed25519 — это быстрее, короче и безопаснее. Сохрани шпаргалку, чтобы не гуглить флаги! 🔥
#SSH #Linux #Security #DevOps #CLI
👍11🔥1
Что делает оператор && между двумя командами (cmd1 && cmd2)?
Anonymous Quiz
4%
Запускает cmd2 только если cmd1 завершилась с ошибкой
60%
Запускает cmd2 только если cmd1 завершилась успешно (код 0)
25%
Запускает обе команды параллельно
11%
Передает вывод cmd1 на вход cmd2
Как выполнить арифметическую операцию 5 + 3 в Bash?
Anonymous Quiz
37%
val = 5 + 3
28%
(( val = 5 + 3 ))
6%
let "val = 5 + 3
29%
варианты B и C верны
💾 UUID или /dev/sda? Почему твой сервер не грузится
Привет, суперпользователь! 👋
Знакомая ситуация: подключил новый диск, перезагрузил сервер, а он «встал»? Скорее всего, имена устройств сместились (например, sda стал sdb), и система не нашла корневой раздел по старому пути,.
Чтобы спать спокойно, используй в /etc/fstab не имена устройств, а UUID (универсальный уникальный идентификатор). Он остается неизменным, даже если ты переставишь диски местами,.
📌 Как узнать UUID всех разделов?
Используй команду blkid (Block ID). Она покажет атрибуты всех блочных устройств.
Что мы видим:
UUID="..." — тот самый идентификатор, который нужно копировать в fstab.
TYPE="..." — тип файловой системы (ext4, swap, vfat).
💡 Лайфхак:
Если нужно узнать данные только для конкретного диска, просто укажи его имя: blkid /dev/sda1.
#Linux #SysAdmin #Storage #CLI #Fstab
Привет, суперпользователь! 👋
Знакомая ситуация: подключил новый диск, перезагрузил сервер, а он «встал»? Скорее всего, имена устройств сместились (например, sda стал sdb), и система не нашла корневой раздел по старому пути,.
Чтобы спать спокойно, используй в /etc/fstab не имена устройств, а UUID (универсальный уникальный идентификатор). Он остается неизменным, даже если ты переставишь диски местами,.
📌 Как узнать UUID всех разделов?
Используй команду blkid (Block ID). Она покажет атрибуты всех блочных устройств.
# blkid
/dev/sdf2: UUID="b600fe63-d2e9-461c-a5cd-d3b373a5e1d2" TYPE="ext4"
/dev/sda1: UUID="17f12d53-c3d7-4ab3-943e-a0a72366c9fa" TYPE="ext4" PARTUUID="c9a5ebb0-01"
/dev/sda5: UUID="b600fe63-d2e9-461c-a5cd-d3b373a5e1d2" TYPE="swap" PARTUUID="c9a5ebb0-05"
/dev/sde1: UUID="4859-EFEA" TYPE="vfat"
Что мы видим:
UUID="..." — тот самый идентификатор, который нужно копировать в fstab.
TYPE="..." — тип файловой системы (ext4, swap, vfat).
💡 Лайфхак:
Если нужно узнать данные только для конкретного диска, просто укажи его имя: blkid /dev/sda1.
#Linux #SysAdmin #Storage #CLI #Fstab
👍15
📉 Ubuntu весит 100МБ, а Alpine — 5МБ. Почувствуй разницу
Привет, $(whoami)! 👋
Твои Docker-образы занимают сотни мегабайт, а деплой длится вечность? Часто проблема в том, что ты используешь «тяжелые» базовые образы, в которых куча ненужного софта (6 разных оболочек, 3 пакетных менеджера и т.д.).
Для продакшена и микросервисов идеально подходит Alpine Linux. Это минималистичный дистрибутив, который весит всего около 5 МБ. Меньше размер — быстрее скачивание, меньше уязвимостей и выше скорость запуска.
📌 Пример минимального Dockerfile:
Что здесь происходит:
FROM alpine:latest — берем легкую базу.
Создаем папку и копируем туда проект.
Назначаем рабочую директорию.
💡 Совет:
Используй Alpine, когда тебе нужно запустить одно конкретное приложение или сервис. Если в образе нет лишних утилит, их не смогут использовать злоумышленники, что уменьшает поверхность атаки.
#Docker #DevOps #Alpine #Containers #Optimization
Привет, $(whoami)! 👋
Твои Docker-образы занимают сотни мегабайт, а деплой длится вечность? Часто проблема в том, что ты используешь «тяжелые» базовые образы, в которых куча ненужного софта (6 разных оболочек, 3 пакетных менеджера и т.д.).
Для продакшена и микросервисов идеально подходит Alpine Linux. Это минималистичный дистрибутив, который весит всего около 5 МБ. Меньше размер — быстрее скачивание, меньше уязвимостей и выше скорость запуска.
📌 Пример минимального Dockerfile:
FROM alpine:latest
# copy all of the files in this project into the Docker image
RUN mkdir public-app/
ADD . public-app/
WORKDIR public-app
Что здесь происходит:
FROM alpine:latest — берем легкую базу.
Создаем папку и копируем туда проект.
Назначаем рабочую директорию.
💡 Совет:
Используй Alpine, когда тебе нужно запустить одно конкретное приложение или сервис. Если в образе нет лишних утилит, их не смогут использовать злоумышленники, что уменьшает поверхность атаки.
#Docker #DevOps #Alpine #Containers #Optimization
👍8👎2
🔥 Забудь про UptimeRobot: Свой мониторинг на коленке
printf "Hello\n"
Иногда разворачивать тяжелые комбайны мониторинга ради проверки пары узлов — это как стрелять из пушки по воробьям. Ты же знаешь силу командной строки: зачем тебе веб-интерфейс, если есть старый добрый Bash?
Можно написать простой скрипт, который будет проверять доступность хоста и сообщать статус. Это база, которая работает на любом утюге с Linux.
📌 Скрипт проверки доступности узла:
Разбор полетов:
Переменная HNAME хранит адрес цели.
ping -c 2 отправляет ровно два пакета (чтобы не ждать вечно).
Конструкция if [[ ... ]] проверяет код возврата команды ping. Если 0 (успех) — узел жив.
💡 Почему это круто:
Ты не зависишь от стороннего софта.
Работает даже на встраиваемых системах и роутерах.
Легко добавить отправку уведомления на почту или в Telegram прямо в блок else.
#Linux #Bash #DevOps #Scripting #Monitoring
printf "Hello\n"
Иногда разворачивать тяжелые комбайны мониторинга ради проверки пары узлов — это как стрелять из пушки по воробьям. Ты же знаешь силу командной строки: зачем тебе веб-интерфейс, если есть старый добрый Bash?
Можно написать простой скрипт, который будет проверять доступность хоста и сообщать статус. Это база, которая работает на любом утюге с Linux.
📌 Скрипт проверки доступности узла:
HNAME=news-15.net # Пресловутый спамер.
# HNAME=$HOST # Отладка: проверка локальной сети.
count=2 # Отсылаются только два пинга.
if [[ `ping -c $count "$HNAME"` ]]
then
echo ""$HNAME" все еще работает и рассылает спам."
else
echo ""$HNAME" Кажется выключен. Жаль."
fi
Разбор полетов:
Переменная HNAME хранит адрес цели.
ping -c 2 отправляет ровно два пакета (чтобы не ждать вечно).
Конструкция if [[ ... ]] проверяет код возврата команды ping. Если 0 (успех) — узел жив.
💡 Почему это круто:
Ты не зависишь от стороннего софта.
Работает даже на встраиваемых системах и роутерах.
Легко добавить отправку уведомления на почту или в Telegram прямо в блок else.
#Linux #Bash #DevOps #Scripting #Monitoring
👍5
🔥 Забудь про vim: Добавляем источники apt в одну строку
root@localhost:~#
Часто нужно добавить новый репозиторий в систему (например, при начальной настройке сервера), но открывать текстовый редактор долго и неудобно для скриптов. Обычное перенаправление вывода через sudo может вызвать ошибку «Permission denied».
Есть элегантный способ добавлять строки текста в файл, например, имя репозитория ПО в файл источников, не открывая его для редактирования. Используй синтаксис с командой tee.
📌 Команда для добавления репозитория (на примере Nginx):
Разбор полетов:
echo — передает строку текста в канал (pipe).
lsb_release -cs — автоматически подставляет кодовое имя твоего дистрибутива.
sudo tee — принимает вывод и записывает его в файл с правами суперпользователя, обходя ограничения оболочки.
💡 Совет:
Используй флаг -a с командой tee (например, sudo tee -a), если хочешь добавить строку в конец файла, а не перезаписать его полностью.
#Linux #CLI #SysAdmin #DevOps #Apt
root@localhost:~#
Часто нужно добавить новый репозиторий в систему (например, при начальной настройке сервера), но открывать текстовый редактор долго и неудобно для скриптов. Обычное перенаправление вывода через sudo может вызвать ошибку «Permission denied».
Есть элегантный способ добавлять строки текста в файл, например, имя репозитория ПО в файл источников, не открывая его для редактирования. Используй синтаксис с командой tee.
📌 Команда для добавления репозитория (на примере Nginx):
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Разбор полетов:
echo — передает строку текста в канал (pipe).
lsb_release -cs — автоматически подставляет кодовое имя твоего дистрибутива.
sudo tee — принимает вывод и записывает его в файл с правами суперпользователя, обходя ограничения оболочки.
💡 Совет:
Используй флаг -a с командой tee (например, sudo tee -a), если хочешь добавить строку в конец файла, а не перезаписать его полностью.
#Linux #CLI #SysAdmin #DevOps #Apt
👍6
🔥 Забудь про 500 ошибку: Тест конфига Nginx перед запуском
echo "Привет, инженер!"
Знакомая ситуация: поправил конфиг, перезапустил службу, а сервер «лежит» из-за пропущенной точки с запятой? Чтобы избежать страданий и простоя продакшна, всегда проверяй исправность конфигурационных файлов перед перезапуском.
У многих популярных программ есть встроенные средства для такой проверки.
📌 Команда для проверки конфигурации Nginx:
Что происходит:
Если в файле нет синтаксических ошибок, команда просто завершится или выведет сообщение об успехе. Если ошибки есть, она сообщит о них, указав строку с проблемой,.
💡 Совет:
Используй systemctl reload вместо restart, когда это возможно. Reload (перезагрузка конфигурации) обычно безопаснее, так как процесс перезапускается только после успешной проверки конфигурации,.
Проверяй конфиг до того, как это сделают пользователи! 😉
#Nginx #Linux #SysAdmin #DevOps #CLI
echo "Привет, инженер!"
Знакомая ситуация: поправил конфиг, перезапустил службу, а сервер «лежит» из-за пропущенной точки с запятой? Чтобы избежать страданий и простоя продакшна, всегда проверяй исправность конфигурационных файлов перед перезапуском.
У многих популярных программ есть встроенные средства для такой проверки.
📌 Команда для проверки конфигурации Nginx:
nginx -t
Что происходит:
Если в файле нет синтаксических ошибок, команда просто завершится или выведет сообщение об успехе. Если ошибки есть, она сообщит о них, указав строку с проблемой,.
💡 Совет:
Используй systemctl reload вместо restart, когда это возможно. Reload (перезагрузка конфигурации) обычно безопаснее, так как процесс перезапускается только после успешной проверки конфигурации,.
Проверяй конфиг до того, как это сделают пользователи! 😉
#Nginx #Linux #SysAdmin #DevOps #CLI
👍12👀3👎1
Какая специальная переменная содержит количество аргументов, переданных скрипту?
Anonymous Quiz
23%
$@
21%
$*
17%
$0
39%
$#
👀7👍5🔥1
Какой оператор используется для проверки, существует ли файл и является ли он обычным файлом (не каталогом)?
Anonymous Quiz
14%
-e
15%
-d
65%
-f
6%
-s
🔒 Вот что hackers проверяют в первую очередь на твоём сервере
Каждый день на серверы идут тысячи автоматических сканирований на поиск слабых мест.
Проблема: ты даже не знаешь, какие уязвимости уже есть в твоей системе. SSH настроена правильно? Firewall включён? Сервисы обновлены?
Решение: два инструмента, которые за минуты покажут тебе всё, что видит хакер.
🔹 vps-audit
https://github.com/vernu/vps-audit
Легковесный bash-скрипт для быстрого аудита VPS:
• Проверяет SSH-конфигурацию (root login, слабые пароли)
• Статус firewall, fail2ban и открытых портов
• Запущенные сервисы и SUID файлы
• Генерирует цветной отчёт (🟢 PASS / 🟡 WARN / 🔴 FAIL)
• Нет зависимостей, работает везде
🔹 Lynis
https://github.com/CISOfy/lynis
Профессиональный инструмент аудита (15+ лет на рынке):
• Сканирует 200+ параметров безопасности
• Проверяет compliance (PCI DSS, HIPAA, ISO27001)
• Поиск уязвимостей в ПО и конфигурации
• Детальный hardening index — оценка безопасности
• Работает на Linux, macOS, BSD (14.5k звёзд на GitHub)
Запусти прямо сейчас — узнаешь, что hackers видят на твоём сервере первым делом.
#Linux #Monitoring #Disk #DevOps #Bash #CLI
Каждый день на серверы идут тысячи автоматических сканирований на поиск слабых мест.
Проблема: ты даже не знаешь, какие уязвимости уже есть в твоей системе. SSH настроена правильно? Firewall включён? Сервисы обновлены?
Решение: два инструмента, которые за минуты покажут тебе всё, что видит хакер.
🔹 vps-audit
https://github.com/vernu/vps-audit
Легковесный bash-скрипт для быстрого аудита VPS:
• Проверяет SSH-конфигурацию (root login, слабые пароли)
• Статус firewall, fail2ban и открытых портов
• Запущенные сервисы и SUID файлы
• Генерирует цветной отчёт (🟢 PASS / 🟡 WARN / 🔴 FAIL)
• Нет зависимостей, работает везде
🔹 Lynis
https://github.com/CISOfy/lynis
Профессиональный инструмент аудита (15+ лет на рынке):
• Сканирует 200+ параметров безопасности
• Проверяет compliance (PCI DSS, HIPAA, ISO27001)
• Поиск уязвимостей в ПО и конфигурации
• Детальный hardening index — оценка безопасности
• Работает на Linux, macOS, BSD (14.5k звёзд на GitHub)
Запусти прямо сейчас — узнаешь, что hackers видят на твоём сервере первым делом.
#Linux #Monitoring #Disk #DevOps #Bash #CLI
👍10🔥3
📊 Вот как настоящие админы видят, что происходит на сервере
Сервер зависает, CPU зашкаливает, память утекает — а ты не знаешь, в чём проблема.
Проблема: top, htop, df разбросаны по разным окнам. Решение: один bash-скрипт, который покажет всё сразу.
🔹 System Monitor
https://github.com/elliotsecops/System-Monitor
Bash-скрипт для мониторинга Linux:
• Отображает CPU, память и диск в реальном времени (обновляется каждые 5 сек)
• Поддерживает несколько точек монтирования диска
• Настраивается через конфиг или аргументы командной строки
• Graceful shutdown (Ctrl+C) без зависания
Запусти на своём сервере — увидишь, что там реально происходит.
#linux #мониторинг #bash #sysadmin #devops
Сервер зависает, CPU зашкаливает, память утекает — а ты не знаешь, в чём проблема.
Проблема: top, htop, df разбросаны по разным окнам. Решение: один bash-скрипт, который покажет всё сразу.
🔹 System Monitor
https://github.com/elliotsecops/System-Monitor
Bash-скрипт для мониторинга Linux:
• Отображает CPU, память и диск в реальном времени (обновляется каждые 5 сек)
• Поддерживает несколько точек монтирования диска
• Настраивается через конфиг или аргументы командной строки
• Graceful shutdown (Ctrl+C) без зависания
Запусти на своём сервере — увидишь, что там реально происходит.
#linux #мониторинг #bash #sysadmin #devops
👍5
🗄️ Твоя база данных молит о помощи — вот как её спасти
БД тормозит, backup'и создаёшь вручную, конфиги MySQL/PostgreSQL — загадка?
Вот два скрипта, которые спасают админам жизнь каждый день.
🔹 MySQLTuner-perl
https://github.com/major/MySQLTuner-perl
Анализирует MySQL/MariaDB/Percona:
• 300+ проверок производительности и безопасности
• Даёт конкретные рекомендации по оптимизации
• Поддерживает Galera, InnoDB, MyISAM, Aria
• JSON и HTML отчёты, CVE проверки
• 9.4k звёзд на GitHub
🔹 postgresql-db-dump
https://github.com/richbl/postgresql-db-dump
Удалённый backup PostgreSQL:
• Автоматический dump с датой-временем
• Сжатие файла (gzip)
• Удобная интеграция в cron
• Ошибки обработаны, скрипт стабилен
Запусти сейчас — спаси свои базы.
#linux #mysql #postgresql #database #devops #backup
БД тормозит, backup'и создаёшь вручную, конфиги MySQL/PostgreSQL — загадка?
Вот два скрипта, которые спасают админам жизнь каждый день.
🔹 MySQLTuner-perl
https://github.com/major/MySQLTuner-perl
Анализирует MySQL/MariaDB/Percona:
• 300+ проверок производительности и безопасности
• Даёт конкретные рекомендации по оптимизации
• Поддерживает Galera, InnoDB, MyISAM, Aria
• JSON и HTML отчёты, CVE проверки
• 9.4k звёзд на GitHub
🔹 postgresql-db-dump
https://github.com/richbl/postgresql-db-dump
Удалённый backup PostgreSQL:
• Автоматический dump с датой-временем
• Сжатие файла (gzip)
• Удобная интеграция в cron
• Ошибки обработаны, скрипт стабилен
Запусти сейчас — спаси свои базы.
#linux #mysql #postgresql #database #devops #backup
👍3
💾 Данные пропадут завтра — два скрипта спасут их сегодня
Диск упадёт когда угодно. У тебя есть backup?
Два скрипта, которые админы используют для автоматического резервного копирования.
🔹 rsync-backup (Python)
https://github.com/hkbakke/rsync-backup
Умный backup через rsync:
• Жёсткие ссылки — неизменённые файлы не дублируются
• Автоматическая проверка MD5
• Снимки: daily, weekly, monthly, yearly
• Email отчёты о статусе
• Централизованный backup с серверов
🔹 RSync Backup Script v1 (Bash)
https://github.com/Aman7123/RSync-Backup-Script-v1
Простой backup в cron:
• Автоматические weekly и monthly папки
• Удаление старых backup'ов
• Логирование каждого backup'а
• Настраивается через config-файл
• Идеален для daily cron
Запусти один из них сегодня — спаси свои данные.
#linux #backup #rsync #devops #sysadmin #безопасность
Диск упадёт когда угодно. У тебя есть backup?
Два скрипта, которые админы используют для автоматического резервного копирования.
🔹 rsync-backup (Python)
https://github.com/hkbakke/rsync-backup
Умный backup через rsync:
• Жёсткие ссылки — неизменённые файлы не дублируются
• Автоматическая проверка MD5
• Снимки: daily, weekly, monthly, yearly
• Email отчёты о статусе
• Централизованный backup с серверов
🔹 RSync Backup Script v1 (Bash)
https://github.com/Aman7123/RSync-Backup-Script-v1
Простой backup в cron:
• Автоматические weekly и monthly папки
• Удаление старых backup'ов
• Логирование каждого backup'а
• Настраивается через config-файл
• Идеален для daily cron
Запусти один из них сегодня — спаси свои данные.
#linux #backup #rsync #devops #sysadmin #безопасность
👍4
🛡️ Боты из 100 стран уже стучатся — заблокируй их за минуту
Логи забиты, сервер под атакой, CPU на 100% от ботов.
Два скрипта защитят твой сервер от brute-force и спама.
🔹 iptables-ipset-blacklists
https://github.com/dannysheehan/iptables-ipset-blacklists
Автоматическая блокировка по чёрным спискам:
• Загружает авторитетные blacklists
• Whitelist для своих IP
• Логирование атак (HTTP/HTTPS/DNS)
• Cron для обновления раз в день
🔹 ipset-country
https://github.com/mkorthof/ipset-country
Блокировка целых стран:
• iptables/nftables/firewalld
• IPv4 + IPv6 (ipdeny.com)
• Reject или drop режим
• Whitelist/blacklist
Запусти сейчас — очисти логи от мусора.
#linux #безопасность #iptables #ipset #firewall #devops
Логи забиты, сервер под атакой, CPU на 100% от ботов.
Два скрипта защитят твой сервер от brute-force и спама.
🔹 iptables-ipset-blacklists
https://github.com/dannysheehan/iptables-ipset-blacklists
Автоматическая блокировка по чёрным спискам:
• Загружает авторитетные blacklists
• Whitelist для своих IP
• Логирование атак (HTTP/HTTPS/DNS)
• Cron для обновления раз в день
🔹 ipset-country
https://github.com/mkorthof/ipset-country
Блокировка целых стран:
• iptables/nftables/firewalld
• IPv4 + IPv6 (ipdeny.com)
• Reject или drop режим
• Whitelist/blacklist
Запусти сейчас — очисти логи от мусора.
#linux #безопасность #iptables #ipset #firewall #devops
👍2