Введение
В этом задании вы напишете shell-скрипт для проверки того, смонтирована ли конкретная файловая система. Ваш скрипт будет принимать имя файловой системы (например, /dev/vda1) в качестве аргумента. Используя команду df, он определит, смонтирована ли файловая система в данный момент. Если да, скрипт сообщит процент её использования и объем доступного свободного места. Если нет, будет выведено соответствующее сообщение об ошибке.
Проверка использования смонтированной файловой системы
Ваша задача — создать скрипт, который сообщает статус заданной файловой системы. Скрипт должен принимать один аргумент командной строки — имя файловой системы для проверки.
Задачи
Ваш скрипт должен выполнять следующие действия:
- Принимать один аргумент командной строки, представляющий файловую систему (например, источник, указанный в
df --output=source). - Проверять, смонтирована ли указанная файловая система в системе в данный момент.
- Если файловая система смонтирована, вывести сообщение с указанием процента использования и объема доступного свободного места в килобайтах (КБ).
- Если файловая система не смонтирована или передано неверное количество аргументов, вывести понятное сообщение об ошибке.
Требования
Вы должны соблюдать следующие требования:
- Скрипт должен называться
mount.shи находиться в директории~/project. - Вы должны использовать команду
dfдля сбора информации о файловой системе. - Ваш скрипт должен использовать массивы shell и цикл
forдля обработки данных файловой системы. - Скрипт должен корректно обрабатывать случаи, когда передано неверное количество аргументов.
Пример
Ниже приведен пример того, как должен работать ваш скрипт при запуске с корректной, смонтированной файловой системой.
labex:project/ $ bash mount.sh <mounted-filesystem>
Filesystem <mounted-filesystem> is 19% used with 85748032 KB free.
А вот пример для файловой системы, которая не смонтирована:
labex:project/ $ bash mount.sh /nonexistent
Error: Filesystem /nonexistent is not mounted.
Примечание: Процент использования и значения свободного места в примере приведены только для иллюстрации. Ваш вывод будет отражать реальное состояние файловой системы, которую вы выберете в своей среде.
Подсказки
- Вы можете использовать
df --output=source, чтобы получить список всех источников смонтированных файловых систем. - Чтобы заполнить массив выводом команды, можно использовать синтаксис
my_array=($(command)). - Не забудьте проверить количество аргументов, переданных скрипту, с помощью
$#.
Резюме
В этом задании вы успешно создали shell-скрипт для мониторинга использования файловой системы. Вы научились обрабатывать аргументы командной строки, использовать команду df со специфическими параметрами вывода и заполнять массивы результатами выполнения команд. Вы также попрактиковались в итерации по массивам с помощью цикла for для поиска и отображения информации о конкретной файловой системе. Это задание укрепило ваши навыки написания скриптов, обработки текста и получения системной информации.



