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

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

Введение

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

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

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

Задачи

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

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

Требования

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

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

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