Девочка Сисадмин – Telegram
Девочка Сисадмин
2.11K subscribers
738 photos
72 videos
244 links
Канал по системному администрированию, который ведет девочка админ. Все о Linux, Windows и т.д.

По всем вопросам : @Sofiia_artamonova
Download Telegram
Совет по Linux 💡

Как анализировать системные вызовы в Linux?

Strace - это утилита командной строки, которая перехватывает и записывает все системные вызовы, которые выполняет программа в пользовательском пространстве, и все сигналы, которые она получает.

Вы можете наблюдать, как происходит обмен данными между программой пользовательского пространства и ядром.
1
📌 Шпаргалка по MDRAID

Создание массива:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

После чего нужно создать конфигурационный файл mdadm.conf
mdadm --detail --scan > /etc/mdadm/mdadm.conf

И записать изменения в загрузочный образ:
update-initramfs -u

Работа с массивом
Пометка диска как сбойного
Диск в массиве можно условно сделать сбойным, ключ --fail (-f):

mdadm /dev/md0 --fail /dev/hde1
mdadm /dev/md0 -f /dev/hde1


Удаление сбойного диска
Сбойный диск можно удалить с помощью ключа --remove (-r):
mdadm /dev/md0 --remove /dev/hde1
mdadm /dev/md0 -r /dev/hde1


Добавление нового диска
Добавить новый диск в массив можно с помощью ключей --add (-a) и --re-add:
mdadm /dev/md0 --add /dev/hde1
mdadm /dev/md0 -a /dev/hde1


Сборка существующего массива

Собрать существующий массив можно с помощью mdadm --assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать.
mdadm --assemble /dev/md0 /dev/hde1 /dev/hdf2 /dev/hdg1
mdadm --assemble --scan


Проверить состояние массива и получить информацию и массиве
Состояние массива:
cat /proc/mdstat

Информация о массиве:
mdadm --detail /dev/md0

Информация об элементе массива:
mdadm --examine /dev/sda1

Проверка целостности.
зарускаем проверку
echo check > /sys/block/md1/md/sync_action

смотрим результат

~# cat /proc/mdstat
Personalities : [raid10] [raid1]
md0 : active raid1 sdb1[1] sda1[0] sdc1[2] sdd1[3]
128384 blocks [4/4] [UUUU]

md1 : active raid10 sdd2[3] sdc2[2] sda2[0] sdb2[1]
134222848 blocks 256K chunks 2 near-copies [4/4] [UUUU]
[>....................] check = 0.5% (787072/134222848) finish=19.7min speed=112438K/sec

Убить массив
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda..
👍31
Факт о Linux 💡

Вы можете запустить целое отдельное ядро Linux внутри одного процесса на своей машине. Без root-прав и без какого-либо ПО для виртуализации.

Это User-Mode Linux (UML). Это специальный порт ядра, который работает как обычное пользовательское приложение.

Вместо обращения к железу оно взаимодействует с вашим хостовым ОС. Файл превращается в жёсткий диск, а ваш терминал в его консоль. Вы можете загрузить систему, залогиниться и запускать программы, почти как в VM, но всего одной простой командой.

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

Источник
3
Горячие клавиши терминала Linux

Общие:
Ctrl+Alt+T - в дистрибутивах, основанных на Ubuntu это сочетание клавиш используется для открытия терминала.
Tab - эта клавиша используется для автодополнения в терминале. Вам достаточно набрать начало какой-нибудь команды, затем нажать её и команда предложит доступные варианты или завершит её если она одна.
Ctrl+L - очистить весь вывод терминала.
Ctrl+S - приостановить вывод терминала.
Ctrl+Q - возобновить вывод если он был приостановлен.
Ctrl+C - отправить команде сигнал SigInt для её завершения.
Ctrl+Z - свернуть текущую команду в фоновый режим.

История команд:
Стрелки вверх и вниз - используются для перемещения вперед и назад по истории команд.
Ctrl+r - можно использовать для поиска по истории команд.
Ctrl+p - предыдущая команда в истории команд.
Ctrl+n - следующая команда в истории команд.
Ctrl+g - если вы находитесь в режиме поиска, завершает поиск.
Ctrl+o - выполнить найденную поиском команду.
Alt+. - использовать последнее слово предыдущей команды.

Перемещение курсора:
Ctrl+a - перейти в начало строки.
Ctrl+e - перейти в конец строки.
Alt+b - перейти влево на одно слово.
Alt+f - перейти в право на одно слово.
Ctrl+b - перейти влево на один символ.
Ctrl+f - перейти вправо на один символ.
Ctrl+xx - перейти в конец или в начало строки.

Редактирование:
Ctrl+u - вырезать строку до позиции курсора.
Alt+Del - удалить слово перед курсором.
Alt+d - удалить слово после курсора.
Ctrl+d - удалить символ под курсором.
Ctrl+h - удалить символ под курсором.
Ctrl+w - вырезать слово под курсором.
Ctrl+k - вырезать строку от позиции курсора до конца строки
Alt+t - поменять текущее слово с предыдущим.
Ctrl+t - поменять местами два символа перед курсором.
Esc+t - поменять местами два слова перед курсором.
Ctrl+y - вставить то, что было вырезано.
Alt+u - сделать верхний регистр символов от позиции курсора до конца текущего слова.
Alt+l - сделать нижний регистр символов от позиции курсора до конца слова.
Alt+c - перевести символ под курсором в верхний регистр и перейти к концу слова.
Alt+r - вернуть строку в исходное состояние.
Ctrl+_ - отменить последнее действие со строкой.
4👍3❤‍🔥1
📌 Команды «Выполнить» в Windows
7
🎥 Вебинар по Linux: Введение в Docker: контейнеры, изоляция и первые шаги.

На вебинаре вы узнаете:
- Чем контейнеризация отличается от виртуализации и почему Docker стал стандартом.
- Как устроены контейнер, образ и Docker Engine.
- Как запустить и управлять контейнерами с помощью базовых команд docker run, ps, exec, stop).
- Как использовать Docker Hub и скачивать готовые образы.

В результате вебинара вы:
- Разберётесь в ключевых понятиях Docker.
- Научитесь запускать и управлять контейнерами.
- Сможете использовать готовые образы для своих тестовых окружений.
- Поймёте, куда двигаться дальше в изучении контейнерных технологий.

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Professional"

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
3👍1👎1🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по Linux 💡

Чтобы получить список файлов, которые содержат заданную строку, используйте:

grep -rl string .


-r — рекурсивный обход

-l — вывести имена файлов с совпадениями
👍31
Базовые команды Linux, которые должен знать каждый!

📌 Работа с файлами и директориями:

ls — просмотр содержимого папки
cp — копирование файлов/папок
mv — перемещение или переименование
cd — переход между папками
mkdir — создание директории
rm — удаление файлов/папок


📌 Просмотр и редактирование файлов:

cat — вывод содержимого файла
less — постраничный просмотр
head — первые строки файла
tail — последние строки
more — аналог less
nano — простой текстовый редактор
vim — мощный редактор в терминале


📌 Свойства файлов:

file — тип файла
touch — создать пустой файл или обновить дату
chmod — изменение прав доступа
chgrp — смена группы
wc — подсчёт строк, слов, символов
du — объём занимаемого дискового пространства


📌 Манипуляции с текстом:

grep — поиск по шаблону
cut/paste — извлечение/вставка колонок
tr — замена символов
sort — сортировка
tee — вывод в файл и на экран
expand — замена табуляции пробелами


📌 Управление пользователями и группами:

useradd — добавление пользователя
usermod — изменение пользователя
userdel — удаление пользователя
groupadd — добавление группы
groupdel — удаление группы
groupmod — изменение группы
chgrp — смена группы файла


📌 Мониторинг и управление системой:

df — свободное место на дисках
uname — информация о системе
free — использование оперативной памяти
shutdown — выключение/перезагрузка
lsof — открытые файлы
rsync — синхронизация данных
ps — активные процессы


📌 Сетевые команды:

dig/nslookup — DNS-запросы
ping — проверка доступности
curl — запрос к URL
scp — копирование по SSH
ifconfig — настройки сети
traceroute — путь до хоста
7👍4😁2
Совет дня по Linux 💡

Используйте column для красивого форматирования вывода

$ column -t -s','


Отформатирует CSV-данные в аккуратные выровненные столбцы
2👍2
📌 Шпаргалка по tmux
2👍2
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).
2👍2
Совет по Linux 💡

Найдите все нерабочие символьные ссылки в вашей системе с помощью:


find . -xtype l
3👍2🔥2
Команды для получения сведений о системе, активности пользователей

date – вывести текущую дату и время

cal – вывести календарь на текущий месяц

uptime – показать время с момента последней загрузки ОС.

w – сведения о пользователях, зарегистрировавшихся в системе

users - список имен пользователей, вошедших в систему.

last - список пользователей, вошедших в систему по данным из специального файла /var/log/wtmp. Отображается имя, терминал, время входа IP-адрес и т.п.

last –ad - сведения о пользователях, вошедших в систему, с отображением в последней колонке имени компьютера с которого выполнен вход.

last –F - отобразить время входа пользователей в систему, длительность сессий и время выхода.

last –x - отобразить сведения о выключениях, перезагрузках и изменениях уровня запуска системы.

last root - отобразить сведения о сеансах пользователя root.

last -n 10 user1 - отобразить сведения о десяти последних сеансах пользователя user1.

lastlog - отобразить список всех пользователей и время их последнего входа в систему.

whoami – имя, под которым вы в данный момент работаете в системе.

finger user – показать информацию о user

uname -a – отобразить все сведения о системе.

uname -vr – отобразить номер выпуска операционной системы и версию ядра.

df – отобразить информацию об использовании дисков.

du – отобразить информацию об использовании текущего каталога

free – информация об использовании реальной и виртуальной памяти.

whatis app - отобразить краткую информацию об app из базы данных документации.

whereis app – где находится исполняемый модуль app

which app – какой исполняемый модуль приложения app будет запущен по умолчанию.

man command – отобразить справочную информацию для команды command
👍42
Совет по Linux 💡

Ваше ядро ведёт «дневник» всего, что видит и делает.

Этот лог — dmesg. В нём фиксируются процессы загрузки, инициализации драйверов и обнаружения нового оборудования. Это инструмент №1, когда нужно разобраться, «почему железо не работает?»

Но большинство обращается к нему только после того, как что-то сломалось.
Настоящая сила - читать dmesg вживую, пока он записывается.

Вот фишка: открой терминал и выполни
dmesg -WH


▪️ -H (или --human) преобразует непонятные секунды с момента загрузки в привычные, читаемые человеком временные метки.

▪️ -W (или --follow-new) — это магия. Это как tail -f для вашего ядра, печатает новые сообщения по мере их появления.

Теперь подключи USB-устройство.

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

Это лучший способ увидеть, что именно творится под капотом твоей системы
👍82
Основы сетевых пространств имён в Linux

Прежде чем переходить к Docker и Kubernetes, стоит разобраться в базовых технологиях:

- Создание сетевого пространства имён в Linux: https://labs.iximiuz.com/challenges/linux-network-namespace

- Соединение двух сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-two-network-namespaces

- Соединение нескольких сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-multiple-network-namespaces
2