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



