Введение в написание скриптов на Bash
Скрипты на Bash — это мощный инструмент, который позволяет автоматизировать различные задачи на системах на базе Unix, таких как Linux и macOS. Они представляют собой последовательность команд, записанных в файл, который может быть выполнен оболочкой Bash. Вместо того чтобы вручную вводить и запускать команды одну за другой в терминале, создание Bash-скрипта позволяет сохранить эти команды в файл и выполнить их сразу, что делает процесс более эффективным и удобным.
В этом посте мы рассмотрим основы создания и запуска первого скрипта на Bash.
— Преимущества скриптов на Bash
Существует несколько преимуществ при создании скриптов на Bash:
🔹 Автоматизация: Скрипты могут автоматизировать повторяющиеся задачи, экономя ваше время и силы.
🔹 Согласованность: Выполняя одну и ту же последовательность команд, вы обеспечиваете выполнение задач одинаково каждый раз, уменьшая вероятность ошибок.
🔹 Портабельность: Скрипты Bash можно легко передавать и запускать на разных системах на базе Unix, что делает их высоко переносимыми.
— Создание и запуск первого Bash-скрипта
Для создания нового Bash-скрипта откройте текстовый редактор и создайте новый файл с расширением
Сохраните файл и закройте редактор.
Далее откройте терминал и перейдите в каталог, где вы сохранили скрипт, с помощью команды
Когда вы окажетесь в нужной директории, сделайте скрипт исполняемым, выполнив команду:
Эта команда даёт права на выполнение скрипта.
Теперь вы можете запустить скрипт, набрав:
В терминале должно появиться сообщение Hello, World!.
Вы также можете запустить скрипт, набрав:
Для этого не нужно давать права на выполнение скрипта.
— Что такое Shebang
Первая строка в вашем Bash-скрипте,
Например, если вы хотите запустить скрипт с использованием интерпретатора zsh, ваша shebang строка будет выглядеть так:
— Добавление скрипта в PATH
Хотя вы можете запускать скрипт, указывая полный путь к файлу (
🔹 Откройте файл конфигурации вашей оболочки (например,
🔹 Добавьте следующую строку в файл, заменив
🔹 Сохраните и закройте файл.
🔹 Перезапустите терминал или выполните команду
После этого вы сможете запускать скрипт, просто набирая его имя в терминале, независимо от того, в какой директории находитесь.
✅ Заключение
В этом руководстве вы научились создавать и запускать первый Bash-скрипт, понимаете, что такое строка shebang, и добавили скрипт в
Картинка в хорошем качестве (PDF) в комментариях
👉 DevOps Portal
Скрипты на Bash — это мощный инструмент, который позволяет автоматизировать различные задачи на системах на базе Unix, таких как Linux и macOS. Они представляют собой последовательность команд, записанных в файл, который может быть выполнен оболочкой Bash. Вместо того чтобы вручную вводить и запускать команды одну за другой в терминале, создание Bash-скрипта позволяет сохранить эти команды в файл и выполнить их сразу, что делает процесс более эффективным и удобным.
В этом посте мы рассмотрим основы создания и запуска первого скрипта на Bash.
— Преимущества скриптов на Bash
Существует несколько преимуществ при создании скриптов на Bash:
— Создание и запуск первого Bash-скрипта
Для создания нового Bash-скрипта откройте текстовый редактор и создайте новый файл с расширением
.sh, например, my_script.sh. Затем добавьте следующую строку кода:#!/bin/bash
echo "Hello, World!"
Сохраните файл и закройте редактор.
Далее откройте терминал и перейдите в каталог, где вы сохранили скрипт, с помощью команды
cd. Например, если скрипт сохранён в домашней директории, используйте команду cd ~.Когда вы окажетесь в нужной директории, сделайте скрипт исполняемым, выполнив команду:
chmod +x my_script.sh
Эта команда даёт права на выполнение скрипта.
Теперь вы можете запустить скрипт, набрав:
./my_script.sh
В терминале должно появиться сообщение Hello, World!.
Вы также можете запустить скрипт, набрав:
bash my_script.sh
Для этого не нужно давать права на выполнение скрипта.
— Что такое Shebang
Первая строка в вашем Bash-скрипте,
#!/bin/bash, называется "shebang" или "hashbang". Она указывает операционной системе, какой интерпретатор следует использовать для выполнения скрипта. В данном случае, #!/bin/bash означает, что для выполнения скрипта следует использовать оболочку Bash.Например, если вы хотите запустить скрипт с использованием интерпретатора zsh, ваша shebang строка будет выглядеть так:
#!/bin/zsh
— Добавление скрипта в PATH
Хотя вы можете запускать скрипт, указывая полный путь к файлу (
/path/to/my_script.sh), гораздо удобнее добавить скрипт в переменную окружения PATH, чтобы запускать его из любой директории. Вот как это можно сделать:.bashrc или .bash_profile) в текстовом редакторе./path/to/scripts на путь к директории, где вы хотите хранить свои скрипты:export PATH="$PATH:/path/to/scripts"
source ~/.bashrc (или source ~/.bash_profile), чтобы применить изменения.После этого вы сможете запускать скрипт, просто набирая его имя в терминале, независимо от того, в какой директории находитесь.
В этом руководстве вы научились создавать и запускать первый Bash-скрипт, понимаете, что такое строка shebang, и добавили скрипт в
PATH системы для удобного запуска. С этими основами под рукой вы можете начать изучать более сложные концепции написания скриптов на Bash и создавать мощные автоматизационные скрипты для оптимизации рабочего процесса.Картинка в хорошем качестве (PDF) в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥8❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Репозиторий с пошаговым руководство о том, как стать инженером DevOps в 2025, со ссылками на соответствующие учебные ресурсы
👉 https://github.com/milanm/DevOps-Roadmap
👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4❤3
Когда вы смотрите на использование ОЗУ на сервере с Linux,
❌ люди часто обращают внимание на свободную память
✅ Но вместо этого им стоит сосредоточиться на доступной памяти
Позвольте объяснить, почему.
Свободная память — это объем ОЗУ, который в данный момент не используется вообще. Для серверов это пустая трата ресурсов.
Доступная память — это количество ОЗУ, которое можно выделить новым или существующим процессам без использования свопа. Считайте это вашей «реальной свободной памятью».
Разница в том, что свободная память не используется и просто лежит без дела. Потери ресурсов.
С другой стороны, доступная память — это «используемая память», которую можно освободить без потери производительности, связанной с использованием свопа. Она также включает в себя кэш и буферы.
На сервере с Linux, который работает уже некоторое время, если в нем много свободной памяти, это значит, что он не использует ресурсы эффективно.
Если вы задумываетесь о том, нужно ли вашему серверу обновление ОЗУ, вы должны смотреть на «доступную память», а не только на «свободную память» при принятии решения.
👉 DevOps Portal
Позвольте объяснить, почему.
Свободная память — это объем ОЗУ, который в данный момент не используется вообще. Для серверов это пустая трата ресурсов.
Доступная память — это количество ОЗУ, которое можно выделить новым или существующим процессам без использования свопа. Считайте это вашей «реальной свободной памятью».
Разница в том, что свободная память не используется и просто лежит без дела. Потери ресурсов.
С другой стороны, доступная память — это «используемая память», которую можно освободить без потери производительности, связанной с использованием свопа. Она также включает в себя кэш и буферы.
На сервере с Linux, который работает уже некоторое время, если в нем много свободной памяти, это значит, что он не использует ресурсы эффективно.
Если вы задумываетесь о том, нужно ли вашему серверу обновление ОЗУ, вы должны смотреть на «доступную память», а не только на «свободную память» при принятии решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8❤2
Краткий гайд по Linux Logical Volume Manager
LVM меняет способ управления дисковым пространством в Linux, позволяя объединять несколько физических дисков в единый гибкий пул хранения.
Представьте это как большой контейнер, в который можно добавлять или убирать элементы (в данном случае, хранилище) по мере необходимости.
С LVM вы не ограничены жесткой структурой традиционных разделов диска. Вместо этого вы можете динамически изменять размер хранилища, создавать резервные копии с помощью снимков (snapshots) и даже настраивать конфигурации для повышения производительности и надежности.
Основные преимущества использования LVM:
🔹 Гибкое хранилище – легко изменяйте размер и управляйте дисковым пространством в соответствии с вашими потребностями.
🔹 Снимки для безопасных резервных копий – создавайте моментальные снимки для быстрого резервного копирования без прерывания работы системы.
🔹 Упрощенное управление дисками – используйте несколько дисков как единое целое, оптимизируя пространство и организацию хранения.
👉 DevOps Portal
LVM меняет способ управления дисковым пространством в Linux, позволяя объединять несколько физических дисков в единый гибкий пул хранения.
Представьте это как большой контейнер, в который можно добавлять или убирать элементы (в данном случае, хранилище) по мере необходимости.
С LVM вы не ограничены жесткой структурой традиционных разделов диска. Вместо этого вы можете динамически изменять размер хранилища, создавать резервные копии с помощью снимков (snapshots) и даже настраивать конфигурации для повышения производительности и надежности.
Основные преимущества использования LVM:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Быстрый совет для Linux
Используйте этот онлайн-проект, чтобы проверить, для каких дистрибутивов и версий доступен тот или иной пакет:
👉 https://repology.org
Настоящее спасение☺️
👉 DevOps Portal
Используйте этот онлайн-проект, чтобы проверить, для каких дистрибутивов и версий доступен тот или иной пакет:
Настоящее спасение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥4
Понимание системных логов Linux
Системные логи, которые часто можно найти в директории /var/log на системах Linux, являются важным инструментом для мониторинга и устранения проблем в системе. Вот краткие заметки о некоторых распространённых системных логах:
— syslog: Лог общего назначения, который содержит сообщения от различных системных служб и приложений. Это основной файл журнала, в который поступают сообщения из многих других логов.
— auth.log: Записывает сообщения, связанные с аутентификацией, включая успешные и неудачные попытки входа, изменения паролей и события аутентификации пользователей.
— kern.log: Записывает сообщения, относящиеся к ядру системы, такие как ошибки оборудования, загрузка модулей ядра и другие активности ядра.
— messages: Универсальный лог-файл, который записывает различные системные сообщения, включая старты и завершения работы системы, а также другие события, связанные с системой.
— dmesg: Отображает сообщения из кольцевого буфера ядра, предоставляя реальный временной обзор событий, связанных с ядром, и обнаружением оборудования во время загрузки системы.
— cron: Записывает сообщения, связанные с заданиями cron и запланированными задачами, включая время их выполнения и ошибки, возникшие при их выполнении.
— secure: Записывает сообщения, связанные с безопасностью, включая попытки аутентификации, повышение привилегий и другие события безопасности.
— apache/access.log и apache/error.log: Логи, специфичные для веб-сервера Apache. access.log записывает логи HTTP-доступа, а error.log фиксирует ошибки и предупреждения сервера Apache.
— nginx/access.log и nginx/error.log: Подобные логам Apache, эти логи специфичны для веб-сервера Nginx и записывают события доступа и ошибки.
— mysql/error.log: Записывает ошибки и предупреждения, возникшие у сервера базы данных MySQL, включая ошибки при старте, сбои запросов и сбои баз данных.
Эти логи предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при устранении проблем.
Регулярный мониторинг и анализ этих логов помогают поддерживать здоровье системы и выявлять потенциальные проблемы до того, как они перерастут в серьёзные.
👉 DevOps Portal
Системные логи, которые часто можно найти в директории /var/log на системах Linux, являются важным инструментом для мониторинга и устранения проблем в системе. Вот краткие заметки о некоторых распространённых системных логах:
— syslog: Лог общего назначения, который содержит сообщения от различных системных служб и приложений. Это основной файл журнала, в который поступают сообщения из многих других логов.
— auth.log: Записывает сообщения, связанные с аутентификацией, включая успешные и неудачные попытки входа, изменения паролей и события аутентификации пользователей.
— kern.log: Записывает сообщения, относящиеся к ядру системы, такие как ошибки оборудования, загрузка модулей ядра и другие активности ядра.
— messages: Универсальный лог-файл, который записывает различные системные сообщения, включая старты и завершения работы системы, а также другие события, связанные с системой.
— dmesg: Отображает сообщения из кольцевого буфера ядра, предоставляя реальный временной обзор событий, связанных с ядром, и обнаружением оборудования во время загрузки системы.
— cron: Записывает сообщения, связанные с заданиями cron и запланированными задачами, включая время их выполнения и ошибки, возникшие при их выполнении.
— secure: Записывает сообщения, связанные с безопасностью, включая попытки аутентификации, повышение привилегий и другие события безопасности.
— apache/access.log и apache/error.log: Логи, специфичные для веб-сервера Apache. access.log записывает логи HTTP-доступа, а error.log фиксирует ошибки и предупреждения сервера Apache.
— nginx/access.log и nginx/error.log: Подобные логам Apache, эти логи специфичны для веб-сервера Nginx и записывают события доступа и ошибки.
— mysql/error.log: Записывает ошибки и предупреждения, возникшие у сервера базы данных MySQL, включая ошибки при старте, сбои запросов и сбои баз данных.
Эти логи предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при устранении проблем.
Регулярный мониторинг и анализ этих логов помогают поддерживать здоровье системы и выявлять потенциальные проблемы до того, как они перерастут в серьёзные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥4❤3
Долгий запуск команды приводит к тайм-ауту?
Используйте настройку
ansible_command_timeout Она задает максимальное время (в секундах), в течение которого Ansible будет ждать завершения команды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤2
Forwarded from Архив каналов
Этот репозиторий — сборник вопросов и ответов для подготовки к DevOps-собеседованиям.
Там есть темы про Docker, Kubernetes, CI/CD, облака, мониторинг, безопасность, Linux и Git.
Отлично подойдёт для подготовки к интервью и освежения знаний👍
Бросайте в закладки: https://github.com/rohitg00/devops-interview-questions
👉 DevOps Portal
Там есть темы про Docker, Kubernetes, CI/CD, облака, мониторинг, безопасность, Linux и Git.
Отлично подойдёт для подготовки к интервью и освежения знаний
Бросайте в закладки: https://github.com/rohitg00/devops-interview-questions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Заменяйте часть команды с помощью
fc. Например, если вы опечатались и вместо
apt ввели atp, можно заменить его в команде так:fc -s atp=apt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤3
Cистема отслеживает выполняемые команды и по ходу дает подсказки — очень удобно и дружелюбно
Архитектуру ресурса ребята показали на Github: https://github.com/fduran/sadservers
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤6
Создавайте несколько дочерних каталогов, даже если родительский каталог не существует:
$ mkdir -vp songs/{artists,albums,genres/{classical,pop}}Это создаст следующую структуру каталогов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Kyanos — инструмент для анализа трафика на основе eBPF
Он позволяет отслеживать сетевое взаимодействие отдельных процессов, включая HTTP-трафик, запросы к Redis и трафик серверов MySQL.
Из дополнительных полезностей - возможность трейсинга запросов на уровне ядра, что позволит понять на каком уровне или шаге происходят аномалии или задержки. И заявленная разработчиками возможность расшифровки SSL трафика на лету.
👉 Github
👉 DevOps Portal
Он позволяет отслеживать сетевое взаимодействие отдельных процессов, включая HTTP-трафик, запросы к Redis и трафик серверов MySQL.
Из дополнительных полезностей - возможность трейсинга запросов на уровне ядра, что позволит понять на каком уровне или шаге происходят аномалии или задержки. И заявленная разработчиками возможность расшифровки SSL трафика на лету.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
DevOps как Бургер
Как должен выглядеть roadmap DevOps-инженера:
👉 DevOps Portal
Как должен выглядеть roadmap DevOps-инженера:
🔹 Изучи язык программирования (Python, Go и др.), чтобы писать скрипты автоматизации.🔹 Освой одну операционную систему (Linux) и её интерфейс командной строки (CLI).🔹 Разберись с управлением серверами и веб-серверами, включая прокси-серверы, такие как Nginx или IIS.🔹 Познакомься с контейнеризацией с помощью Docker.🔹 Освой оркестрацию контейнеров с Kubernetes.🔹 Изучи инфраструктуру как код (IaC) с использованием Terraform, Ansible, Chef или Puppet для управления конфигурациями и развертывания инфраструктуры.🔹 Разберись в сетевых протоколах: DNS, IP-адреса, порты и модель OSI.🔹 Примени на практике CI/CD для автоматизации процессов интеграции и развертывания приложений.🔹 Освой техники мониторинга для отслеживания состояния приложений, сервисов и инфраструктуры в реальном времени.🔹 Получи практический опыт работы с облачными провайдерами, такими как AWS и Azure.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤3🤔2
Чтобы команда не сохранялась в истории Bash, введите перед ней пробел.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥12❤6👀4
15 лучших GitHub-репозиториев для изучения DevOps
Если хочешь прокачать свои навыки в DevOps, вот подборка топовых GitHub-репозиториев с дорожными картами, упражнениями, проектами и шпаргалками
— Дорожные карты и руководства
🔹 developer-roadmap – Дорожная карта DevOps-инженера
🔹 devops-resources – Полное руководство по Linux, Jenkins, AWS, Kubernetes, Terraform и другим инструментам
🔹 learn-devops – Обучение DevOps на основе задач с примерами из реального опыта.
🔹 DevOps-Tutorial – Практический туториал по CI/CD, контейнеризации и автоматизации.
🔹 tech-vault – База DevOps-уроков по Docker, Kubernetes, Ansible и другим технологиям
— Практика и упражнения
🔹 devops-exercises – 2600+ заданий по Linux, AWS, Docker, Kubernetes, Terraform, Jenkins и SRE.
🔹 test-your-sysadmin-skills – Задачи по Linux, сетям и устранению неполадок для DevOps и админов.
— Обучение на практике (проектный подход)
🔹 project-based-learning – Проекты для практики автоматизации, развертывания и мониторинга.
🔹 build-your-own-x – Создаём DevOps-инструменты (Docker, Git, CI/CD) с нуля!
🔹 kubernetes-the-hard-way – Развёртываем Kubernetes с нуля и учим его "под капотом".
🔹 Fast-Kubernetes – Готовые Kubernetes-проекты и скрипты для быстрого освоения.
— Автоматизация, CI/CD и инструменты
🔹 DevOps-Bash-tools – Полезные Bash-скрипты для DevOps-задач и автоматизации.
🔹 ansible-examples – Готовые плейбуки Ansible для настройки и управления инфраструктурой.
— Шпаргалки и быстрые справочники
🔹 cheat-sheets – Шпаргалки по Docker, Kubernetes, AWS, Terraform и другим DevOps-инструментам.
🔹 awesome-cheatsheets – Краткие справочники по скриптингу, Docker, Kubernetes.
👉 DevOps Portal
Если хочешь прокачать свои навыки в DevOps, вот подборка топовых GitHub-репозиториев с дорожными картами, упражнениями, проектами и шпаргалками
— Дорожные карты и руководства
— Практика и упражнения
— Обучение на практике (проектный подход)
— Автоматизация, CI/CD и инструменты
— Шпаргалки и быстрые справочники
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤3
Быстрый совет по Linux 🐧
Правильно структурируйте ваш XML-файл и сделайте его более читаемым с помощью инструмента xmllint
👉 DevOps Portal
Правильно структурируйте ваш XML-файл и сделайте его более читаемым с помощью инструмента xmllint
$ xmllint --format XML_FILE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍3❤1
Держите две крутейшие платформы для обучения — Play with Docker и Play with Kubernetes
🔹 Play with Docker — интерактивная среда для тестирования и обучения. Выдают 4-часовую сессию с пятью инстансами, на которых можно гонять контейнеры, строить сети, пробовать оркестрацию. Всё в браузере, без установки. Плюсом идёт обучение с заданиями и теорией
🔹 Play with Kubernetes — та же концепция, но для Kubernetes. Позволяет разворачивать кластер, добавлять ноды, экспериментировать с манифестами. Аналогично ограничение в 4 часа, после чего всё сносится. Есть обучающий курс, где шаг за шагом объясняют базовые вещи.
Сделано добротно, качественно и полностью бесплатно. Если ещё не пользовались — рекомендую
👉 DevOps Portal
Сделано добротно, качественно и полностью бесплатно. Если ещё не пользовались — рекомендую
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤4👍3
Найди 10 самых больших файлов в указанной директории
$ du -h /path/to/directory | sort -rh | head -n 10
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🤝1