diff --git a/bash_script.sh b/bash_script.sh new file mode 100644 index 0000000..71a5e25 --- /dev/null +++ b/bash_script.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -euo pipefail + +echo "Начинаем работу" + +echo "Содержимое файла fstab:" +cat /etc/fstab + +echo "" + +echo "Информация о блочных устройствах:" +lsblk + +echo "" + +echo "Проверяем наличие нового диска и создаем FS" + +if -b /dev/sdb ; then + echo "Найден диск /dev/sdb" + echo "Создаем раздел на /dev/sdb" + echo -e "g\nn\n\n\n\n\nw" | sudo fdisk /dev/sdb + + echo "Создаем файловую систему ext4" + sudo mkfs.ext4 /dev/sdb1 + + echo "Создаем точку монтирования /mnt/mydisk" + sudo mkdir -p /mnt/mydisk + + echo "Монтируем диск" + sudo mount /dev/sdb1 /mnt/mydisk + + echo "Работа с файлами в /mnt/mydisk" + + cd /mnt/mydisk + + echo "Создаем тестовые файлы..." + sudo touch file1.txt file2.txt file3.txt + sudo mkdir my_folder + + echo "Это тестовый файл 1" | sudo tee file1.txt + echo "Это тестовый файл 2" | sudo tee file2.txt + echo "Это тестовый файл 3" | sudo tee file3.txt + + echo "Содержимое каталога /mnt/mydisk" + ls -la + + echo "Отмонтируем диск" + cd ~ + sudo umount /mnt/mydisk + + echo "Проверяем что в /mnt/mydisk пусто после отмонтирования" + ls -la /mnt/mydisk/ || echo "Каталог пуст" + + echo "Добавляем запись в fstab" + + UUID=$(sudo blkid /dev/sdb1 -s UUID -o value) + echo "UUID диска: $UUID" + + if ! grep -q "$UUID" /etc/fstab; then + echo "Добавляем запись в fstab" + echo "UUID=$UUID /mnt/mydisk ext4 defaults 0 2" | sudo tee -a /etc/fstab + else + echo "Запись для этого диска уже есть в fstab" + fi + + echo "Проверяем fstab" + sudo mount -a + echo "Проверка прошла успешно!" + + echo "Монтируем диск обратно для проверки" + sudo mount /dev/sdb1 /mnt/mydisk + + echo "Проверяем что файлы сохранились" + ls -la /mnt/mydisk/ + + echo "Отмонтируем диск" + sudo umount /mnt/mydisk +else + echo "Диск /dev/sdb не найден" +fi + +echo "" +echo "Конец скрипта" \ No newline at end of file diff --git a/task1/task1and2.md b/task1/task1and2.md new file mode 100644 index 0000000..2b33aa4 --- /dev/null +++ b/task1/task1and2.md @@ -0,0 +1,77 @@ +Задание 1: + +1) Переместиться между директориями +cd +2) Вывести список файлов в директории +ls +3) Вывести список Всех файлов в директории +ls -a +4) Создать папку с подпапками +mkdir folder +cd folder +mkdir folder1 +mkdir folder2 +5) Внутри папки создать файлик и записать в него что-нибудь +vim file +cat file +6) Переместить файл из одно директории в другую +mv file folder1 +ls +cd folder1 +ls +7) скопировать файл из одной директории в другую +cp ~/folder/folder1/file ~/folder/folder2/ +8) переименовать файл +mv file file1 +9) сравнить содержимое файла +cd ~/folder/folder2 +cat file1 +cd ~/folder/folder1 +cat file +vimdiff ~/folder/folder1/file ~/folder/folder2/files +10) отсортировать содержимоей файла по возрастанию и убыванию +vim numbers +sort numbers +sort -r numbers +11) удалить все папки и файлы +cd ~ +rm -rf folder + +Задание 2: + +1) Как работают команды >,>>? +'>' - перезаписывает файл +echo "1232 > file.txt + +'>>' - добавляет в конец файла +echo "456546" >> file.txt +2) Что такое перенаправление ввода? stderr,stdout; +stdout - поток для обычных сообщений +stderr - поток для сообщений об ошибках +3) Выести содержание файла не используя текстовые редакторы; +cat file.txt +4) Создать файл с содержимым не используя текстовые редактор; +echo "tralala" > newfile.txt +cat newfile.txt +5) пернеаправить stdout в stderr и обратно на примере команды kinit, ping, tracert +ping example.com 1>&2 (stdout в stderr) +ping example.com 2>&1 (наоборот) + +6) чем отличаются stdout и stderr +stdout: +Для обычного, ожидаемого вывода программы +Результаты работы, данные, информация +Пример: список файлов, содержимое файла, результаты вычислений +stderr: +Для сообщений об ошибках и диагностической информации +Предупреждения, ошибки, отладочная информация +Пример: "файл не найден", "недостаточно прав", "неверный синтаксис" +7) что такое stdin? +stdin - это стандартный поток ввода в unix подобных системах. +8) как отправить весь вывод команды в пустоту? +Перенаправление и stdout и stderr в /dev/null +ls file1 file2 > /dev/null 2>&1 +Только stdout в пустоту: +echo "этот вывод не увидим" > /dev/null +Только stderr в пустоту: +ls file2 2> /dev/null \ No newline at end of file diff --git a/task2/task1and2.md b/task2/task1and2.md new file mode 100644 index 0000000..175e50e --- /dev/null +++ b/task2/task1and2.md @@ -0,0 +1,45 @@ +Задание 1: + +1) Добавьте пользователей user1 и user2: + 1.1) user1 - оболочка bash + sudo useradd -s /bin/bash user1 + 1.2) user2 - оболочка sh + sudo useradd -s /bin/sh user2 + 1.3) установите им пароли + sudo password user1 + sudo password user2 + +2) Назначьте пользователю 1 группу администраторов, польователя 2 добавте в группу пользователя 1 +sudo usermod -aG sudo user1 +sudo usermod -aG user1 user2 +3) Что такое права доступа? Выведите права доступа на файлы в директории пользователя +Права доступа - это набор правил, определяющих, какие действия пользователи могут выполнять с файлами и каталогами. +ls -la ~user1/ +ls -la ~user2/ +4) Как изменить права на файлы? Создайте файл который будет на который у всез пользователей будут все возможные права +sudo mkdir /folder +sudo touch /folder/file +sudo chmod 777 /folder/file +ls -l /folder/file +5) Как называется учётная запись встренного администратора в linux? +root +6) Как выполнить команду от имени администратора? +sudo su +7) Есть ли ограничения у суперпользователя? +некоторые защищенные файлы, файловые системы, которые только для прочтения +8) Удалите пользователя 2 с помощью пользователя 1. +sudo userdel user2 +9) Как можно изменить владельца папки? измените владельца папки из пункта 4 +sudo chown user1 folder +sudo chown user1:user1 folder + +Задание 2: +1. Запретите пользователю user1 из предыдщуего задания выполнять вход в систему +sudo usermod -L user1 +2. Как вы это сделали? +Заблокировал пароль пользователя +3. Какие ещё способы это сделать вы знаете? +Полная блокировка учетной записи +4. Можно ли создать пользователей с одинаковыми username? + +Нет, потому что username должен быть уникальным в системе, иначе при создании выдаст ошибку diff --git a/task3/all_tasks_from_3.md b/task3/all_tasks_from_3.md new file mode 100644 index 0000000..c291369 --- /dev/null +++ b/task3/all_tasks_from_3.md @@ -0,0 +1,123 @@ +Задание 1: + +1) Какие файловые системы вы знаете? +FAT32, NTFS - для Windows +ext2, ext3, ext4, XFS, Btrfs - для Linux +2) Как можно классифиировать файловые системы? в чём отличия?? +Файловые системы различаются по своему назначению: дисковые предназначены для физических носителей, сетевые обеспечивают доступ к файлам через сеть, а виртуальные работают с системной информацией в оперативной памяти. По структуре данных они делятся на журналируемые, которые сохраняют целостность данных через ведение журнала изменений, и нежурналируемые, где такая защита отсутствует. По архитектуре хранения различают блочные системы, работающие с фиксированными блоками данных, и объектные, где данные хранятся как независимые объекты с метаданными. +3) Какие файловые системы используются в linux? +ext4, XFS, Btrfs, ZFS +4) Как можно создать файловую систему на диске? +Создается раздел диска и форматируется +5) Как можно подключить диск в систему, что такое монтирование? +Монтирование диска - подключение файловой системы, находящейся на устройстве, к определенной директории в дереве каталогов. +6) файловая система procfs, cifs, tpmfs,sysfs. В чём особенности каждой из них? +'procfs' - виртуальная ФС в Linux, предоставляет доступ к информации о процессах и системе в реальном времени через файлы в /proc +'cifs' - сетевая ФС для доступа к общим ресурсам Windows/SMB, поддерживает аутентификацию, шифрование и работу с правами доступа + +'tmpfs' - ФС в оперативной памяти для временных файлов, обеспечивает высокую скорость доседа, но данные теряются при перезагрузке + +'sysfs' - виртуальная ФС в Linux, отображает информацию о устройствах, драйверах и ядре системы через файлы в /sys +7) Как можно получить информацию о системе используя лишь команду cat? +вывести ифонмацию о процессоре и состоянии памяти системы + +Команда cat может читать виртуальные файлы в каталогах /proc и /sys +Вывод информации о процессоре: +cat /proc/cpuinfo +Вывод состояния памяти: +cat /proc/meminfo + +Задание 2: +1) Какая структура каталогов в linux? выведите список файлов в корне системы +Файловая структура древовидная +Чтобы просмотреть нужно ввести ls / +2) Где хранятся папки пользователей в системе? +Папки пользователей хранятся в каталоге /home/. Каждый пользователь (кроме root) имеет свою подпапку здесь +3) Где домашняя папка суперпользователя? +/root/ +4) Где хранятся основые конфигурационные файлы в системе? +/etc/ +5) ЧТо за папки /bin,/sbin,usr/sbin,/usr/sbin +/bin - основные бинарные файлы для всех пользователей, необходимые для работы системы в однопользовательском режиме +/sbin - системные бинарные файлы для администратора, необходимые для загрузки и восстановления системы +/usr/bin - дополнительные пользовательские программы, не критичные для базовой работы системы +/usr/sbin - дополнительные системные утилиты для администратора, не требуются при загрузке системы +Основное отличие: /bin и /sbin содержат критически важные программы для загрузки системы, а /usr/bin и /usr/sbin - дополнительные программы + +Задание 3: + +1. Выведите содержимое fstab. Что хранится в fstab? +cat /etc/fstab +В fstab хранится информацию о всех смонтированных файловых системах. Он сообщает системе, что, куда, как и когда монтировать при загрузке. +2. Добавьте в виртуальную машину ещё один диск +3. Узнайте как ситема видит ваш диск - выведите информацию о блочных устройствах +lsblk +4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4 +sudo fdisk /dev/sdb +sudo mkfs.ext4 /dev/sdb1 +lsblk +5. Примонитруте диск в каталог /mnt +sudo mount /dev/sdb1 /mnt +6. Зайдите в каталог и создайте там файлы +cd /mnt +sudo touch 123.txt +sudo touch 1234.txt +7. Отмонтируйте диск и проверье остались ли файлы +sudo umount /mnt +ls /mnt +8. Сделайте так чтобы диск автоматически подключался при загрузке систем ( добавьте информацию о нём с fstab) +sudo blkid /dev/sdb1 +sudo nano /etc/fstab +9. Проверьте корретность записанных в fstab данных перед перезагрузкой +sudo mount -a +10. Перезагрущите систему и убедитесь что диск был подключён к системе +sudo systemctl reboot +lsblk + +Задание 4: +1. Raid массивы, что такое икакие бывают +RAID-массивы - это объединение нескольких физических дисков в один логический для повышения надежности и/или производительности. +'RAID 0' - чередование данных на нескольких дисках. Плюсы: высокая скорость. Минусы: нет надежности - при отказе одного диска теряются все данные. +'RAID 1' - зеркалирование данных на двух дисках. Плюсы: высокая надежность. Минусы: эффективная емкость 50%. +'RAID 5' - чередование с контролем четности. Минимально 3 диска. Плюсы: хорошее соотношение надежности и емкости. Минусы: падение производительности при отказе диска. +'RAID 10' - зеркало из страйпов. Комбинация RAID 0 и RAID 1. Плюсы: высокая скорость и надежность. Минусы: дорого - требуется минимум 4 диска. +2. Добавьте в виртуальную машину 2 диска отформатируйте их в ext4 +sudo fdisk /dev/sdc +sudo mkfs.ext4 /dev/sdc1 +sudo fdisk /dev/sdd +sudo mkfs.ext4 /dev/sdd1 +lsblk +3. Создайте из них raid 0 массив +sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1 + +cat /proc/mdstat +sudo mdadm --detail /dev/md0 + +sudo mkfs.ect4 /dev/md0 + +sudo mkdir /mnt/raid0 +sudo mount /dev/md0 /mnt/raid0 +sudo touch /mnt/raid0/test_file_raid.txt +ls -la /mnt/raid0/ +4. Проверье всё ли работает +cat /proc/mdstat +sudo mdadm --detail /dev/md0 +sudo dd if=/dev/zero of=/mnt/raid0/test.bin bs=1M count=100 +5. Удалите raid0 и создайте raid1 +sudo umoun /mnt/raid0 +sudo mdadm --stop /dev/md0 + +sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1 +cat /proc/mdstat +sudo mdadm --detail /dev/md1 + +sudo mkfs.ext4 /dev/md1 +sudo mkdir /mnt/raid1 +sudo mount /dev/md1 /mnt/raid1 +sudo touch /mnt/raid1/test_file_raid1.txt +6. В чём между ними разница? +Ключевое отличие: RAID 0 жертвует надежностью ради скорости, RAID 1 жертвует емкостью ради надежности. +7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО +zfs и btrfs +8. Можно ли создать raid массив во время установки системы? +Да, во время установки системы на этапе разметки дисков выбрать ручную разметку, создать raid-устройство, выбрать тип, добавить физ. диски в массив и создать файловую систему на raid-устройстве. \ No newline at end of file diff --git a/task4/task1.md b/task4/task1.md new file mode 100644 index 0000000..1d67263 --- /dev/null +++ b/task4/task1.md @@ -0,0 +1,102 @@ +1. Что такое шебанг? +Шебанг (shebang) - это комбинация символов #! в самой первой строке скрипта, которая указывает системе, какой интерпретатор должен выполнить этот файл. + +Примеры: +#!/bin/bash - выполнить скрипт в bash +#!/usr/bin/python3 - выполнить как Python-скрипт +#!/bin/sh - выполнить в совместимой shell + +2. Обязательно ли исполняемый файл дожен иметь соотвествующее расширение? +Нет, исполняемый файл в линуксе не требует специального расширения. В Linux атрибут исполняемости определяется правами доступа. +3. Напишите скрипт который выполнит автоматически действия из блока работы с файлами. ( не забудьте включить set -euo pipefail для того что бы ваш скрипт было удобнее отлаживать. Опишите что включают эти флаги) + + +#!/bin/bash +set -euo pipefail + +echo "Начинаем работу" + +echo "Содержимое файла fstab:" +cat /etc/fstab + +echo "" + +echo "Информация о блочных устройствах:" +lsblk + +echo "" + +echo "Проверяем наличие нового диска и создаем FS" + +if -b /dev/sdb ; then + echo "Найден диск /dev/sdb" + echo "Создаем раздел на /dev/sdb" + echo -e "g\nn\n\n\n\n\nw" | sudo fdisk /dev/sdb + + echo "Создаем файловую систему ext4" + sudo mkfs.ext4 /dev/sdb1 + + echo "Создаем точку монтирования /mnt/mydisk" + sudo mkdir -p /mnt/mydisk + + echo "Монтируем диск" + sudo mount /dev/sdb1 /mnt/mydisk + + echo "Работа с файлами в /mnt/mydisk" + + cd /mnt/mydisk + + echo "Создаем тестовые файлы..." + sudo touch file1.txt file2.txt file3.txt + sudo mkdir my_folder + + echo "Это тестовый файл 1" | sudo tee file1.txt + echo "Это тестовый файл 2" | sudo tee file2.txt + echo "Это тестовый файл 3" | sudo tee file3.txt + + echo "Содержимое каталога /mnt/mydisk" + ls -la + + echo "Отмонтируем диск" + cd ~ + sudo umount /mnt/mydisk + + echo "Проверяем что в /mnt/mydisk пусто после отмонтирования" + ls -la /mnt/mydisk/ || echo "Каталог пуст" + + echo "Добавляем запись в fstab" + + UUID=$(sudo blkid /dev/sdb1 -s UUID -o value) + echo "UUID диска: $UUID" + + if ! grep -q "$UUID" /etc/fstab; then + echo "Добавляем запись в fstab" + echo "UUID=$UUID /mnt/mydisk ext4 defaults 0 2" | sudo tee -a /etc/fstab + else + echo "Запись для этого диска уже есть в fstab" + fi + + echo "Проверяем fstab" + sudo mount -a + echo "Проверка прошла успешно!" + + echo "Монтируем диск обратно для проверки" + sudo mount /dev/sdb1 /mnt/mydisk + + echo "Проверяем что файлы сохранились" + ls -la /mnt/mydisk/ + + echo "Отмонтируем диск" + sudo umount /mnt/mydisk +else + echo "Диск /dev/sdb не найден" +fi + +echo "" +echo "Конец скрипта" + + +Описане флагов: +-e (errexit) - скрипт немедленно завершается при любой ошибке +-u (nounset) - обрабатывает попытку использования неопределенных переменных как ошибку +-o pipefail - изменяет поведение пайпов: код возврата пайпа = коду возврата последней команды, которая завершилась с ошибкой \ No newline at end of file diff --git a/task5/bash_script.sh b/task5/bash_script.sh new file mode 100644 index 0000000..66d1656 --- /dev/null +++ b/task5/bash_script.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +cd "$HOME" || { echo "Ошибка: не удалось перейти в $HOME"; exit 1; } + +FOLDER_NAME="$HOME/system_info_folder" + +if [ -d "$FOLDER_NAME" ]; then + echo "Папка '$FOLDER_NAME' уже существует. Удаляем..." + rm -rf "$FOLDER_NAME" +fi + +mkdir -p "$FOLDER_NAME" +echo "Папка создана: $FOLDER_NAME" + +for i in {1..4}; do + FILE_PATH="$FOLDER_NAME/file$i.txt" + + if [ -f "$FILE_PATH" ]; then + echo "Файл '$FILE_PATH' существует. Перезаписываем..." + else + echo "Создаем файл '$FILE_PATH'" + touch "$FILE_PATH" + fi + + { + echo "=== Файл №$i ===" + echo "Дата: $(date)" + echo "Версия ядра: $(uname -r)" + echo "Имя компьютера: $(hostname)" + echo "Файлы в домашнем каталоге:" + ls -la "$HOME" + } > "$FILE_PATH" + + echo "Информация записана в $FILE_PATH" +done + +echo "Скрипт завершен." diff --git a/task5/image-1.png b/task5/image-1.png new file mode 100644 index 0000000..e79a762 Binary files /dev/null and b/task5/image-1.png differ diff --git a/task5/image-10.png b/task5/image-10.png new file mode 100644 index 0000000..596b583 Binary files /dev/null and b/task5/image-10.png differ diff --git a/task5/image-11.png b/task5/image-11.png new file mode 100644 index 0000000..39335e4 Binary files /dev/null and b/task5/image-11.png differ diff --git a/task5/image-12.png b/task5/image-12.png new file mode 100644 index 0000000..652b6f0 Binary files /dev/null and b/task5/image-12.png differ diff --git a/task5/image-2.png b/task5/image-2.png new file mode 100644 index 0000000..392111e Binary files /dev/null and b/task5/image-2.png differ diff --git a/task5/image-3.png b/task5/image-3.png new file mode 100644 index 0000000..cc3d640 Binary files /dev/null and b/task5/image-3.png differ diff --git a/task5/image-4.png b/task5/image-4.png new file mode 100644 index 0000000..cc36ade Binary files /dev/null and b/task5/image-4.png differ diff --git a/task5/image-5.png b/task5/image-5.png new file mode 100644 index 0000000..9e5de8f Binary files /dev/null and b/task5/image-5.png differ diff --git a/task5/image-6.png b/task5/image-6.png new file mode 100644 index 0000000..145362c Binary files /dev/null and b/task5/image-6.png differ diff --git a/task5/image-7.png b/task5/image-7.png new file mode 100644 index 0000000..dd2b043 Binary files /dev/null and b/task5/image-7.png differ diff --git a/task5/image-8.png b/task5/image-8.png new file mode 100644 index 0000000..918e65e Binary files /dev/null and b/task5/image-8.png differ diff --git a/task5/image-9.png b/task5/image-9.png new file mode 100644 index 0000000..29a035d Binary files /dev/null and b/task5/image-9.png differ diff --git a/task5/image.png b/task5/image.png new file mode 100644 index 0000000..1c48560 Binary files /dev/null and b/task5/image.png differ diff --git a/task5/task1.md b/task5/task1.md new file mode 100644 index 0000000..22ca0ac --- /dev/null +++ b/task5/task1.md @@ -0,0 +1,30 @@ +## 1. Что такое systemd юнит? +Systemd запускает и контролирует все системные службы. В ее основе лежит понятие units, которые связаны между собой и имеют определенное имя и тип с соответствующими конфигурационными файлами, т. е. это файлы конфигурации хранящие информацию о сервисе, сокете, устройстве и т. д. + +## 2. Проверье статус любого systemd юнита, какую информацию выводит эта кманда? +![alt text](image.png) +Состояние юнита (загружен, активен, работает) +Loaded: loaded - юнит загружен +Active: active (running) - активен и работает +Active: inactive (dead) - неактивен +Описание юнита - краткое описание службы +PID процесса - идентификатор основного процесса +Путь к исполняемому файлу +Время работы - сколько времени работает служба +Последние логи (обычно последние 10 строк) +Показывает сообщения журнала, связанные с юнитом +Ошибки, предупреждения, информационные сообщения +Дополнительная информация: +Процессы, принадлежащие юниту +Состояние контрольной группы (cgroup) +Зависимости и связанные юниты +## 3. ПОпробуйте оставновить сервис. +![alt text](image-1.png) +## 4. Перезапустите его. +![alt text](image-2.png) +## 5. УДалите из автозагрузки +![alt text](image-3.png) +## 6. Верните обратно +![alt text](image-4.png) +## 7. Что такое таймеры? +Таймеры (timers) в systemd - это аналог cron-заданий, но реализованный как systemd юниты. Они позволяют запускать службы или скрипты по расписанию. \ No newline at end of file diff --git a/task5/task2.md b/task5/task2.md new file mode 100644 index 0000000..437e3dc --- /dev/null +++ b/task5/task2.md @@ -0,0 +1,16 @@ +## 1. Создайте скрипт который создаёт папку заполняет её файлами ( имена 1-4 ) и записывает в них информацию о текущей дате, версии ядра, имени компьютера и списе всех файлов в домашнем каталоге пользователя от которого выполняется скрипт( не забудьте сдлеать проверку на существование файлов и папок) +bash_script.sh + +## 2. Создайте юнит который будет вызывать этот скрипт при запуске. Проверьте +![alt text](image-5.png) +![alt text](image-6.png) +## 3. Создайте таймер который будет вызывать выполнение одноимённого systemd юнита каждые 5 минут. +![alt text](image-7.png) +## 4. От какого пользователя вызыаются юниты поумолчанию? +Все зависит от типа юнита, который используем. Системные юниты работают по умолчанию от root, если в файле не указана директива User=..., а пользовательские юниты работают от твоего пользователя. +## 5. Создайте пользователя от имени которого будет выполняться ваш скрипт. +![alt text](image-8.png) +## 6. Дополните юнит информацией о пользователе от которого должен выплняться скрипт. +Дополнил выше. +## 7. Дополните ваш скрипт так, что бы он независимо от местоположения всега выполнялся в домашней папке того кто его вызывает. +![alt text](image-9.png) \ No newline at end of file diff --git a/task5/task3.md b/task5/task3.md new file mode 100644 index 0000000..2825330 --- /dev/null +++ b/task5/task3.md @@ -0,0 +1,10 @@ +## 1. Посмотретите журналы ssh +![alt text](image-10.png) +## 2. Выведите журналы в реальном времени +![alt text](image-12.png) +## 3. Выведите лог в реальном времени для службы sshd +![alt text](image-11.png) +## 4. Можно ли без комады journalctl прочитать логи systemd? +Просмотр логов systemd без использования команды journalctl затруднён, потому что systemd journald хранит логи в бинарном формате, а не в обычных текстовых файлах. +## 5. Сколько будет 2-2? +false