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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Утилита 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 обычно уже предустановлен
Команда sha256sum Linux

Команда sha256sum, очень похожа на sha1sum, она также позволяет вычислять значения контрольных сумм файлов и проверять их, но использует другой алгоритм - SHA-256.

Его преимущество в том, что он считается одним из самых безопасных, но в тоже время медленным.

Ключи:
-b - читать в бинарном режиме
- прочитать суммы SHA256 из файла и проверить их
-t - читать в текстовом режиме (по умолчанию)

Вывести контрольные суммы:
sha256sum <filename>
Команда md5sum

Команда md5sum позволяет задействовать одноименную утилиту, предназначенную для подсчета и проверки контрольных сумм файлов в соответствии со 128-битным алгоритмом MD5.

Данная команда в текущее время практически не используется из-за того, что алгоритм MD5 считается небезопасным.

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

Для подсчета контрольных сумм:
md5sum <filename>

Для проверки корректности передачи по сети или копирования файлов следует передать имя текстового файла с контрольными суммами и использовать параметр -c.
Восстановление RAID

Иногда диски в RAID могут выходить из строя. Есть два стандартных способа, которые могут быть вам полезны, если что-то пошло не так.

1) Замена диска
Для восстановления, сначала удалим сбойный диск:
mdadm /dev/md0 --remove /dev/sdc

Теперь добавим новый:
mdadm /dev/md0 --add /dev/sde

Проверяем состояние массива с помощью:
mdadm -D /dev/md0

И видим, что один из статусов - recovering. Это значит, что массив восстанавливается.

2) Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm --assemble --scan
Команда cksum

cksum предназначена для подсчета контрольных сумм файлов. Утилита использует алгоритм подсчета контрольных сумм Ethernet-фреймов, поэтому она едва ли может использоваться для надежной проверки целостности файлов после передачи.

Примеры использования:
Для подсчета контрольной суммы файла:
cksum <filename>

Для того, чтобы установить факт идентичности файлов:
cksum <filename1> <filename2>

Если утилита вывела одинаковые контрольные суммы и количества байтов обоих файлов, то несложно сделать вывод, что файлы идентичны.