i_odmin | Unsorted

Telegram-канал i_odmin - Системный администратор

25978

Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp

Subscribe to a channel

Системный администратор

🖥 KVM: Управление виртуальными машинами из консоли (шпаргалка)

🔧 1. Проверка поддержки виртуализации:


egrep -c '(vmx|svm)' /proc/cpuinfo


Если результат > 0 — виртуализация поддерживается.

🔧 2. Установка KVM и утилит:


sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager


Для CentOS/RHEL:


sudo yum install qemu-kvm libvirt virt-install bridge-utils virt-manager


🔧 3. Проверка запуска демонов:


sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd




📂 Основные команды управления ВМ:

📌 Список виртуальных машин:


virsh list --all


📌 Запуск ВМ:


virsh start <vm_name>


📌 Остановка ВМ (корректно):


virsh shutdown <vm_name>


📌 Жёсткое выключение (аналог выдернуть шнур):


virsh destroy <vm_name>


📌 Автозапуск при загрузке хоста:


virsh autostart <vm_name>


📌 Удаление ВМ:


virsh undefine <vm_name>


📌 Снимок (snapshot):


virsh snapshot-create-as <vm_name> <snapshot_name>


📌 Восстановление из снимка:


virsh snapshot-revert <vm_name> <snapshot_name>


📌 Консоль к ВМ (требуется virtio):


virsh console <vm_name>




🛠 Создание новой ВМ из образа:


virt-install \
--name vm1 \
--ram 2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/vm1.qcow2,size=20 \
--os-type=linux \
--os-variant=ubuntu20.04 \
--network network=default \
--graphics none \
--console pty,target_type=serial \
--location /iso/ubuntu-20.04.iso \
--extra-args 'console=ttyS0'




💾 Управление образами:

📌 Создать образ диска:


qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 20G


📌 Проверка и инфо о диске:


qemu-img info /path/to/image.qcow2




🔗 Сетевые настройки:

📌 Список сетей:


virsh net-list --all


📌 Создание мостовой сети (bridge):
Редактировать /etc/netplan/*.yaml или /etc/network/interfaces (в зависимости от дистрибутива).

📌 Применить изменения:


netplan apply




📎 Полезное:

📌 Список ISO-образов, путь по умолчанию:
/var/lib/libvirt/images/ или /iso/

📌 Управление пулом хранения:


virsh pool-list
virsh vol-list default




💡 Советы:

– Используйте virt-top для мониторинга ВМ в реальном времени.
– Изучите virt-clone для клонирования ВМ.
– Используйте virsh dumpxml и virsh edit для тонкой настройки конфигурации ВМ.

👉 @i_odmin_book

Читать полностью…

Системный администратор

🌐 MPLS и корпоративные сети: невостребованные опции или жизненно необходимый функционал?

Понимание основ технологий MPLS позволяет на качественно новом уровне рассмотреть применение их в сегменте корпоративных сетей.

Также сравнение типов сервисов, предоставляемых набором технологий MPLS, позволяют выявить ограничения в использовании какого- либо иного сервиса в корпоративных сетях.

На уроке:
- Рассмотрим основы MPLS
- Узнаем, как реализуются сервисы на базе MPLS
- Реализуем на практике один из сервисов MPLS

👉 Регистрация и подробности о курсе Network Engineer. Professional https://vk.cc/cLVEwC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Системный администратор

Как упростить хранение логов и работу с данными?

В помощь отделу ИБ, DevOps- и SRE-инженерам, дата-аналитикам и разработчикам Selectel предлагает облако для OpenSearch.

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

Кроме производительного железа, бесперебойной работы и быстрого масштабирования в облаке Selectel для OpenSearch вы получите:

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

Создайте кластер в OpenSearch за несколько кликов в Selectel по ссылке: https://slc.tl/4c9yj

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwCvHSk

Читать полностью…

Системный администратор

Генерируем пароль в терминале Linux

Будем использовать /dev/urandom и утилиты makepasswd, pwgen.

Используем /dev/urandom
При чтении устройство /dev/urandom возвращает бесконечный набор случайных байтов. Этот вывод можно отфильтровать с помощью утилиты tr. Затем, вывод передать команде xargs которая, по умолчанию выполняет команду echo и ей передается всё, что было прочитано из стандартного ввода. А с помощью утилиты head можно указать необходимое количество символов в пароле.

То есть сгенерировать пароль в Linux поможет следующая команда:
$ tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 | xargs
AurTdatFbw


Вы можете сделать bash функцию и записать её в ваш .bashrc:
$ nano .bashrc
genpasswd() {
local l=$1
[ "$l" == "" ] && l=16
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}


Затем применим изменения и попробуем сгенерировать пароль:
$ . .bashrc
~$ genpasswd 5
Hbe7a
$ genpasswd 10
PDbt1tjBg0


Используем makepasswd

Утилита makepasswd может также помочь сгенерировать пароль в Linux. Она также использует /dev/urandom, чтобы создавать случайные пароли. Вы можете установить её с помощью apt:
$ sudo apt install makepasswd

Просто выполните эту команду без параметров чтобы получить случайный пароль:
$ makepasswd
5q6m4jMHJ


Можете указать количество символов в пароле с помощью опции chars и можете создать несколько паролей с помощью опции count:
$ makepasswd --chars 4 --count 3
1d65
R5Xe
Lhes


Можно создать пароли и сразу вывести их зашифрованный хеш с помощью опции crypt-md5:
$ makepasswd --chars 4 --count 3 --crypt-md5
DWBN $1$awZ5uNo/$r50RTWsihcMKEVQzoDyoZ1
xLN7 $1$h4ThtOu1$Bsmqhr/Tq/IIdGPtAVGda.
A2R2 $1$bss49Rj7$y.9nAbyr749N.eYRUF155.



Используем pwgen

Утилита pwgen генерирует легко запоминаемые пароли. Но также можешь генерировать случайные пароли. Устанавливается она также, с помощью apt:
$ sudo apt install pwgen

Если выполнить её без опций, то вы увидите список из легко запоминаемых паролей:
$ pwgen
Xu6Phei7 Ree2ud9e ohphah8I iiZ8Efoo foG0moh3 aSho2neL Phero4Ud thiCh9ei
uvaeChu0 eeCie5Um Wovie0do Eibuo3Ou Sai1Ovah po3OhT9j XeYei9ei eiQu2mai

....

Вы можете указать количество необходимых паролей с помощью опции -N и указать количество символов в пароле с помощью опции -n:
$ pwgen -N 3 -n 5
aeCo2 Le7oy uv6Oh


Существует также опция -s чтобы создавать более сложные пароли (их сложнее запомнить и подобрать):
$ pwgen -N 3 -n 5 -s
fY60V y6FIU 9XEt4


Я не заметил разницу в использовании опции -s, но в инструкции написано, что без этой опции пароль легче подобрать.

👉 @i_odmin

Читать полностью…

Системный администратор

Введение в Linux – Полный курс для начинающих (Eng ver)

Если вы новичок в Linux, этот курс предназначен для вас. Вы познакомитесь со многими инструментами, которые ежедневно используют как системные администраторы Linux, так и миллионы пользователей, работающих с дистрибутивами Linux, такими как Ubuntu, на своих компьютерах. Курс научит вас работать с графическим интерфейсом Linux и его мощной экосистемой командной строки.

⌨️ (0:00:00) Introduction
⌨️ (0:01:38) Chapter 1. Introduction to Linux Families
⌨️ (0:07:39) Chapter 2. Linux Philosophy and Concepts
⌨️ (0:16:37) Chapter 3. Linux Basics and System Startup
⌨️ (1:05:36) Chapter 4. Graphical Interface
⌨️ (1:34:29) Chapter 5. System Configuration from the Graphical Interface
⌨️ (2:04:27) Chapter 6. Common Applications
⌨️ (2:12:57) Chapter 7. Command Line Operations
⌨️ (3:25:50) Chapter 8. Finding Linux Documentation
⌨️ (3:36:53) Chapter 9. Processes
⌨️ (4:07:51) Chapter 10. File Operations
⌨️ (4:31:11) Chapter 11. Text Editors
⌨️ (4:49:25) Chapter 12. User Environment
⌨️ (5:13:32) Chapter 13. Manipulating Text
⌨️ (5:40:04) Chapter 14. Network Operations

источник

👉 @i_odmin

Читать полностью…

Системный администратор

🐳❓ Хотите стать экспертом по Docker и микросервисам? Освойте ключевые навыки для разработки, упаковки и развертывания приложений с Docker-образами!

⏰ На открытом вебинаре 13 мая в 20:00 мск мы разберём, как эффективно использовать Docker для контейнеризации и автоматизации процессов развертывания микросервисов. Вы познакомитесь с принципами создания и оптимизации Docker-образов, а также с лучшими практиками DevOps и CI/CD.

Умение использовать Docker для автоматизации и управления микросервисами сделает вас более конкурентоспособным на рынке труда. Получите знания, которые востребованы в крупных компаниях.

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Системный администратор

Что работает у Яндекса — и что можно взять себе

Многие темы на infra.conf — это взгляд изнутри на процессы Яндекса. Как устроена внутренняя инфраструктура и её части. Какие инструменты помогают держать стабильность. Как устроено взаимодействие между командами и почему инженерные решения принимаются именно так.

Будет полезно тем, кто проектирует что-то подобное у себя или просто хочет подсмотреть хорошие подходы.

Конференция состоится 5 июня в Москве, Loft Hall 8. Доступна онлайн-трансляция.

Читать полностью…

Системный администратор

🚀 Подборка Telegram каналов для программистов

Системное администрирование, DevOps 📌

/channel/bash_srv Bash Советы
/channel/win_sysadmin Системный Администратор Windows
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин
/channel/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
/channel/linux_odmin Linux: Системный администратор
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
/channel/DevLab1C 1С:Предприятие 8
/channel/razrab_1C 1C Разработчик
/channel/buh1C_prog 1C Программист | Бухгалтерия и Учёт
/channel/rabota1C_rus Вакансии для программистов 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия.
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Big Data, Machine Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
/channel/lifeproger Жизнь программиста. Авторский канал.

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/matgeoru Математика | Геометрия | Логика

Excel лайфхак📌
/channel/Excel_lifehack

/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Системный администратор

Сборка MS-DOS 4.0

Совсем недавно на хабре появилась следующая новость: На GitHub опубликован исходный код MS-DOS 4.00 под лицензией MIT. Раз появились исходные коды, стало сразу интересно: а можно ли собрать эту операционную систему?

Задача оказалась нетривиальной и совсем неочевидной. Оказывается, что исходные файлы DOS не так-то уж и легко переносятся в git, и уж как минимум, не как текстовые файлы в кодировке UTF-8. Но, к счастью, в отличие от утечек исходников MS-DOS 6.0, здесь имеется полный комплект файлов и инструментов, достаточный для корректной сборки и тестирования. Остались сущие нюансы, которые попили много крови.

Поэтому я, как и многие — начал свои эксперименты по сборке MS-DOS 4.0, с исправлением ошибок, а также возможностью исследования исходных кодов и тестирования их на реальном железе.

В статье же изложено краткое руководство по сборке и созданию загрузочной дискетки.

https://habr.com/ru/companies/timeweb/articles/812003/

👉 @i_odmin

Читать полностью…

Системный администратор

👋 Привет, админы!

Сегодня расскажу про один недокументированный нюанс с задачами в Планировщике Windows, с которым недавно столкнулся сам. Был у меня скрипт, который по расписанию должен запускаться от имени системной учетной записи (SYSTEM). Всё настроено правильно, вручную запускается — работает. Но вот по расписанию не срабатывает. Без ошибок, без логов, просто тишина. 🤔

🔍 После копания выяснилось: если задача запускается от SYSTEM, но в свойствах включена опция "Запускать только при входе пользователя", — она НЕ выполнится, потому что SYSTEM не входит в систему в классическом понимании.

💡 Решение:

1. Зайти в свойства задачи.
2. Переключить опцию на: "Выполнять вне зависимости от входа пользователя".
3. Обязательно включить галку "Не сохранять пароль", если используете обычную учетку (для SYSTEM это не критично).

📌 Ну и по возможности включайте логирование в задаче — пусть пишет вывод скрипта в файл, так проще отлавливать подобные "невидимые" фейлы.

💬 А у вас были странности с Task Scheduler? Может, знаете ещё тонкости, о которых стоит рассказать? Делитесь в комментариях!

👉 @win_sysadmin

Читать полностью…

Системный администратор

Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.

Установки имени устройства
/system identity set name=MyHomeMikrotik

Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no


Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru from=example@yandex.ru password=example-pass port=587 start-tls=yes user=example@yandex.ru


Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes


Изменение количества строк системного лога
/system logging action set memory memory-lines=10000

Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000


Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.

Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)

/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0


Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""


Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes


Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1

Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag


Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword


Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both

👉 @i_odmin

Читать полностью…

Системный администратор

💪 Рекомендую качественный контент знакомого ИТ-сообщества с 15-летним стажем:

⌨️ ITKB_channel — бесплатное обучение по Windows, Linux, DevOps, Security, Network, программирование

📚 ITKB_Archive — библиотека (книги, курсы, ИТ литература)

Читать полностью…

Системный администратор

✔️ Не можете выбрать между DWH, Data Lake и Data Lakehouse?
Запутались в понятиях и хотите разобраться, какой подход лучше для вас?

На открытом вебинаре 12 мая в 20:00 МСК мы простым и понятным языком разберём эти три важнейшие архитектуры данных: от проверенных временем DWH до гибких Data Lake и современных Data Lakehouse. Узнаем преимущества, ограничения и подходящие сценарии использования каждого подхода.

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

➡️ Регистрируйтесь на вебинар и получите скидку на программу обучения «Data Engineer»:
https://vk.cc/cLFpQp

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

Побег от WSL или как превратить старый ноутбук в домашний сервер для хранения данных и удаленной работы

Привет! Хочу поделиться личным опытом превращения старенького ноутбука ASUS X552CL (Intel i5-5200U, 12 ГБ RAM, SSD + HDD), выпущенный 12 лет назад, в полноценный домашний сервер под Linux Ubuntu Server 24.04.5 LTS.

Получилось что-то вроде мини-датацентра на дому — он хранит файлы на жёстком диске с бэкапом в облаке, Docker-контейнеры крутит для дата-аналитики и даже имеет легковесный интерфейс XFCE, при этом есть потенциал к росту до терминала для управления умным домом. Расскажу, почему было решено отказаться от WSL на рабочем ноутбуке Huawei, как настроить удалённый доступ через xRDP (чтобы не было чёрного экрана), запустить там Docker, сборку Superset и JupyterLab с Anaconda (с разными версиями Python), прикрутить Samba-шару для домашнего использования и организовать бэкап в облачном хранилище. В этой статье будет немного технических деталей, щепотка шуток и парочка мемов с советскими плакатами.

https://habr.com/ru/articles/906742/

👉 @i_odmin

Читать полностью…

Системный администратор

Подборка хаков с grep для продвинутых


🔥 1. Поиск в архивированных логах


zgrep "CRITICAL" /var/log/syslog.3.gz


> Использует zgrep, аналог grep, работающий с .gz - архивами.



🎯 2. Поиск точного слова, а не подстроки


grep -w "main" код.c


> Найдёт main, но не domain или maintain.



🌈 3. Подсветка совпадений


grep --color=always "TODO" файл.txt


> Цветовая подсветка совпадений, особенно удобно с less -R.



🧱 4. Исключение некоторых папок при рекурсивном поиске


grep -r --exclude-dir={.git,node_modules} "token" .


> Пропускает указанные директории.



🚦 5. Только совпадения (без всей строки)


grep -oE "ID-[0-9]{4}" журнал.log


> Выдаст только совпавшие фрагменты, например: ID-1234.



🔁 6. Найти строки, идущие ПЕРЕД или ПОСЛЕ совпадения


grep -A3 "panic" системный_лог.txt # 3 строки после
grep -B2 "panic" системный_лог.txt # 2 строки до
grep -C5 "panic" системный_лог.txt # 5 строк до и после




🧪 7. Поиск по нескольким шаблонам сразу


grep -E "ERROR|WARN|FATAL" журнал.log


> Или так, с отдельным шаблонным файлом:


grep -f patterns.txt журнал.log


Где patterns.txt содержит:


ERROR
WARN
FATAL




👁 8. Найти только имена файлов с совпадением


grep -rl "import numpy" .


> Удобно для массовой рефакторинга или аудита.



🧹 9. Удалить лишний мусор из grep - вывода


grep "Session" журнал.log | cut -d' ' -f2- | sort | uniq


> Например, выводим только нужные поля, убираем повторы.



⚙️ 10. Использование grep в пайплайне для live-аналитики


tail -f /var/log/nginx/access.log | grep --line-buffered "404"


> Реальное время: мониторинг 404 ошибок на веб-сервере.

👉 @i_odmin

Читать полностью…

Системный администратор

🖥 Базовый курс Ubuntu

1. Основные зарезервированные папки в ubuntu linux
2. Команды ubuntu linux о системе, озу, цпу, жёсткий диск
3. Создание, удаление, изменение файлов и папок в ubuntu linux
4. Менеджер зависимостей в ubuntu linux
5. Процессы, мониторинг и остановка процессов в ubuntu
6. Systemctl start, stop, reload, status, enable в ubuntu linux
7. Пользователи. Создание, удаление пользователей в ubuntu linux
8. Sudoers, visudo, root пользователь и привилегии в ubuntu linux
9. Права и доступы в ubuntu linux
10. Общие рекомендации к ubuntu linux

источник

👉 @i_odmin

Читать полностью…

Системный администратор

SQL за полтора часа в одном видео! Полный базовый курс по SQL. Базы данных курс для начинающих!

00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции

источник

👉 @i_odmin

Читать полностью…

Системный администратор

🧠 Bash-совет дня: Проверка скорости интернет-соединения прямо из терминала

Если тебе нужно быстро проверить скорость интернета на сервере (например, VPS), не устанавливая громоздкие GUI-программы — вот решение:


#!/bin/bash

# Проверяем наличие speedtest-cli
if ! command -v speedtest &> /dev/null; then
echo "⏳ Устанавливаем speedtest-cli..."
apt update && apt install -y speedtest-cli # Для Debian/Ubuntu
# yum install -y speedtest-cli # Для RHEL/CentOS
fi

# Запускаем тест скорости
echo "🚀 Проверяем скорость интернет-соединения..."
speedtest


📝 Альтернатива без установки — через curl:


curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -


📊 Удобно использовать при диагностике проблем с сетью, особенно на серверах в разных дата-центрах.

👉@bash_srv

Читать полностью…

Системный администратор

Удаление бакетов в S3: что стоит учесть?
Объектное хранилище S3 — надёжный способ работать с большими объёмами данных. 27 мая проведем митап для тех, кто хочет точно понимать, как устроены ключевые процессы S3 — от настройки версионирования до безопасного удаления бакетов.

В формате демо разберём
🔹 настройку версионирования, multipart-загрузок и lifecycle-политик
🔹 автоматизацию очистки бакета (включая delete marker и незавершённые multipart-загрузки)
🔹 как подготовить бакет к удалению
🔹 настройку политик доступа, временных ссылок и шифрование на стороне сервера SSE

Спикер
Евгения Тарашкевич, инженер K2 Cloud

Формат
Онлайн-митап

Ждем администраторов, девопсов, системных архитекторов и всех, кто работает с S3.

Зарегистрироваться>>

Читать полностью…

Системный администратор

Спецсимволы в bash

Далее перечислены символы и синтаксические конструкции, имеющее особое значение в bash. Для ввода спецсимволов как они есть используют кавычки или спецсимвол \ отменяющий специальное значение следующего символа

\ Экранирование. Отменяет специальное значение следующего символа
\\ Символ "\"

# Комментарий, не работает в кавычках и в некоторых подстановках переменных и преобразовании основания чисел
echo "Это #не комментарий"
echo 'Это # не комментарий’
echo Это \# не комментарий
echo Это # Вот комментарий.
echo ${PATH#*:} #Специальная переменная
echo $(( 2#101011 )) #Преобразование системы счисления в арифметической подстановке.

>, >> - перенаправление стандартного вывода программы в файл
< - перенаправление стандартного ввода программы из файла
<<TERM перенаправление стандартного ввода программы из текста текущего скрипта со следующей строки до строки, состоящей из слова TERM.
|- перенаправление стандартного вывода программы на стандартный ввод другой программы

; Разделитель команд в строке
echo hello; echo world

;; Разделитель альтернатив в операторе case
case "$VARiable" in
abc) echo "$VARiable = abc" ;;
xyz) echo "$VARiable = xyz" ;;
esac

. Аналог команды source (#include в С++). Выполняет скрипт в текущем интерпретаторе.
. myconf

".." Двойные кавычки, отменяют действие спецсимволов кроме $ .. и \

'...' Апострофы, отменяют действие всех спецсимволов в том числе и \, по этому нельзя включить апостроф в строку ограниченную апострофами

: Нулевая команда, всегда возвращает нулевой код ответа. В сочетании с перенаправлением ">" создает файл, или обнуляет существующий. В сочетании с перенаправлением ">>" создает файл, или изменяет время модификации существующего
:> data.xxx # File “data.xxx” now empty.
(можно и без двоеточия)

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

* Шаблон заменяющий любую последовательность символов
? Шаблон заменяющий ровно один символ
[xyz] Шаблон заменяющий один из перечисленных символов
{xxx,yyy,zzz,...} Подстановка одного из вариантов в шаблон. В скобках не должно быть неэкранированных пробелов
grep Linux file*.{txt,htm*} # Ищет слово “Linux” в файлах вида “fileA.txt”, “file2.txt”, “fileR.html”, “file-87.htm”, etc.

$ Подстановка значения переменной, арифметического выражения или стандартного вывода программы. Если значение содержит пробелы, то при подстановке оно разбивается на отдельные аргументы.
$A содержимое переменной A
$$ PID процесса
$? Код возврата из последней выполненной программы или функции, а также код возврата самого скрипта
$((2*2)) подстановка результата вычисления арифметического выражения
$(cmd) подстановка стандартного вывода программы
... тоже, что и $(...) – подстановка стандартного вывода программы

Пример: A=EE; echo $A $(echo QQ) $((7+5))
Результат: EE QQ 12
Ошибка: $A=ZZ
Результат: bash: EE=ZZ: command not found

(...) Группировка команд
(A=hello; echo $A)
Для выполнения группы в скобках запускается новый интерпретатор
A=123
(A=321)
echo A = $A # A = 123
# "A" внутри скобок – локальная переменная.

(...) Создание массива ( только в bash версии > 2)
Array=(element1 element2 element3)

[] Элемент массива ( только в bash версии > 2)
Array[1]=slot_1
echo ${Array[1]}

{1..10} - подстановка чисел от 1 до 10
{c..n} - подстановка символов от "c" до "n"

{...} Создание безымянной функции, удобно для перенаправления ввода/вывода нескольких команд в один файл. В отличие от настоящей функции видимости переменных не изменяется.
PACK=mysql
{
echo
echo "Archive Listing:"
rpm -qpl ${PACK} # Список фалов в пакете rpm
echo
rpm -i --test ${PACK} # Проверка, установлен ли пакет.
} > "${PACK}.txt" #И весь вывод в один файл.

[...] Встроенная функция test для вычисления логических выражений

((...)) Арифметическая подстановка, вычисляет арифметическое выражение в стиле языка Си внутри скобок

& - запуск программы в фоновом режиме
bash$ sleep 10 &
[1] 850
[1]+ Done sleep 10

👉@bash_srv

Читать полностью…

Системный администратор

Изменение порта для подключения по SSH

Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.

Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart

После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT

Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT

где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh

👉 @i_odmin

Читать полностью…

Системный администратор

Работа с правами доступа файлов и директорий в Linux

# chown vasya /file
Назначить пользователя vasya владельцем файла file
# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла /file
# chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
# chgrp new_group file
Изменить группу-владельца для file на new_group
# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа

👉 @i_odmin

Читать полностью…

Системный администратор

📕 Консоль запросов в работе с 1С:Аналитика для разработчиков 1C, консультантов 1C и аналитиков

Как применять результаты из консоли запросов в системе компоновки данных и 1С:Аналитике.

📗 На вебинаре 12 мая в 19:00 мск разберём:
1. Всё о вопросах анализа данных — от консоли до 1С:Аналитика;
2. Основы работы с консолью запросов в 1С и особенности написания запросов в 1С;

📘 В результате на практике освоите работу с интеграцией с 1С:Аналитика и переход от анализа данных внутри 1С к элементам BI-систем на примере 1С:Аналитика.

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

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

Резервное копирование PostgreSQL по-взрослому

Базы данных — замечательный инструмент, без которого сложно представить современное приложение. И как бы сильно я ни любил использовать БД, я просто ненавижу писать SQL-запросы. Поэтому однажды задался вопросом, кто мог бы делать это за меня, при этом несильно теряя в качестве. И, конечно же, на ум пришёл мой AI-друг. Тогда остаётся одна проблема, как скормить ему мою БД. Тут на помощь приходит резервное копирование! Выполнив все необходимые задачи, я решил углубиться в тему и поделиться с Хабром, какие вообще есть виды и, конечно, сравнить их между собой.

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

👉 @i_odmin

Читать полностью…

Системный администратор

🌐 OSPF или ISIS: машрутизация между зонами. Как разработать этот функционал и не ошибиться?

Понимание принципов работы маршрутизации между зонами позволяет на качественно новом уровне рассмотреть работу протоколов маршрутизации OSPF и IS-IS, работающих на основе информации о топологии сети и используемых внутри автономных систем (доменов маршрутизации).

Также сравнение отличий в реализации маршрутизации между зонами позволяют выявить ограничения в использовании того либо иного протокола.

На уроке:
- Рассмотрим, как реализована маршрутизация между зонами в OSPF
- Узнаем, как реализована маршрутизация между зонами в ISIS
- Реализуем на практике маршрутизацию между зонами в сети с использованием одного из современных протоколов маршрутизации

👉 Регистрация и подробности о курсе Network Engineer. Professional: https://vk.cc/cLGYNg

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Системный администратор

💡 Bash-совет дня: Мониторинг открытых портов с выводом в Telegram

Автоматизируй контроль за безопасностью своего сервера! Этот простой bash-скрипт проверяет изменения в открытых портах и шлёт уведомление в Telegram, если появились новые или исчезли старые порты.


#!/bin/bash

# Настройки
TG_TOKEN="your_bot_token"
TG_CHAT_ID="your_chat_id"
PORTS_FILE="/var/tmp/open_ports_last.txt"

# Получаем текущие открытые порты
ss -tuln | awk 'NR>1 {print $5}' | cut -d: -f2 | sort -n | uniq > /tmp/open_ports_now.txt

# Если нет предыдущего файла — создаём
if [ ! -f "$PORTS_FILE" ]; then
cp /tmp/open_ports_now.txt "$PORTS_FILE"
exit 0
fi

# Сравниваем с предыдущим состоянием
DIFF=$(diff -u "$PORTS_FILE" /tmp/open_ports_now.txt)

# Если есть изменения — шлём в Telegram
if [ -n "$DIFF" ]; then
MESSAGE="⚠️ Обнаружены изменения в открытых портах:\n\`\`\`\n$DIFF\n\`\`\`"
curl -s -X POST "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
-d chat_id="$TG_CHAT_ID" \
-d parse_mode="Markdown" \
-d text="$MESSAGE"

cp /tmp/open_ports_now.txt "$PORTS_FILE"
fi

# Уборка
rm -f /tmp/open_ports_now.txt


📌 Как использовать:

1. Замените your_bot_token и your_chat_id на свои значения.
2. Добавьте в cron, чтобы проверять, например, каждые 10 минут:


*/10 * * * * /path/to/script.sh


🔒 Будьте в курсе неожиданных открытий портов на своих серверах!

👉@bash_srv

Читать полностью…

Системный администратор

Основы компьютерной безопасности

Лекция 1. Основы криптографии
Практика 1. Криптография и её прикладные инструменты
Лекция 2. Основы сетей
Лекция 3. Основы веба
Практика 2. Основы веба
Лекция 4. Атаки на веб
Лекция 5. Безопасность беспроводных сетей Wi-Fi + воркшоп / Wireless security
Лекция 6. Прикладная криптография для самых маленьких. Менеджеры паролей, HTTPS, SSH

источник

👉 @i_odmin

Читать полностью…

Системный администратор

🎯 Основные компоненты системы на базе Linux


1️⃣ Начальный загрузчикGRUB
Запускается при старте компьютера и загружает ядро системы.

2️⃣ Ядро Linux
Сердце системы: управляет ресурсами, оборудованием и процессами.

3️⃣ Демоны (Daemons)
Фоновые службы, запускаемые при загрузке системы (например, cron, systemd).

4️⃣ Командная оболочка (Shell)
Интерфейс между пользователем и системой. Примеры: bash, zsh.

5️⃣ Утилиты командной строки
Набор инструментов для работы в терминале: ls, cp, grep, top и т.д.

6️⃣ Графический сервер
Компонент, управляющий отображением интерфейса (например, X11, Wayland).
Работает с видеокартой, мышью, монитором.

7️⃣ Среда рабочего стола
Графический интерфейс пользователя: KDE, GNOME, XFCE и др.
Включает в себя окна, панели, файловые менеджеры и пр.

8️⃣ Программы рабочего стола
Браузеры, текстовые редакторы, почтовые клиенты — всё, что делает Linux удобным для пользователя.

👉 @i_odmin

Читать полностью…

Системный администратор

Столкнулись с падением производительности базы данных?
Не делайте резких движений: вы можете ухудшить ситуацию.

Сначала нужно верно диагностировать причину проблемы.
Возможно вы неправильно выбрали индексы, а быть может дело вообще в самой архитектуре БД – вариантов масса!

На открытом вебинаре «Как ускорить работу и повысить надёжность PostgreSQL»
вы узнаете:
🎯как обеспечить высокую производительность и отказоустойчивость базы данных
🎯как вовремя выявить деградацию производительности с помощью диагностики

Вебинар проведёт Дмитрий Золотов, Kotlin-разработчик в «Яндексе».

Приглашаем технических руководителей, админов БД, девопсов и разработчиков.

Все участники получат в подарок видеоурок «Безопасность в PostgreSQL: защита данных, управление доступом и аудит» и скидку 7% на любой курс OTUS.

6 мая, 19:00 МСК
Бесплатно
Записаться - https://otus.pw/eioB/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFJR7f84

Читать полностью…

Системный администратор

Команда grep используется в Unix/Linux для поиска строк, соответствующих регулярному выражению, в одном или нескольких файлах или потоках ввода.

Синтаксис:


grep [опции] ПАТТЕРН [ФАЙЛ...]


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

1. Поиск строки в файле:


grep "ошибка" журнал.txt


Ищет строки, содержащие слово "ошибка" в файле журнал.txt.

2. Игнор регистра:


grep -i "ошибка" журнал.txt


Найдёт "ошибка", "Ошибка", "ОШИБКА" и т.д.

3. Рекурсивный поиск по директории:


grep -r "TODO" ./src


Ищет слово "TODO" во всех файлах внутри каталога src.

4. Вывод только совпавших частей (без всей строки):


grep -o "http[s]\?://[^ ]\+"


Ищет URL в потоке ввода.

5. Показать номера строк:


grep -n "ошибка" журнал.txt


6. Инвертированный поиск (показать строки без совпадений):


grep -v "успешно" журнал.txt


7. Использование регулярных выражений (расширенные):


grep -E "foo|bar" файл.txt


8. Поиск с подсветкой результата:


grep --color "pattern" файл.txt


👉 @i_odmin

Читать полностью…
Subscribe to a channel