Linux для чайника – Telegram
Linux для чайника
20K subscribers
89 photos
4 files
80 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Объединение строк файлов

paste
это команда, которая позволяет объединять строки файлов по горизонтали.

Она выводит строки, состоящие из последовательно соответствующих строк каждого файла, указанного в качестве аргумента, разделенных табуляцией.
paste file1 file2

Чтобы вывести соединенные строки через символ, который хотите вы, например через пробел, а не табуляции, можно воспользоваться параметром -d:
paste -d ' ' file1 file2
Операция изменения корневого каталога - chroot

Термин chroot может относиться или к концепции изменений корневого каталога, или к системному вызову chroot(2), или к программе chroot(8).

Изменение корневого каталога производится при помощи системного вызова chroot(2). Изменение корневого каталога затрагивает только текущий процесс и всех его потомков.

Если требуется запустить программу с изменённым корневым каталогом, но в данной программе не предусмотрено выполнение вызова chroot(2), используют программу chroot(8).

Эта программа принимает в качестве параметров новый корневой каталог и путь к программе. Она сначала сама выполняет вызов chroot(2) для изменения собственного корневого каталога на указанный, а затем запускает программу по заданному пути.
Команда Dracut

Используется для улучшения работы загрузочной системы Linux и создания загрузочного образа Linux путем копирования оборудования и документов из смонтированной системы и объединения их с Dracut Framework.

Чтобы перезаписать существующее изображение:
sudo dracut -force

Выбрать любое другое имя файла для фотографии:
dracut foobar.img

Чтобы быстро запустить правильную командную строку ядра:
sudo dracut --print-cmdline
Команда mkinitrd

Используется для создания файла изображения, который вы хотите загрузить в псевдодиск.

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

Параметры:
-f -- если указанное изображение спросить фамилию дубликат существующего файла, переписать существующий файл.
-v -- Отображает подробную информацию при выполнении.
--omit-scsi-modules -- Не загружать модуль SCSI.
--preload = <модуль имя> -- Указывает загружаемый модуль.
--with = <модуль имя> -- Указывает загружаемый модуль.
--version -- Естствн, показать информацию о версии.
Утилита sync

Она предназначена для обновления файловых систем и для синхронизации данных на диске с данными в памяти.

При этом выполняется системный вызов sync, который вызывает запись всех буферизованных изменений метаданных файлов и данных в базовые файловые системы.

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

sync [--help] [--version]

После выполнения команды sync необходимо обеспечить достаточную паузу для освобождения очередей драйверов и полного сохранения всех данных на диске.
Основная задача команды init

Команда init инициализирует процессы и управляет ими.

Его основная роль заключается в запуске процессов на основе записей, считанных из файла /etc/inittab.
(файл /etc/inittab обычно требует, чтобы команда init запускала команду getty для каждой строки, в которой пользователь может войти в систему)

Команда init управляет автономными процессами, требуемыми системой.

Процесс, который составляет большую часть действий по диспетчеризации процессов команды init, называется /usr/sbin/getty. Этот процесс инициирует отдельные линии терминала.

Другими процессами, обычно запускаемыми командой init, являются демоны и оболочка.
Как удалить RAID-массив?

Перед тем, как удалять RAID-массив mdraid желательно остановить все службы и приложения использующие RAID-массив, после чего отмонтировать все имеющиеся подключения к RAID-массиву, например:
umount /mount/point

Удаляем упоминание об RAID-массиве из /etc/fstab

Останавливаем RAID-массив:
mdadm -S /dev/<raid_name>

Далее вы должны увидеть: mdadm: stopped /dev/<raid_name>

Очищаем супер-блоки на дисках:
mdadm --zero-superblock --force <все диски, которые были в массиве>

Удаляем старые метаданные и подпись на дисках:
wipefs --all --force <все диски, которые были в массиве>
Команда diffstat

diffstat читает выходные данные команды diff и отображает гистограмму вставок, удалений и модификаций файлов.

Гистограмма — способ представления табличных данных в графическом виде — в виде столбчатой диаграммы.

Отображение изменений на гистограмме:
diff <file1> <file2>| diffstat

Отображать вставленные, удаленные и измененные изменения в виде таблицы:
diff <file1> <file2> | diffstat -t

Установить на Ubuntu:
sudo apt install diffstat
3 примера использования команды split

Команда split в Linux позволяет разбивать файлы на несколько файлов.

1. Разделите файлы на несколько файлов
split mylog.log

По умолчанию команда split создает новые файлы для каждых 1000 строк. Если префикс не указан, он будет использовать ‘x’. Следующие буквы перечисляют файлы, поэтому сначала идет xaa, затем xab и так далее.

2. Разделите файлы на несколько файлов с определенными номерами строк
C помощью опции -l можно указать кол-во строк
split mylog.log -l 100

3. Разделение файла на n файлов
C помощью опции -n можно указать кол-во файлов, на которые хотите разделить
split mylog.log -n 16
Команда mtools

Mtools — это общедоступный набор инструментов, позволяющий системам Unix манипулировать файлами MS-DOS: читать, записывать и перемещать файлы в файловой системе MS-DOS.

Mtools обычно используются для управления гибкими дисками, отформатированными в FAT. Каждая программа пытается эмулировать эквивалентную команду MS-DOS.

Mtools достаточно, чтобы предоставить доступ к файловым системам MS-DOS.

Например, такие команды, как mdir
⁃ работают с дискетой
⁃ без какого-либо предварительного монтирования или инициализации (при условии, что на вашей машине работает файл /etc/mtools.conf по умолчанию).
Преимущества операции sync

1. Расходует незначительный объем ресурсов CPU.

2. Компактная запись данных.

3. Запись по крайней мере 28 КБ системных данных, даже если с момента предыдущего вызова sync не было выполнено ни одной операции ввода-вывода.

4. Ускорение записи данных на диск за счет отключения алгоритма отложенной записи. Это свойство особенно важно для тех программ, в которых после каждой операции записи выполняется операция fsync().

5. Создание при вызове sync() или fsync() записей в протоколе JFS о том, что измененные данные сохранены на диске.
Команда telinit

Эта команда связана с командой init и управляет действиями команды init.

Telinit принимает односимвольный аргумент и сигнализирует команде init через подпрограмму kill о выполнении соответствующего действия.

Команда telinit устанавливает для системы определенный уровень запуска.

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

Чтобы добавить активный диск к RAID, который будет использоваться для работы, можно воспользоваться следующей командой:
mdadm /dev/md0 --add /dev/sde
где /dev/md0 - имя RAID, /dev/sde - имя добавляемого диска

Далее нужно расширить массив:
mdadm -G /dev/md0 --raid-devices=3

(диск добавится при условии того, что у вас уже создан массив)

Также к RAID можно добавить запасной диск (hot spare):
mdadm /dev/md0 --add /dev/sde

Но в этом случае расширять массив не нужно.
Установка патчей

Патч - правка или текстовые изменения в исходном коде проектов

Для вноса правок в проект существует утилита patch. Она специально предназначена для переноса правок (изменений) между разными версиями текстовых файлов.

Информация о правке обычно содержится в отдельном файле, «патч-файле» (patch file).

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

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

Чтобы сгенерировать простой патч, для команды diff:
diff oldfile newfile > patch
Разделение файлов с пользовательским префиксом имени

Чтобы разделить один файл на несколько с использованием пользовательского префикса:
split mylog.log mylog.log_

Вывод:
mylog.log_aa
mylog.log_ab
...

Где mylog.log_ префикс

Также можно указать длину этого префикса:
split mylog.log mylog.log_ -a 5

Вывод:
mylog.log_aaaaa
mylog.log_aaaab
...

Или же если вам не нравятся буквы, то можно записывать числами
split mylog.log mylog.log_ -a 5 -d

Вывод:
mylog.log_00000
mylog.log_00001
...
Проверяем состояние RAID-массива

Есть два способа проверить состояние RAID.

1) cat /proc/mdstat
Примерный вывод, который можно увидеть:
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
1000071488 blocks super 1.2 [2/2] [UU]

[UU] говорит о том, что массив в порядке, но если вы видите [U_], то скорее всего один из дисков вышел из строя


2) mdadm -D /dev/md0
Эта команда выводит статистику о RAID, но нас больше всего интересует строка State. Если ваш RAID показывает статус degraded, то это говорит о проблемах, которые нужно исправлять.
Список атрибутов файлов в файловой системе Linux

Для того чтобы получить атрибуты файлов в Linux, существует команда lsattr.

Примеры использования:
Вывести атрибуты файлов в текущем каталоге:
lsattr

Вывести атрибуты файлов по заданному пути:
lsattr <path>

Вывести атрибуты файлов рекурсивно (в текущем и во всех вложенных каталогах):
lsattr -R

Вывести атрибуты всех файлов в текущем каталоге, включая скрытые:
lsattr -a

Вывести атрибуты подкаталогов текущего каталога:
lsattr -d
Команда faillog

faillog - показывает записи из файла faillog (файл /var/log/faillog).

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

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

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

Для измерения пропускной способности сети существует консольная утилита iperf3.

Она поддерживает работу как по протоколу TCP, так и по UDP.

Для проведения тестирования надо запустить iperf3 как на сервере, так и на клиенте (клиент - генерирует трафик, сервер - принимает и отбрасывает).

Установить iperf3 на Ubuntu:
sudo apt install iperf3

Запуск на сервере:
iperf3 -s 
или
iperf3 -s -D -B ip.add.re.ss

Запуск на клиенте:
iperf3 -c <хост>
Находим новые SCSI-диски в Linux

Для поиска новых дисков можно использовать команду echo для сканирования каждого хост-устройства scsi.

Для начала выполняем приведенную ниже команду, чтобы найти все номера хост-шины в системе:
ls /sys/class/scsi_host

Результат может выглядеть примерно так:
host0 host1 host2

Далее сканируем каждый хост:
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan

Чтобы посмотреть, какие новые устройства появились:
ls /sys/block/
Настройка и аудит системы

Linux Audit Daemon
- это среда, позволяющая проводить аудит событий.

Используя мощную систему аудита возможно отслеживать многие типы событий для мониторинга и проверки системы, например:
доступ к файлам;
изменение прав на файлы;
- просмотр пользователей, изменивших конкретный файл;
- обнаружение несанкционированных изменений;
- мониторинг системных вызовов и функций;
- обнаружение аномалий, таких как сбои;
- мониторинг набора команд.

Для установки auditd на Debian/Ubuntu:
sudo apt-get install auditd audispd-plugins

На серверах CentOS демон auditd обычно уже предустановлен