Проверка использования смонтированной файловой системы

ShellBeginner
Практиковаться сейчас

Введение

В этом задании вам предстоит написать скрипт командной оболочки (shell script) для проверки, смонтирована ли определенная файловая система. Ваш скрипт будет принимать имя файловой системы (например, /dev/vda1) в качестве аргумента. Используя команду df, он определит, смонтирована ли файловая система в данный момент. Если смонтирована, скрипт сообщит о проценте ее использования и объеме доступного свободного места. Если она не смонтирована, будет выведено соответствующее сообщение об ошибке.

Проверка использования смонтированной файловой системы

В этом задании ваша цель — создать скрипт, который сообщает о состоянии указанной файловой системы. Скрипт будет принимать один аргумент командной строки, который является именем проверяемой файловой системы.

Задачи

Ваш скрипт должен выполнять следующие действия:

  1. Принимать один аргумент командной строки, представляющий файловую систему (например, /dev/vdb).
  2. Проверять, смонтирована ли предоставленная файловая система в системе в данный момент.
  3. Если файловая система смонтирована, выводить сообщение, показывающее процент ее использования и доступное свободное место в килобайтах (КБ).
  4. Если файловая система не смонтирована или предоставлено неверное количество аргументов, выводить четкое сообщение об ошибке.

Требования

Вы должны соблюдать следующие требования:

  • Скрипт должен называться 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 для поиска и отображения информации о конкретной файловой системе. Это задание укрепило ваши навыки в написании скриптов командной оболочки, обработке текста и получении системной информации.

✨ Проверить решение и практиковаться