Какая команда, предназначенная для работы с файлами и архивами, выводит содержимое текстового файла на стандартный вывод, но в обратном порядке (т.е. начиная с последней строки)?
Anonymous Quiz
10%
rev
52%
cat -r
7%
sed -n '1!G;h;$p'
31%
tac
👍4🔥2
Администратор ищет файлы, которые были изменены менее 10 минут назад в каталоге /etc. Какая команда find с правильной опцией будет использована?
Anonymous Quiz
44%
find /etc -mtime -10
20%
find /etc -mmin -10
21%
find /etc -atime -10
15%
find /etc -cmin -10
👍6🔥2
🚀 Встречайте новый формат в @Gradeliftbot — Спринт!
Хотите проверить свои знания по Linux быстро и эффективно? Теперь в нашем боте доступен режим "Спринт" — 20 случайных вопросов из базы в 1500+ тестов!
👉 Попробовать @Gradeliftbot
Хотите проверить свои знания по Linux быстро и эффективно? Теперь в нашем боте доступен режим "Спринт" — 20 случайных вопросов из базы в 1500+ тестов!
👉 Попробовать @Gradeliftbot
👎2
Как правильно присвоить значение переменной в Bash?
Anonymous Quiz
25%
var = value
40%
var=value
8%
var := value
27%
set var value
💾 Bash-антигайд: Удаляй tmp-файлы даже после kill -9
Хей, защитник хоста!
Если твой скрипт аварийно завершается, временные файлы (
Чтобы гарантировать удаление, используй ловушку EXIT.
Вывод:
#Bash #Автоматизация #Скрипты #trap #CLI
Хей, защитник хоста!
Если твой скрипт аварийно завершается, временные файлы (
/tmp) остаются.Чтобы гарантировать удаление, используй ловушку EXIT.
#!/bin/bash
# Создай уникальное имя для временного файла
TMP_FILE=$(mktemp)
# 1. Ловушка EXIT (сигнал 0) сработает при ЛЮБОМ выходе
trap "rm -f $TMP_FILE" EXIT
# 2. Здесь идет твой основной код
echo "Лог пишется в $TMP_FILE" >> $TMP_FILE
# 3. Дополнительно можно перехватить SIGINT (2) и SIGTERM (15)
trap "rm -f $TMP_FILE; exit 1" INT TERM
Вывод:
trap...EXIT обеспечивает, что функция очистки выполнится всегда, даже при ошибке.#Bash #Автоматизация #Скрипты #trap #CLI
🔥3
🗓 11 декабря в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab».
На вебинаре разберем:
Кому будет полезно:
- DevOps-лидам, управляющим инфраструктурой и CI/CD.
- Архитекторам, разрабатывающим стратегии инфраструктурной автоматизации.
- Инженерам, внедряющим Terraform в рабочие процессы.
Что вы получите:
- Понимание, Terraform-модули для работы через GitLab.
- Понимание, настройка и оптимизация пайплайнов CI/CD .
- Практические советы по безопасному и эффективному управлению инфраструктурой .
🔗 Ссылка на регистрацию: https://otus.pw/kKbj/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🔐 Секреты Pro-Docker: 4 хака, которые сделают твои образы в 5 раз меньше
Привет, контейнерный гуру!
Твои Docker-образы слишком большие и могут нести угрозу безопасности?.
Я собрал 4 критически важных приёма для hardening-а и оптимизации, которые должен знать каждый, кто работает с Docker в продакшене.
1. ⚙️ Оптимизация слоёв: Уменьши размер в 71%
Каждая инструкция
За счет перехода на минимальные базовые образы (например, Alpine) и объединения команд ты можешь уменьшить размер образа на 71%.
2. 🛡 Безопасность: Запуск без root и
Никогда не запускай контейнер с флагом
Ограничение возможностей (Capabilities) — ключевой принцип безопасности, так как
3. 💾 Очистка: Удали висячий мусор
Если ты не удаляешь остановленные контейнеры или висячие образы (dangling images), они будут накапливаться и занимать дисковое пространство.
Используй
4. 🧠 Ограничение ресурсов: Защита от DoS-атак
Ограничивай использование ресурсов с помощью cgroups, чтобы взломанный контейнер не смог вызвать отказ в обслуживании (DoS), исчерпав память или CPU хоста.
Вывод: Применение этих практик (минимальные образы, непривилегированные пользователи и ограничения ресурсов) — это не просто оптимизация, это создание надёжной архитектуры, которую ты можешь смело развертывать в production.
#Docker #DevOps #Security #Hardening #Optimization #CLI #Сборник
Привет, контейнерный гуру!
Твои Docker-образы слишком большие и могут нести угрозу безопасности?.
Я собрал 4 критически важных приёма для hardening-а и оптимизации, которые должен знать каждый, кто работает с Docker в продакшене.
1. ⚙️ Оптимизация слоёв: Уменьши размер в 71%
Каждая инструкция
RUN в Dockerfile создает новый уровень (слой), что раздувает конечный размер образа. Чтобы избежать этого, используй оператор && для объединения команд в одну инструкцию RUN.# ПЛОХО: Создаст 3 слоя
RUN apt-get update
RUN apt-get install -y nodejs
RUN rm -rf /var/lib/apt/lists/*
# ХОРОШО: Создаст 1 слой и уменьшит размер образа
FROM alpine:3.12.0
RUN apk update && \
apk add --no-cache nodejs npm && \
rm -rf /var/cache/apk/*
# Используй --no-cache, чтобы не хранить временные файлы
За счет перехода на минимальные базовые образы (например, Alpine) и объединения команд ты можешь уменьшить размер образа на 71%.
2. 🛡 Безопасность: Запуск без root и
CAP_DROPНикогда не запускай контейнер с флагом
--privileged, так как это равносильно получению прав root на хосте, позволяя, например, смонтировать его корневую ФС. Всегда переключайся на непривилегированного пользователя внутри контейнера.# Создаем непривилегированного пользователя 'app'
# Используй инструкцию USER, чтобы избежать root
RUN groupadd -r app_grp && useradd -r -g app_grp app
USER app
# Если нужны только специфические права (например, bind к порту < 1024):
# Сбрось ВСЕ права (--cap-drop all) и добавь только необходимые
docker run --cap-drop ALL --cap-add CAP_NET_BIND_SERVICE alpine sh
Ограничение возможностей (Capabilities) — ключевой принцип безопасности, так как
root в Linux — это коллекция возможностей, и Docker позволяет тебе их выборочно отключить.3. 💾 Очистка: Удали висячий мусор
Если ты не удаляешь остановленные контейнеры или висячие образы (dangling images), они будут накапливаться и занимать дисковое пространство.
# Удаление всех остановленных контейнеров
# docker rm $(docker ps -aq -f status=exited)
docker rm $(docker ps -aq) -f
# Удаление всех висячих (без тегов) образов
docker rmi $(docker images -q -f dangling=true)
# Очистка всего Docker-мусора (образов, сетей, контейнеров)
# Используй с осторожностью, это удалит ВСЁ, что не используется
docker system prune -a
Используй
docker system prune -a для быстрой очистки, но помни, что тома (volumes) не удаляются автоматически и требуют отдельной очистки, если они не используются.4. 🧠 Ограничение ресурсов: Защита от DoS-атак
Ограничивай использование ресурсов с помощью cgroups, чтобы взломанный контейнер не смог вызвать отказ в обслуживании (DoS), исчерпав память или CPU хоста.
# Ограничение памяти (128 МБ)
# -m 128m задает жесткий лимит, предотвращая OOM на хосте
docker run -it --rm -m 128m my_app
# Ограничение использования CPU (на 2 CPU или 50% CPU-времени)
docker run -it --rm --cpus="2" my_app
# или, используя доли CFS:
docker run -d --name load_high -c 512 amouat/stress
Вывод: Применение этих практик (минимальные образы, непривилегированные пользователи и ограничения ресурсов) — это не просто оптимизация, это создание надёжной архитектуры, которую ты можешь смело развертывать в production.
#Docker #DevOps #Security #Hardening #Optimization #CLI #Сборник
👍1
✅
Привет, инженер автоматизации!
Если ты переходишь с
Команда
1. 🔍 Полный статус сервиса
Эта команда показывает, активен ли сервис, его PID, потребление ресурсов (CGroup, Memory, CPU) и последние строки логов.
2. 🚀 Включение и активация (autostart)
3. 💾 Применение новой конфигурации без перезапуска
Если ты изменил конфигурационный файл (например,
4. 📈 Анализ скорости загрузки (Boot Performance)
Если система загружается медленно, эта команда покажет тебе, какие юниты (сервисы) потребляют больше всего времени.
5. 📜 Просмотр всех файлов юнитов
Для DevOps критически важно знать, какие сервисы вообще установлены в системе и в каком они состоянии (включен/выключен).
💡 Вывод
Команда
#DevOps #systemd #systemctl #CLI #Автоматизация
systemctl – 5 команд, которые должен знать каждый DevOps-инженерПривет, инженер автоматизации!
Если ты переходишь с
SysVinit на systemd, тебе нужен надёжный командник для быстрого траблшутинга и управления сервисами.Команда
systemctl — это твой универсальный диспетчер. Вот 5 ключевых функций, которые ты будешь использовать каждый день.1. 🔍 Полный статус сервиса
Эта команда показывает, активен ли сервис, его PID, потребление ресурсов (CGroup, Memory, CPU) и последние строки логов.
# Получить детальную информацию о веб-сервере Nginx
systemctl status nginx.service
# PID, CGroup, Memory, CPU - важные данные для траблшутинга
2. 🚀 Включение и активация (autostart)
systemctl enable создаёт символическую ссылку, чтобы сервис запускался при загрузке системы. Флаг --now сразу запускает его.# Включить автозапуск SSHD при загрузке и немедленно запустить
sudo systemctl enable --now sshd.service
# Проверить, включен ли сервис для автозапуска
systemctl is-enabled sshd.service
3. 💾 Применение новой конфигурации без перезапуска
Если ты изменил конфигурационный файл (например,
/etc/ssh/sshd_config), тебе нужно, чтобы демон перечитал его, не прерывая работу.# Перезагрузка конфигурации systemd, чтобы обнаружить изменения в юнит-файлах
sudo systemctl daemon-reload
# Перезагрузить конфигурацию самого сервиса (без полного restart)
sudo systemctl reload sshd.service
4. 📈 Анализ скорости загрузки (Boot Performance)
Если система загружается медленно, эта команда покажет тебе, какие юниты (сервисы) потребляют больше всего времени.
# Вывести список процессов, отсортированных по времени запуска
systemd-analyze blame
# Посмотреть общее время, потраченное на загрузку ядра и userspace
systemd-analyze time
5. 📜 Просмотр всех файлов юнитов
Для DevOps критически важно знать, какие сервисы вообще установлены в системе и в каком они состоянии (включен/выключен).
# Вывести список всех установленных файлов модулей типа service и их состояние (enabled/disabled/static/masked)
systemctl list-unit-files --type=service
💡 Вывод
Команда
systemctl — это центральный инструмент для твоей работы в Linux. Используя status для детальной проверки, reload для безопасных обновлений и systemd-analyze blame для диагностики, ты можешь эффективно управлять production-средой.#DevOps #systemd #systemctl #CLI #Автоматизация
👍16
⚠️ Антигайд: Как ntpdate убивает твой Dovecot и что делать
Привет, инженер автоматизации!
Ты знал, что NTP-синхронизация может мгновенно "убить" Dovecot? Резкий перевод часов назад приводит к его аварийному завершению.
Используй плавную синхронизацию (ntpd/chrony) или перезапускай сервис.
Вывод: Перед выполнением
#Антигайд #Dovecot #NTP #Безопасность #systemd
Привет, инженер автоматизации!
Ты знал, что NTP-синхронизация может мгновенно "убить" Dovecot? Резкий перевод часов назад приводит к его аварийному завершению.
Используй плавную синхронизацию (ntpd/chrony) или перезапускай сервис.
# 1. Если ты используешь ntpdate, Dovecot рухнет (особенно при переводе часов назад)
# Пример опасной команды:
# ntpdate -u pool.ntp.org
# 2. Правильное действие: останавливаем, синхронизируем, запускаем
sudo systemctl stop dovecot.service
sudo ntpdate pool.ntp.org
sudo systemctl restart dovecot.service
Вывод: Перед выполнением
ntpdate рекомендуется завершать Dovecot и запускать заново.#Антигайд #Dovecot #NTP #Безопасность #systemd
🔥5
Вы хотите развернуть приложение в Kubernetes без тонны ручных команд и нервов? Мечтаете о системе, где код сам «доставляется» в прод по принципу «закоммитил — заработало»?
Приглашаем вас на открытый урок в рамках курса «Инфраструктурная платформа на основе Kubernetes, где разберём»:
- как перестать вручную деплоить приложения;
- как добиться стабильного состояния кластера;
- как сделать процессы прозрачными и контролируемыми.
🗓 Когда: 23.12, в 20-00
Для кого: DevOps‑инженеры, разработчики, администраторы Kubernetes, все, кто хочет автоматизировать деплой.
На уроке вы узнаете:
После урока вы сможете:
- настроить базовый пайплайн GitOps с Flux;
- понять, как интегрировать Flux в существующую инфраструктуру;
- оценить, подходит ли GitOps для вашего проекта.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🔥 Load Average: Когда «цифра» значит «Срочно чини!»
Привет, системный траблшутер!
Как понять, когда Load Average (LA) реально опасен?.
Критическая нагрузка — это число ядер твоего ЦПУ. Если LA > NCPU, то пора чинить!
Вывод: Если LA стабильно выше числа ядер, система насыщена.
#Мониторинг #CLI #LoadAverage #Кейс
Привет, системный траблшутер!
Как понять, когда Load Average (LA) реально опасен?.
Критическая нагрузка — это число ядер твоего ЦПУ. Если LA > NCPU, то пора чинить!
# 1. Узнай свой лимит: Количество логических процессоров (ядер)
# Информация берется из системного псевдофайла
NCPU=$(grep -c '^processor' /proc/cpuinfo)
echo "Твой лимит (NCPU): $NCPU"
# 2. Проверь текущую среднюю загрузку (за 1, 5, 15 минут)
uptime
# Load Average включает процессы, ожидающие ЦПУ ИЛИ Disk I/O
# 3. Пример сравнения: если LA за 1 мин выше лимита NCPU
CURRENT_LOAD=$(cat /proc/loadavg | cut -d ' ' -f1)
if (( $(echo "$CURRENT_LOAD > $NCPU" | bc -l) )); then
echo "🚨 СЕРВЕР ПЕРЕГРУЖЕН: $CURRENT_LOAD > $NCPU"
fi
Вывод: Если LA стабильно выше числа ядер, система насыщена.
#Мониторинг #CLI #LoadAverage #Кейс
👍7
Какой символ используется для обозначения начала комментария в Bash-скрипте (кроме первой строки shebang)?
Anonymous Quiz
13%
//
5%
;
80%
#
2%
--
👍4