Системный Администратор (Сисадмин)
14K subscribers
1.81K photos
1.69K videos
87 files
1.88K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Что такое RAID? Какие основные типы RAID существуют?

В работе с дисками есть две проблемы:

Низкая скорость чтения\записи
Выход дисков из строя и потеря данных

И это всё решается с помощью технологии RAID — избыточного массива независимых дисков.

Существуют следующие уровни спецификации RAID: 1, 2, 3, 4, 5, 6, 0. Кроме того, существуют комбинации: 01, 10, 50, 05, 60, 06. Существуют аппаратные и программные RAID-массивы.

Программные массивы создаются уже после установки ОС средствами программных продуктов и утилит, что и является главным недостатком таких дисковых массивов.
Аппаратные RAID’ы создают дисковый массив до установки ОС и от неё не зависят.
RAID 0 — чередование
RAID 1 — зеркалирование
RAID 5 — чередование с четностью
RAID 6 — чередование с двойной четностью
RAID 10 — совмещение зеркалирования и чередования

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Please open Telegram to view this post
VIEW IN TELEGRAM
👎11😁9🤣7🖕21🔥1
Шпаргалка по Tmux: установка, настройка, работа

Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.

Установка и настройка Tmux

Устанавливается Tmux из стандартных репозиториев Linux:
apt-get install tmux

После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
set -g mouse on

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


Работа с Tmux

Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).

Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:

Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
tmux new -s название сессии

Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
tmux attach || tmux new

Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
tmux ls

Команда вернёт список следующего вида:
0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)

Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
tmux attach -t наименование сессии

В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш Ctrl + b, s.

Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
tmux kill-session -t название сессии

Закрыть все сессии можно командой:
tmux kill-server

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
Команды Linux

ulimit — команда для вывода информации о лимитах ресурсов текущего пользователя

umount — команда для отключения файловой системы заданного устройства

uname — команда для вывода информации о версии ядра операционной системы

uniq — команда для удаления повторяющихся строк из текстового файла

unlink — команда для удаления ссылки на элемент файловой системы

unzip — команда для распаковки архива формата ZIP

uptime — команда для вывода информации о времени, в течение которого ваш компьютер функционирует

useradd — команда для создания новой учетной записи пользователя

userdel — команда для удаления учетной записи пользователя

usermod — команда для изменения параметров учетной записи
пользователя

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95
🔥 iovisor/bcc - Суперсила для отладки и мониторинга Linux

Если вы когда-нибудь слышали про eBPF, но боялись подступиться к написанию байт-кода вручную, то BCC (BPF Compiler Collection) - это то, с чего стоит начать.

Это набор инструментов для создания эффективных программ трассировки ядра и манипуляции ими. BCC делает использование eBPF доступным, позволяя писать front-end на Python или Lua, а back-end (то, что крутится в ядре) - на C.

Почему это круто?
Готовые инструменты: В папке /tools уже лежит клад. Хотите узнать, какие процессы сильно грузят диск? biolatency. Кто открывает файлы? opensnoop. Кто и какие команды выполняет в bash? execsnoop.
Безопасность: В отличие от старых модулей ядра, eBPF-программы проверяются верификатором перед запуском. Они не повесят ваш продакшн.
Низкий оверхед: Трассировка происходит на уровне ядра, данные агрегируются там же, а в user-space передаются только итоги.

🛠 Топ утилит из коробки:

- execsnoop: отслеживание новых процессов в реальном времени.
- biolatency: гистограмма задержек дискового ввода/вывода.
- tcptop: топ TCP-сессий по трафику.
- profile: профилирование CPU с минимальной нагрузкой.

Если вы хотите видеть, что на самом деле происходит внутри вашей Linux-системы, этот репозиторий - must have.

🔗 GitHub: https://github.com/iovisor/bcc


📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
Шпаргалка по ZFS

modinfo zfs | head -n 9 — узнать версию ZFS и другие подробности

Информация о пулах / файловых системах (ФС) на пулах
zpool list — статус пулов
zpool status -v — статус пулов подробный
zfs list — список ФС, так называются монтируемые разделы в пулах
zfs get all — вся информация по пулам

Управление пулами / дисками
ls -lha /dev/disk/by-id/ — выяснить id дисков чтобы потом на них создать пул (не юзайте имя диска типа sda — они динамически меняются)
zpool create zfspool disk-id-1 disk-id-2 — может быть сколько угодно дисков
zpool create -m /mnt/backups zfspool disk-id-1 — создать пул с указанием папки 
zpool destroy zfspool — уничтожить пул
mkfile 100m disk1 disk2 — создать файлы дисков
zpool create backups /disk1 /disk2- создать пул backups на созданных файлах
zpool create zfspool mirror /disk1 /disk2 — создать пул zfspool с зеркалированием на 2 диска
zpool add zfspool /disk3 — добавить диск в пул
zpool attach zfspool /disk3 — добавить устройство в пул, если он в зеркале — добавится в зеркало, если простой — пул расширится
zpool detach zfspool /disk3 — исключить устройство из пула
zpool remove zfspool /disk3 — удаление устройства из пула
zpool add zfspool spare /disk3 — добавление диска горячей замены в пул
zpool remove zfspool spare /disk3 — удаление диска горячей замены из пула
zpool offline zfspool /disk1 — отключить устройство, на него не будет чтения/записи, если добавить ключ -t, то после ребута станет онлайн
zpool online zfspool /disk1 — включить disk1
zpool replace zfspool /disk1 /disk3 — заменить disk 1, на disk3
zpool upgrade -v — увидеть версию, и фичи текущего ZFS, -a обновит все пулы до новейшей версии

Создание и свойства ФС
zfs create zfspool/data — создать ФС data
zfs create zfspool/backups создать ФС backups, обе ФС будут бесконтрольно расти, пока не выставлены квоты
zfs destroy -fr zfspool/backups/old — уничтожит ФС old, ключ -r — рекурсивно, если внутри ещё несколько ФС, -f — форсить
zfs set reservation=1G zfspool/data — зарезервировать 1 Гигабайт, который ФС гарантированно получит, а другие не займут
zfs list -o quota zfspool/backups — выяснить квоту в пуле на ФС backups
zfs set quota=1G zfspool/backups — установить квоту в 1 Гигабайт на ФС backups
zfs list -o compression — проверить включена компрессия или нет
zfs set compression=on zfspool/backups — включить компрессию на ФС backups в пуле zfspool
zfs set sharesmb=on zfspool/backups
 — расшарить по SMB ФС backups средствами ZFS
zfs set sharenfs=on zfspool/backups — расшарить по NFS ФС backups средствами ZFS

Монтирование
zfs mount — показать все примонтированные ФС
zfs mount zfspool/backups — примонтировать backups
zfs umount zfspool/backups — размонтировать ФС backups
zfs mount -a — смонтировать все ФС
zfs umount -a Umount — размонтировать все ФС

Снапшоты
zfs list -t snapshot — отобразить все снапшоты
zfs list -o space — сколько занимают места снапшоты
zfs snapshot zfspool/backups@test — создать снапшот ФС backups с названием test
zfs rollback zfspool/backups@test — вернуться к снапшоту backups с названием test, с ключом -r рекурсивно уничтожит промежуточные снапшоты, с ключом -f форсит анмаунт и ремаунт
zfs destroy zfspool/backups@test — уничтожить снапшот backups с названием test
zfs send zfspool/backups@march2021 > /home/backups/march2021.bak — сделать локальный бекап снапшота march2021
zfs receive zfspool2/backups2 < /home/backups/march2021.bak — восстановить из локального снапшота ФС на другом пуле
zfs send zfspool/backups@march2021 | ssh COMP02 «zfs receive testpool/testfs» — отправить снапшот по SSH на хост COMP02
zfs clone zfspool/backups@march2021 /clones/backups — клонировать существующий снапшот
zfs destroy zfspool/backups@march2021 — уничтожить клон

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
Media is too big
VIEW IN TELEGRAM
Зачем вводить системы Linux в домен Microsoft Active Directory?

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Cisco. Базовая настройка

Заливаем последнюю прошивку(для SSH необходим минимум Advanced Security), избавляемся от преднастроенного мусора и перегружаемся
erase startup-config

Включаем шифрование паролей
service password-encryption

Используем новую модель ААА и локальную базу пользователей
aaa new-model
aaa authentication login default local


Заводим пользователя с максимальными правами
username user privilege 15 secret password

Назначаем имя роутеру
hostname R1
ip domain-name R1.domain


Генерируем ключ для SSH
crypto key generate rsa

Настраиваем SSH
ip ssh authentication-retries 5
ip ssh version 2
ip ssh time-out 60


Разрешаем telnet и ssh на удаленной консоли и делаем доступ сразу в привилегированный режим 15го уровня line vty 0 4
transport input telnet ssh
privilege level 15


Отключаем доступ по http и https
no ip http server
no ip http secure-server


Настройка временной зоны и ntp
clock timezone MSK 3
ntp server 146.0.32.144


Настраиваем DNS
ip domain name domain
ip name-server 8.8.8.8


Блокируем доступ при определённом количестве неправильных попыток
login block-for 600 attempts 5 within 30

Отключаем ошибку резолва при неправильном наборе чего-либо в консоли
no ip domain-lookup

Задаём timeout неактивности telnet сессии
exec-timeout 15 0

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥2
Утилиты на PowerShell для системных администраторов

Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.

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

https://github.com/Sync1er/ChernigovEugeniyUtilities

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Как скопировать структуру директорий в Linux

В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.

Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1

Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt

Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2

Переходим туда
# cd /dir2

И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥4
Индикация раскладки клавиатуры подсветкой — решение для GNOME

Несмотря на весь технический прогресс IT, мне за всё время так и не удалось повстречать убедительное решение проблемы ввода «ghbdtn» вместо «привет» или «lf» вместо «да» — путаницы с раскладкой клавиатуры при наборе текста.

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

Я опишу реализацию решения для среды рабочего стола GNOME, проверенное на дистрибутивах Fedora 43 и Ubuntu 24.04.

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

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥61😁1
Карта ядра ОС Linux (Linux kernel map)

https://makelinux.github.io/kernel/map/

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Дорогие друзья, с Новым Годом!
27🎉19
Media is too big
VIEW IN TELEGRAM
Подключение удаленных USB устройств. USBIP

В этом видео мы расскажем о том, как получить общий доступ к usb-устройствам через ip-сеть для совместного использования. Расскажем, какие устройства можно подключить таким способом и продемонстрируем подключение в консольном и графическом варианте.

00:00 Вступление
01:14 Настройка на сервере
02:40 Настройка на клиенте
04:37 Графическая утилита

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
Для ускорения вашей работы с командами

!! — повторяет последнюю команду.

!$ — позволяет изменить команду, сохраняя последний аргумент. Например, команда less !$ — используется для повторного открытия файла в меньшем объёме.

!* —позволяет изменить команду, сохраняя при этом все аргументы. Например, head states.txt | grep '^Al' — при использовании должен быть хвост.

tail !* — избавляет от необходимости вводить остальную часть команды.

>x.txt — используется для создания пустого файла или очистки существующего.

lsof -P -i -n — определяет, к каким скриптам идёт обращение со стороны веб-сервера.

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Скрипт для мониторинга дискового пространства в Linux

Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (MAX), адрес электронной почты для получения оповещений (EMAIL) и целевой раздел (PARTITION).

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


#!/bin/bash

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
EMAIL=user@example.com

# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1

# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign

if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi


📲 Мы в MAX

👉 @sysadminof
👍74👎1
Media is too big
VIEW IN TELEGRAM
Деление IP сети на подсети при помощи маски легко и быстро. Наглядный способ!

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

источник

📲 Мы в MAX

👉 @sysadminof
👍13👎1🔥1
Cамые нужные команд SSH

Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -h
А так — перезагрузить ее:
$ ssh user@host sudo reboot

Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"

Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлу

Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclip
А так можно скопировать вывод команды:
$ ssh user@host uname -a | xclip

Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -

Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfs
Создать каталог для подключения «сетевого диска»:
$ mkdir remote_files
И подключить его:
$ sshfs user@host:/home/user ~/remote_files/
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.

Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@host
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@host

Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:
$ ssh -MNf user@host

📲 Мы в MAX

👉 @sysadminof
100👍12
Media is too big
VIEW IN TELEGRAM
MobaXterm

Это программа, предназначенная для удаленного администрирования компьютеров и серверов, самый универсальный терминал под Windows. SSH-RDP-FTP-SFTP...

https://mobaxterm.mobatek.net/

📲 Мы в MAX

👉 @sysadminof
1👍10🥱1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
TUIFIManager

Кроссплатформенный терминальный termux-ориентированный файловый менеджер, предназначенный для использования с проектом Uni-Curses

Установка
sudo pip3 install tuifimanager --upgrade
pip3 install TUIFIManager --upgrade


Использование
Запустите tuifi в терминале, или импортируйте его в один из ваших проектов Uni-Curses как компонент, например:
from TUIFIManager import *

https://github.com/GiorgosXou/TUIFIManager

📲 Мы в MAX

👉 @sysadminof
👍4
Bash

Что такое bash
Команды в bash
Перенаправление в bash
Управление задачами в bash
Понятие о сценариях оболочки bash
Ветвления, циклы, функции в сценариях bash

📲 Мы в MAX

👉 @sysadminof
8👍2👎2🔥2