Системный администратор
Відкрити в Telegram
Канал для системных администраторов. Linux, Windows, Active Directory, GPO, PowerShell. Виртуализация Hyper-V, VMWare. Облака Azure, AWS. По всем вопросам @evgenycarter
Показати більше2 050
Підписники
-1224 години
-317 днів
-9330 день
Архів дописів
Шпаргалка по поиску узких мест в Linux с помощью различных инструментов
👉 @i_linux
🎯 Топ-5 инструментов, которые облегчат жизнь Linux-админу
Если ты всё ещё вручную лазаешь по логам и не автоматизируешь рутину — этот пост для тебя:
1.
btop — продвинутый мониторинг ресурсов. Графика, интерактивность, кайф. Заменяет top и htop, особенно если ты ценишь эстетику и удобство.
2. glances — универсальный мониторинг "всё в одном". Работает даже через веб-интерфейс. Можно настроить алерты и метрики.
3. bpytop + ncdu — для анализа диска. Один показывает активность, другой — кто съел весь твой SSD.
4. atuin — мощный аналог истории bash/zsh с поиском по FZF и синхронизацией между машинами. Забудь про Ctrl+R.
5. tldr — короткие, понятные примеры команд. Особенно если ты не хочешь каждый раз читать мануал на 200 строк.
👉 @i_linuxKVM быстрый перенос виртуальной машины на другой сервер
Представим, что есть несколько гипервизоров - server1 и server2, как быстро перенести виртуального гостя с одного сервера, на другой? Очень просто.
Действия на server1
Выключить машину:
virsh shutdown vm1
Сделать дамп конфигурации машины:
virsh dumpxml vm1 > ~/vm1.xml
Скопировать данные на другой хост:
scp ~/vm1.xml server2:/path/to/folder/
scp /var/lib/libvirt/images/vm1.qcow2 server2:/var/lib/libvirt/images/
Действия на server2
Импортировать конфиг:
virsh define /path/to/folder/vm1.xml
Запустить виртуалную машину:
virsh start vm1
Удаление виртуальной машины KVM
Удалить машину:
virsh undefine vm1
Удалить диск:
virsh vol-delete --pool default vm1
Убедиться, что файл образа так же удален:
rm /var/lib/libvirt/images/vm1.qcow2
👉 @i_linuxShell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
👉 @i_linux
Как сменить пароль Linux пользователя при помощи Ansible
00:00 Введение
00:20 Ansible.builtin.user Модуль Ansible
01:00 параметры ansible.builtin.user
02:30 демонстрация модуля пользователя в плейбуке
04:35 выполнение и проверка модуля user
05:38 Подведение итогов
change_password.yml
---
- name: user module demo
hosts: all
become: true
vars:
myuser: "example"
mypassword: "password"
tasks:
- name: change password
ansible.builtin.user:
name: "{{ myuser }}"
state: present
password: "{{ mypassword | password_hash('sha512') }}"
Запуск
ansible-playbook change_password.yml
👉 @i_linux+6
Компьютерный прайс-лист фирмы Системы Папилон от лета 1995 года.
Цены, как тогда было принято, указаны в долларах.
👉 @i_linux
Основы документирования сетей. Как рисовать понятные и красивые схемы на примере типового дизайна сети
1.Основы документирования сетей. Введение
2.Основы документирования сетей. Чем рисовать? Visio
3.Основы документирования сетей. Чем рисовать? Diagrams.net
4.Основы документирования сетей. Структурная схема сети
5.Основы документирования сетей. L3 схема сети
6.Основы документирования сетей. L2 схема сети
7.Основы документирования сетей. Расположение оборудования в стойке
8.Основы документирования сетей. IP-план
9.Основы документирования сетей. Описание настроек
10.Основы документирования сетей. Заключение
источник
👉 @i_linux
❓ Вы в курсе, что можно автоматизировать инфраструктуру как код с помощью Terraform и GitLab?
⏰ На открытом уроке 3 апреля в 20:00 мск Вячеслав Федосеев расскажет, как настроить CI/CD-пайплайны для работы с Terraform, разграничивать окружения и эффективно управлять конфигурацией.
Вячеслав — эксперт в IT с 2006 года, от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по DevOps и CI/CD.
Если вы DevOps-специалист, архитектор или инженер, стремящийся оптимизировать процессы и автоматизировать инфраструктуру, этот урок для вас. Повышайте свою квалификацию, изучив лучшие практики IaC, и получайте навыки, востребованные на рынке.
🎁 Все участники вебинара получат скидку на полный курс по CI/CD на основе Gitlab.
👉 Для участия зарегистрируйтесь
https://vk.cc/cKdFK6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Работа с правами доступа файлов и директорий в 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_linuxДиски и файловые системы
О файловых системах
Работа с дисками (RHCSA)
Основы файловых систем
Работа с файловыми системами (RHCSA)
Управление логическими томами - LVM (RHCSA)
Программный RAID - MD
Дедупликация с VDO (RHCSA)
Виртуальная память, swap (RHCSA)
Управление многоуровневым хранилищем - stratis (RHCSA)
Сетевые файловые системы - NFS (RHCSA)
источник
👉 @i_linux
Как быстро проверить доступность множества портов на удалённом сервере?
Бывало у вас такое, что нужно быстро проверить, какие порты открыты на удалённом сервере? Конечно, можно запускать telnet или nc по одному, но это долго и неудобно. Сегодня покажу вам, как можно быстро проверить несколько портов разом.
1. Используем nc (netcat)
Если у вас есть netcat, можно проверить сразу несколько портов в диапазоне:
nc -zv 192.168.1.100 22 80 443 8080
Флаг -z говорит nc просто проверить подключение (без отправки данных), а -v включает режим подробного вывода.
2. Проверяем диапазон портов с seq
Когда портов много, можно использовать seq:
for port in $(seq 20 1024); do nc -zv 192.168.1.100 $port 2>&1 | grep succeeded; done
Так мы пробежимся по всем портам от 20 до 1024 и увидим, какие из них доступны.
3. Используем nmap для удобства
Если у вас установлен nmap, это еще удобнее:
nmap -p 22,80,443,8080 192.168.1.100
А если хотите просканировать диапазон портов:
nmap -p 1-65535 192.168.1.100
4. Альтернативный вариант – bash с /dev/tcp
Можно даже без сторонних утилит, просто с помощью встроенных средств Bash:
for port in 22 80 443 8080; do
(echo >/dev/tcp/192.168.1.100/$port) &>/dev/null && echo "Порт $port открыт" || echo "Порт $port закрыт"
done
👉 @i_linux📈Picosnitch - мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF
Получение уведомлений при подключении к сети новой программы или при ее изменении
Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени
При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal
Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах
Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации
Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения
Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно
https://github.com/elesiuta/picosnitch
https://elesiuta.github.io/picosnitch/
👉 @i_linux
Основы работы с терминалом и BASH
Основные команды терминала. Первый скрипт на BASH.
Основы BASH | Условия
Основы Bash | Циклы
Основы BASH | for, let, trap
Основы BASH | Функции, рекурсия, модули, массивы
Основы терминала | GNU awk
Основы BASH | expect, who, mesg, autoexpect
Все видео доступны на youtube
👉 @i_linux
+1
GoAccess - это реал тайм анализатор веб логов и интерактивная программа просмотра с открытым исходным кодом, который запускается в терминале в системах * nix или через ваш браузер.
Demo
https://rt.goaccess.io/?20210208192039
Github
https://github.com/allinurl/goaccess
👉 @i_linux
Объединение файлов командой cat
Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.
Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
My text file 1
А в другом:
My text file 2
То после объединения мы получим файл с двумя строками:
My text file 1
My text file 2
То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).
Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:
cat file1 file2 > file12
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:
cat file1 file2 file3 file4 > myfile
👉 @i_linux