Системный администратор
25.9K subscribers
2.83K photos
2.49K videos
203 files
2.95K links
Все для системного администратора.

По всем вопросам @evgenycarter

РКН clck.ru/3KoDXp
Download Telegram
💡 Совет дня по Linux

Используй расширение фигурных скобок с mkdir -p, чтобы создавать сразу несколько вложенных директорий одним махом!

Вот такая однострочная команда:


$ mkdir -p projects/{frontend,backend}/{src,test,docs}


мгновенно создаст 6 директорий 👇

* projects/frontend/src
* projects/frontend/test
* projects/frontend/docs
* projects/backend/src
* projects/backend/test
* projects/backend/docs

👉 @i_odmin
Приглашаем на вебинар с участием эксперта Александры Цветковой – эксперта из российской IT-компании, разрабатывающей ПО для информационной безопасности: «Как объяснить директору необходимость ИБ за 5 минут»

📌 21 мая | 11:00 (МСК)

Устали от возражений "Это дорого" и "Нам это не нужно"? Научитесь доносить ценность ИБ до руководства быстро и убедительно!

На вебинаре вы узнаете:
🔹 Почему ИБ — это инвестиция, а не затраты
🔹 Как перевести техугрозы в деньги — язык, который поймёт любой директор
🔹 Кейсы-победители: как компании экономят до 15 млн руб. на простых решениях
🔹 Готовые шаблоны для вашей следующей презентации

Вы сможете задать вопросы, поучаствовать в розыгрыше подарков, а также получить в подарок файл с готовыми аргументами для директора.

🖥 Успейте зарегистрироваться: https://xserver.a-real.ru/vebinars/?utm_source=iodmintg

Реклама. ООО «А-Реал Консалтинг», ИНН 7606047112, ERID: 2VtzqumdFkx
🔧 Bash: Работа с массивами

В Bash, помимо обычных переменных, есть поддержка массивов. Это мощный инструмент, особенно полезный для скриптов и автоматизации.

📌 Обычные массивы (indexed)


x=() # Пустой массив
x[0]='a' # Присваивание
x[1]='b'
x[2]='c'
x=('a' 'b' 'c') # Сокращённая запись


📥 Чтение элементов:


echo ${x[1]} # Конкретный элемент
echo ${x[@]} # Все элементы


Обрати внимание: индексы — только числовые (до Bash 4), и синтаксис отличается от C.



🧠 Ассоциативные массивы (только Bash ≥ 4.0)

Для ключей в виде строк используй ассоциативные массивы:


declare -A y # Объявление пустого ассоциативного массива
y[abc]=123 # Присваивание
y[efg]=xxx
y=([abc]=123 [efg]=xxx) # Сокращённая запись


📥 Чтение элементов:


echo ${y[abc]}


⚠️ Без declare -A Bash воспримет строковый ключ как 0 и создаст обычный массив с одним элементом!



📄 Загрузка файла в массив (Bash ≥ 4)


mapfile z < текстовый_файл


Каждая строка файла — отдельный элемент массива z.

💡Используте массивы, чтобы писать чище и эффективнее.
Поддерживай читаемость, особенно если работаешь с конфигами, данными или файлами.

👉 @i_odmin
📕 Борьба с блокировками в PostgreSQL и MS SQL Server для администраторов баз данных, Data engineers, Backend и FullStack-разработчиков.

Как вести работу c PostgreSQL и MS SQL Server без конфликтов и дедлоков.

📗 На вебинаре 20 мая в 20:00 мск разберём:
1. Всё о различных типах блокировок и их механизмах, сходвстах и различиях;
2. Методы предотвращения и разрешения дедлоков;

📘 В результате на практике освоите написание SQL-кода, минимизирующего риски блокировок и дедлоков.

👉 Регистрация и подробности о курсе Базы данных: https://vk.cc/cM58fA

Все участники открытого урока получат скидку на курс "Базы данных"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Add-on pack из 90-х: Microsoft 95 Plus! для Windows

24 августа 1995 года вышла Windows 95 — операционная система, которая должна была стать одним из лидеров в домашнем и SOHO-сегменте. Она предлагала пользователям удобный графический интерфейс, поддержку многозадачности и функцию Plug&Play. Правда, работало это далеко не идеально: в народе технология получила ироничное прозвище Plug&Pray («подключи и молись»). Зато с архитектурной точки зрения это был серьезный шаг вперед — переход от 16-битных к 32-битным приложениям.

Как это часто бывает, к моменту релиза далеко не все запланированные функции были готовы. Разработчики стояли перед выбором: внедрить недоработанные фичи и рисковать стабильностью или отложить их на потом. В итоге дополнительные возможности решили выделить в отдельный коммерческий продукт. Так появилась первая версия Windows 95 Plus! — своеобразное дополнение к основной системе. О нем сегодня и расскажу.

https://habr.com/ru/companies/ru_mts/articles/909426/

👉 @i_odmin
Полное руководство по мониторингу производительности Ubuntu (стаья на Eng)

Когда система Ubuntu начинает тормозить, крайне важно быстро найти корень проблемы. Это исчерпывающее руководство охватывает всё — от базовых инструментов мониторинга до продвинутых техник, как для новичков, так и для системных администраторов.

Чем отличается мониторинг производительности в Ubuntu?
Благодаря основе на Linux, Ubuntu предоставляет более глубокий уровень видимости производительности системы по сравнению с другими операционными системами. Система открывает доступ к подробным метрикам через виртуальную файловую систему /proc и специализированные инструменты, получающие данные на уровне ядра.

Виртуальная файловая система /proc служит окном в ядро: например, файл /proc/cpuinfo содержит характеристики процессора, а /proc/meminfo — подробную информацию о распределении памяти. Такая прозрачность позволяет отслеживать всё: от производительности отдельных потоков до специфических типов выделенной памяти.

Модульный подход к мониторингу в Ubuntu позволяет комбинировать различные инструменты под конкретные задачи, вместо того чтобы полагаться на одно универсальное приложение.

https://last9.io/blog/ubuntu-performance-monitoring/

👉 @i_odmin
⚠️ Terraform меняет правила игры в DevOps. Хотите освоить инструмент, с которым инфраструктура развертывается в несколько кликов?

На открытом вебинаре 20 мая в 20:00 МСК вы узнаете, как Terraform делает инфраструктуру управляемой, прозрачной и масштабируемой. Разберём ключевые понятия: провайдеры, состояние, модули и переменные. Вы узнаете, почему IaC стал золотым стандартом DevOps.

💪 Научитесь автоматизировать развёртывание ресурсов, избавьтесь от рутинной ручной работы и освободите время на действительно важные задачи.

👉 Регистрируйтесь прямо сейчас и получите скидку на программу обучения «DevOps-практики и инструменты»: https://vk.cc/cM5iJP

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
📌Grep в Linux как инструмент для администрирования

grep — утилита командной строки, используется для поиска и фильтрации текста в файлах, на основе шаблона, который (шаблон) может быть регулярным выражением.

Примеры использования.

grep iodmin

grep iodmin file.txt поиск iodmin в файле file.txt, с выводом полностью совпавшей строкой
grep -o iodmin file.txt поиск iodmin в файле file.txt и вывод только совпавшего куска строки
grep -i iodmin file.txt игнорирование регистра при поиске
grep -bn iodmin file.txt показать строку (-n) и столбец (-b), где был найден iodmin
grep -v iodmin file.txt инверсия поиска (найдет все строки, которые не совпадают с шаблоном iodmin)
grep -A 3 iodmin file.txt вывод дополнительных трех строк, после совпавшей
grep -B 3 iodmin file.txt вывод дополнительных трех строк, перед совпавшей
grep -C 3 iodmin file.txt вывод три дополнительные строки перед и после совпавшей
grep -r iodmin $HOME рекурсивный поиск по директории $HOME и всем вложенным
grep -c iodmin file.txt подсчет совпадений
grep -L iodmin *.txt вывести список txt-файлов, которые не содержат iodmin
grep -l iodmin *.txt вывести список txt-файлов, которые содержат iodmin
grep -w iodmin file.txt совпадение только с полным словом iodmin
grep -f iodmins.txt file.txt поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкой
grep -I iodmin file.txt игнорирование бинарных файлов
grep -v -f file2 file1 > file3 вывод строк, которые есть в file1 и нет в file2
grep -in -e 'python' `find -type f` рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпадений
grep -inc -e 'test' find -type f | grep -v :0 рекурсивный поиск файлов, содержащих слово python с выводом количества совпадений
grep . *.py вывод содержимого всех py-файлов, предваряя каждую строку именем файла
grep "Http404" apps/**/*.py рекурсивный поиск упоминаний Http404 в директории apps в py-файлах

Полный мануал по grep есть тут

👉 @i_odmin
Осталось только начать: Яндекс Браузер запустил партнёрскую программу для тех, кто хочет зарабатывать, не влезая в мутные схемы. Если у тебя есть сервисный центр, магазин компьютерной техники, свой сайт или ты автор, который пишет статьи, — ты уже подходишь.

Суть программы в следующем:
— рекомендуешь Яндекс Браузер
— пользователь устанавливает и пользуется им
— тебе начисляется до 500 ₽ за каждую подтверждённую установку

Сотрудничать по программе можно напрямую как физическое или юрлицо, ИП или самозанятый. ❗️ Если ты давно искал простой, но надежный способ увеличить доход — время пришло.
От «ламповых» серверов до облачных гигантов: 35 лет истории коммерческого хостинга в одной статье

В начале 90-х интернетом пользовались единицы, а хостинг был скорее экзотикой — сайты хранились на университетских или «домашних» серверах энтузиастов. Первые коммерческие дата-центры появились примерно к середине десятилетия, а к его концу уже возникли техногиганты. За следующие 35 лет отрасль выросла в глобальную экосистему со своими правилами и локальными историями. Вспомним, как всё развивалось — в мире и у нас, и чем это в итоге обернулось. Напомним, что технологии хостинга мы рассмотрели ранее.

https://habr.com/ru/companies/ruvds/articles/907358/

👉 @i_odmin
Http logs viewer 💪

Онлайн-инструмент для визуализации логов Apache. Он позволяет:

* Загружать и анализировать логи Apache в реальном времени.
* Получать сводную информацию о трафике, ошибках, IP-адресах и запросах.
* Фильтровать и искать по логам по дате, коду ответа, URL и другим параметрам.
* Использовать инструмент прямо из браузера, без необходимости установки.

Подходит для быстрого анализа логов при отладке или расследовании инцидентов.

https://www.apacheviewer.com/

👉 @i_odmin
⚠️ Как настроить Nginx и Angie для стабильной и быстрой работы при большом количестве запросов?

👉 Приглашаем на вебинар: Оптимизация Nginx и Angie под высокие нагрузки

На вебинаре вы узнаете:
- Как оптимизировать системные параметры для повышения производительности
- Как правильно настроить TLS и сократить накладные расходы на шифрование
- Какие возможности по кэшированию есть у Nginx и Angie и как их эффективно использовать
- Как измерять и анализировать клиентскую и серверную производительность

В результате вебинара вы:
- Научитесь выявлять и настраивать ключевые параметры, влияющие на производительность
- Сможете оптимизировать конфигурацию Nginx и Angie под конкретные сценарии нагрузки
- Попробуете применять техники кэширования и настройки TLS для снижения нагрузки
- Поймёте, как оценивать эффективность настройки и устранять узкие места

Все участники получат скидку на большое обучение «Инфраструктура высоконагруженных систем».

👉 Для участия зарегистрируйтесь: https://vk.cc/cM6Bil

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Forwarded from Bash Советы
🔁 Как перезапускать сервис только если он завис?

Иногда не хочется перезапускать сервис "на всякий случай", но вот если он реально завис — другое дело. Вот простой способ проверять, активен ли сервис, и перезапускать его при зависании:


#!/bin/bash

SERVICE="nginx"

if ! systemctl is-active --quiet "$SERVICE"; then
echo "$(date): $SERVICE не активен, пробую перезапустить..." >> /var/log/service_monitor.log
systemctl restart "$SERVICE"
else
echo "$(date): $SERVICE работает нормально" >> /var/log/service_monitor.log
fi


🛠 Можно добавить в крон, например, проверку каждые 5 минут:


*/5 * * * * /usr/local/bin/check_nginx.sh


📁 Не забудь сделать скрипт исполняемым:


chmod +x /usr/local/bin/check_nginx.sh


💡 Можно заменить nginx на любой другой системный сервис.

👉@bash_srv
Работа с сетью

Отладка Linux

# ethtool eth0 - Показать Ethernet статус
# ethtool -s eth0 speed 100 duplex full - Принудительная установка режима 100Mbit Full duplex
# ethtool -s eth0 autoneg off - Отключить автоопределение
# ethtool -p eth1 - Мигать индикатором сетевой карты - если поддерживается
# ip link show - Список сетевых интерфейсов в Linux (подобна ifconfig)
# ip link set eth0 up - Активировать сетевой интерфейс (или отключить). Аналог "ifconfig eth0 up"
# ip addr show - Список всех IP адресов в Linux ( аналог ifconfig)
# ip neigh show - Тоже что и arp -a

Печать таблицы маршрутизации

# route -n # Linux или используйте "ip route"
# netstat -rn # Linux, BSD и UNIX
# route print # Windows

Используйте "add -p" что-бы сделать маршрут постоянным.Настройка дополнительных IP адресов Linux

# ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Первый IP адрес
# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Второй IP адрес
# ip addr add 192.168.50.254/24 dev eth0 # Эквивалентные команды для ip
# ip addr add 192.168.51.254/24 dev eth0 label eth0:1

https://telegra.ph/Rabota-s-setyu-05-20

👉 @i_odmin
📕 Распределение косвенные расходы в 1С:ERP для разработчиков 1C, консультантов 1C и аналитиков

На открытом уроке 21 мая в 19:00 мск мы погрузимся в тонкости методики сложного распределения косвенных расходов в 1С:ERP:

📗 На вебинаре разберём:
1. Всё о основных типах расходов в 1С:ERP и методиках работы с ними;
2. Реальные примеры использования стандартных механизмов распределения затрат и методика доработки системы для распределения затрат по нетиповым алгоритмам;

📘 В результате на практике разреберетесь в механизмах учета затрат и узнаете как можно с помощью простых доработок реализовать сложные механизмы распределения косвенных расходов.

👉 Регистрация и подробности о курсе Бизнес-аналитик 1С: https://vk.cc/cM6Tow

Все участники открытого урока получат скидку на курс "Бизнес-аналитик 1С"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🎯 Как ускорить навигацию в командной строке


🔁 Повторный запуск под root — sudo !!

user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!


🔂 Повтор последнего аргумента — Alt + .

Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?

Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:

mkdir MyNewDirectory
cd <Alt+.>


🔍 Поиск команды в истории — Ctrl + R

Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!

Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?

Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R

Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.

(reverse-i-search)cat: sudo cat /var/log/messages


🏠 Домашняя директория — cd

Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.


🔙 Назад в прошлую директорию — cd -

Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .

Как не надо: cd /var/www/foo
Как надо: cd -


🎭 Фоновый режим, передний план и контроль задач

Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.

Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.

«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.

user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.

👉 @i_odmin
🚀 Откройте для себя Infrastructure as Code с Terraform

Задумывались, как упростить управление инфраструктурой и сделать её более прозрачной и управляемой? Узнайте, как сделать это с помощью Terraform на открытом вебинаре.

Мы расскажем, как концепция Infrastructure as Code помогает автоматизировать и контролировать процессы, избавляя вас от необходимости вручную управлять виртуальными машинами через интерфейс облачных провайдеров. Один раз описав желаемое состояние инфраструктуры, вы сможете подключать любые облачные провайдеры, когда это будет нужно.

Преимущества очевидны: автоматизация, контроль версий и возможность откатиться к предыдущим состояниям. Понимание этих инструментов — шаг к эффективному управлению вашей инфраструктурой.

🎁Зарегистрируйтесь на вебинар и получите в подарок запись полезного эфира "Ansible: быстрый старт". Это отличная возможность узнать, как использовать Terraform и Ansible для решения ваших задач.

👉 Регистрация открыта: https://vk.cc/cM8Adb

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Алиасы в терминале — сокращай и побеждай
Тысячи раз печатаешь одно и то же? Пора использовать алиасы. Это короткие имена для длинных команд. Настроил — и забыл.


🛠️ Что такое alias?
Алиас — это сокращение для команды. Например:


alias gs='git status'


Теперь достаточно написать gs вместо git status. Быстрее, чище, удобнее.


📍 Как создать алиас?
Временный (только на текущую сессию):


alias ll='ls -la'


Постоянный (в .bashrc):


echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc



🔥 Полезные алиасы

📁 Улучшенный ls:


alias ls='ls --color=auto'
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'


🔧 Работа с apt:


alias update='sudo apt update && sudo apt upgrade -y'
alias install='sudo apt install'
alias remove='sudo apt remove'


🌐 Работа с сетью:


alias ports='netstat -tulanp'
alias ipinfo='curl ifconfig.me'


📂 Навигация:


alias ..='cd ..'
alias ...='cd ../..'
alias proj='cd ~/projects'


🧠 Git:


alias gs='git status'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --all'



🎯 Комбо: алиас + функция


alias gco='git checkout'


Или более мощно:


mkcd () {
mkdir -p "$1" && cd "$1"
}


Теперь просто: mkcd new_folder


⚠️ Не забывай:

* Алиасы работают в интерактивной оболочке
* Они не наследуются другими shell’ами (например, в sh или скриптах)

👉 @i_odmin