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

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

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

Если утилита вывела одинаковые контрольные суммы и количества байтов обоих файлов, то несложно сделать вывод, что файлы идентичны.
Управление разделами GUID с помощью gdisk

Утилита gdisk является эквивалентом fdisk при работе с дисками с разделением GPT.

Запустить команду:
gdisk /dev/sda

(/dev/sda - устройство, соответствующее физическому диску)

Далее у вас откроется интерактивное меню, где и будет происходить управление.

- Чтобы посмотреть таблицу разделов, можно воспользоваться командой - p.

- Если вам нужно удалить определенный раздел, то это можно сделать с помощью команды - d.

- Для создания раздела воспользуйтесь командой - n

- Для восстановления повреждений главного заголовка GPT или таблицы разделов, можно использовать команды b и c, соответственно

- Для записи изменений - команда w.

Установить gdisk на Ubuntu:
sudo apt install gdisk
Именованные каналы в Linux

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

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

Например, можно создать канал и настроить gzip на сжатие того, что туда попадает:
mkfifo pipe
gzip -9 -c < pipe > out &
Что такое файлы именованных каналов?

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

Для создания файлов именованных каналов можно использовать утилиту mkfifo:

mkfifo /tmp/my.fifo
Создание файла именованного канала

Для создания файла именованного канала достаточно использовать утилиту mknod с параметром p.

mknod -m 777 /home/name/fifo p

Чтобы проверить создание файла именнованного канала:
ls -al | grep fifo

Для прекращения работы с файлом именованного канала достаточно использовать команду rm:
rm /home/name/fifo
Передаем данные через именованный канал

Для передачи данных через именованный канал, в первую очередь, создаем этот канал с помощью команды mkfifo:
mkfifo /tmp/my.fifo

Для проверки, что канал создан, воспользуйтесь:
ls -al /tmp

Для обмена данными между приложениями следует открыть дополнительное окно эмулятора терминала и выполнить в нем команду:
tail -f /tmp/my.fifo

Далее с помощью первого окна терминала выполнить:
echo "Linux" >> /tmp/my.fifo

Во втором окне, вы должны увидеть:
Linux

Прервать работу Ctrl+C. А после окончания использования файла программного канала следует удалить его:
unlink /tmp/my.fifo
Команда mknod

Команда mknod предназначена для создания файлов устройств и именованных каналов.

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

Например с помощью этой команды можно создать /dev файл:
mknod -m 666 /dev/dev_name c 1 3

где флаг -m используется для указания права доступа к создаваемому файлу в шестнадцатеричном формате, c - означает символьный файл, а два числа — это старший и младший номера, на которые указывают файлы.
Команда fsck

fsck используется для проверки и исправления ошибок файловых систем Linux.

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

Примеры:

Следующая команда позволяет восстановить повреждённые участки файловых систем ext2/ext3/ext4 и FAT:
fsck -a

Интерактивное восстановление повреждённых блоков
Полезно в том случае, если файлы на загрузочном разделе были изменены, а журнал не обновился соответствующим образом. В этом случае размонтируйте загрузочный раздел (umount) и выполните:
fsck -r <диск>