Системный администратор
Открыть в Telegram
Канал для системных администраторов. Linux, Windows, Active Directory, GPO, PowerShell. Виртуализация Hyper-V, VMWare. Облака Azure, AWS. По всем вопросам @evgenycarter
Больше2 106
Подписчики
Нет данных24 часа
-207 дней
-14930 день
Архив постов
Собираем и запускаем Linux-0.01 в Minix 1.5, (почти) как это делал Линус Торвальдс
Я попытался повторить, насколько это возможно, действия Линуса Торвальдса по компиляции и запуску самой первой версии ядра Linux 0.01. Причины, побудившие Линуса начать разработка ядра, хорошо описаны в книге «Ради удовольствия: Рассказ нечаянного революционера» (далее J4F) и во множестве других источниках и мы не будем их касаться. А рассмотрим техническую сторону компиляции и запуску ядра Linux.
Непосредственно процесс сборки ядра по-unix'овски очень прост: достаточно выполнить команду make, и на выходе получаете готовый бинарный файл, который надо записать на дискету и загрузиться с неё. Но чтобы сборка прошла успешно, надо провести большую подготовку. Вот этим мы и займёмся. Я составил для вас очень подробное пошаговое руководство.
Сначала в эмуляторе 86Box создадим пустую виртуальную машину с характеристиками, близкими к компьютеру Линуса в то время, установим оригинальную версию операционной системы Minix 1.5.10, применим патчи «царя и бога Minix-386» (c) Брюса Эванса, поставим порт компилятора gcc версии 1.37.1 для Minix-386 от Алана Блэка (Alan W Black) и Ричарда Тобина (Richard Tobin), и в самом конце соберём и запустим ядро Linux с bash'ем внутри.
После каждого этапа я сохранял состояние виртуальной машины, жёсткого диска и образы дискет, которые подвергались изменению. Можете пройти все шаги самостоятельно или распаковать любой из архивов и продолжить выполнение инструкции с желаемого момента. Все дистрибутивы, скриншоты, конфигурации, это руководство, архивы с резервными копиями по каждому этапу и даже бинарный AppImage 86box (для Linux x86_64) можно найти в репозитории.
https://habr.com/ru/companies/vk/articles/752564/
👉@i_linux
Mikrotik: подключение интернета через USB 4G
В этом видео я показываю, как подключить интернет на роутере Mikrotik с помощью USB 4G-модема.
👉@i_linux
Создание файловой системы внутри файла
Иногда необходимо создать временную файловую систему для того, чтобы что-то протестировать. А свободного раздела на диске может не быть, да и флешка не всегда под рукой. К счастью в ОС GNU/Linux создание целой файловой системы внутри файла на любом диске не сложнее создания обычной файловой системы.
Это практическое видео, показывающее шаг за шагом, как создать внутрефайловую файловую систему и как её монтировать. После монтирования данная ФС никак не отличается от любой другой.
Команды dd, mkfs, и mount идут в комплекте со всеми дистрибутивами ОС GNU/Linux, а команда hexer, используемая для просмотра файла-контейнера, была нужна лишь для демонстрации изменений (но и она доступна почти во всех дистрибутивах)
источник
👉@i_linux
Шпаргалка по ZFS
modinfo zfs | head -n 9 - узнать версию ZFS и другие подробности
Информация о пулах / файловых системах (ФС) на пулах
zpool list - статус пулов
zpool status -v - статус пулов подробный
zfs list - список ФС, так называются монтируемые разделы в пулах
zfs get all - вся инфа по пулам, вообще вся
Управление пулами / дисками
ls -lha /dev/disk/by-id/ - выяснить айдишники дисков чтобы потом на них создать пул (будут проблемы если подцепишь по буквенному названию диска типа sda, они динамически меняются)
zpool create zfspool disk-id-1 disk-id-2 - может быть сколько угодно дисков, с ключом -f форсить создание пула
zpool create -m /mnt/backups zfspool disk-id-1 - создать пул с указанием папки маунтирования
zpool destroy zfspool - уничтожить пул zfspool, с ключом -f форсить уничтожение
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 remove zfspool mirror-1
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
zfs umount -a Umount - анмаунт всех ФС ZFS
Снапшоты
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 | zfs receive zfspool2/backups2 - Комбо предыдущих двух
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 - Уничтожить клон
👉@i_linux
Шпаргалка основных команд mysql по работе с базой данных и таблицам
Здесь в компактном виде собраны основные команды администрирование сервера MySQL посредством консоли, позволяющие получить информацию о состоянии баз данных, таблиц, просмотреть их структуру.
SHOW DATABASES; — список баз данных
SHOW TABLES [FROM db_name]; — список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name]; — список столбцов в таблице
SHOW CREATE TABLE table_name; — показать структуру таблицы в формате «CREATE TABLE»
DESC table_name; — узнать полную структуру таблицы
SHOW INDEX FROM tbl_name; — список индексов
SHOW GRANTS FOR user [FROM db_name]; — привилегии для пользователя.
SHOW VARIABLES; — значения системных переменных
SHOW [FULL] PROCESSLIST; — статистика по mysqld процессам
SHOW STATUS; — общая статистика
SHOW TABLE STATUS [FROM db_name]; — статистика по всем таблицам в базе
USE db_name; — использовать базу данных, для которой будут выполнятся дальнейшие запросы
DELETE FROM table_name; — удалить все записи из таблицы. Сначала нужно выполнить USE db_name;
SELECT * FROM table_name; — просмотр всех записей из таблицы
👉@i_linux+2
Мини шпаргалка по:
Работа с файлами и системой
Обработка данных и процессов
Основы скриптинга
👉@i_linux
Частые ошибки программирования на Bash
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.
Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо 🙂
https://habr.com/ru/articles/47706/
👉@i_linux
IPv6 — это катастрофа (но поправимая)
В последнее время мы всё чаще слышим не самые приятные новости про IP-адреса. Компания AWS объявила, что будет брать по $0,005/час за каждый адрес IPv4, тем самым присоединившись к другим облачным провайдерам, сделавшим платным использование публичного адреса IPv4. GCP просит с клиентов по $0,004, а Azure и Hetzner — по €0,001/ч. Очевидно, что эпоха, когда облачные провайдеры расширялись, скупая дополнительное пространство IPv4, подходит к концу. Чем дальше, тем ценнее становятся эти адреса, и тем менее целесообразно предоставлять их бесплатно.
Так что перспективы ясны — нам нужно переходить на IPv6. Впервые о необходимости перехода на IPv6 я услышал, когда учился в колледже, а сейчас мне 36. Это я к тому, чтобы вы поняли, как давно стали очевидны эти перспективы. До этого с IPv6 я не работал, на рынке практически отсутствовал спрос на соответствующие навыки, и мне не доводилось трудиться в компаниях, где бы эта тема кого-то интересовала. Поэтому и осваивать я её не стал, хотя зря, потому что она прекрасно расширила бы мои навыки в сфере сетевых технологий.
Rus https://habr.com/ru/companies/ruvds/articles/753906/
Eng https://matduggan.com/ipv6-is-a-disaster-and-its-our-fault/
👉@i_linux
📄 Диски и файловые системы
О файловых системах
Работа с дисками (RHCSA)
Основы файловых систем
Работа с файловыми системами (RHCSA)
Управление логическими томами - LVM (RHCSA)
Программный RAID - MD
Дедупликация с VDO (RHCSA)
Виртуальная память, swap (RHCSA)
Управление многоуровневым хранилищем - stratis (RHCSA)
Сетевые файловые системы - NFS (RHCSA)
источник
👉 @i_linux
Адресация IPv4. Деление на подсети и объединение подсетей
Что такое адресация IPv4 и как осуществляется деление на подсети? Вы познакомитесь с алгоритмом разделения сетей на подсети, а также со структурой IP-адреса, рассмотрите логическую структуру IP-адреса, разберёте понятия «идентификатор сети» и «идентификатор хоста», остановитесь на определении параметров IP-адресации при разделении сетей на подсети.
источник
👉 @i_linux
Fuck - это великолепная утилита, которое исправляет ошибки в предыдущих консольных командах.
Примеры:
➜
apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
➜ fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
[sudo] password for nvbn:
Reading package lists... Done
...
➜ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
➜ fuck
git push --set-upstream origin master [enter/↑/↓/ctrl+c]
Counting objects: 9, done.
...
Установка
На Ubuntu / Mint установите The Fuck с помощью следующих команд:
sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
pip3 install thefuck --user
На FreeBSD установите The Fuck с помощью следующих команд:
pkg install thefuck
На macOS или Linux установить The Fuck можно через Homebrew:
brew install thefuck
https://github.com/nvbn/thefuck
👉 @i_linuxKims Storage Toolkit
Этот скрипт под Linux помогает определить кто и чем занял свободное место и где требуется очистка.
https://github.com/klazarsk/storagetoolkit
👉 @i_linux
+2
Bashtop
Монитор ресурсов Linux/OSX/FreeBSDресурсов, который показывает статистику по загруженности процессора, оперативной памяти, жесткого диска и сети.
https://github.com/aristocratos/bashtop
👉 @i_linux
Инструменты для работы с памятью в Linux
procinfo
snap.py
memstats
processes2png
shmat
shmem
connections
find_instances
https://github.com/tatref/linux-mem/
👉 @i_linux
Основы сетей передачи данных. Модель OSI и стек протоколов TCP IP. Основы Ethernet.
В программе:
- Основы передачи данных;
- Способы связи: simplex, half-duplex, duplex;
- Виды коммутации: коммутация каналов и коммутация пакетов;
- Методы передачи данных: unicast, broadcast, multicast;
- Виды сетей: LAN, MAN, WAN;
- Сетевая модель OSI;
- Стек протоколов TCP/IP;
- Инкапсуляция и декапсуляция данных;
- Основы Ethernet, CSMA/CD, коллизии, сегментация, адресация, формат Ethernet фрейма.
👉 @i_linux
Траблшутинг сетевых сервисов.Инструменты и утилиты для диагностики
🔹Общий вид алгоритма поиска и устранения неисправностей и корреляция с моделью ISO/OSI
🔹Диагностика физического и канального уровней модели ISO/OSI и проверка связности
🔹Диагностика сетевого уровня, если сервис за пределами локальной сети
🔹Диагностика транспорта на уровне сокетов
🔹Диагностика верхних уровней модели ISO/OSI
источник
👉 @i_linux
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
