소개
이번 챌린지에서는 특정 파일 시스템이 마운트되어 있는지 확인하는 셸 스크립트를 작성합니다. 스크립트는 파일 시스템 이름(예: /dev/vda1)을 인자로 받습니다. df 명령어를 사용하여 해당 파일 시스템이 현재 마운트되어 있는지 확인하고, 마운트된 경우 사용률과 사용 가능한 여유 공간을 보고합니다. 마운트되지 않은 경우에는 적절한 오류 메시지를 표시합니다.
마운트된 파일 시스템 사용량 확인
이번 챌린지의 목표는 주어진 파일 시스템의 상태를 보고하는 스크립트를 만드는 것입니다. 스크립트는 확인할 파일 시스템의 이름을 단일 명령줄 인자로 받습니다.
작업
스크립트는 다음 작업을 수행해야 합니다.
- 파일 시스템을 나타내는 단일 명령줄 인자를 받습니다(예:
df --output=source로 나열된 소스). - 제공된 파일 시스템이 현재 시스템에 마운트되어 있는지 확인합니다.
- 파일 시스템이 마운트된 경우, 사용률과 사용 가능한 여유 공간(KB 단위)을 보여주는 메시지를 출력합니다.
- 파일 시스템이 마운트되지 않았거나 인자 개수가 올바르지 않은 경우, 명확한 오류 메시지를 출력합니다.
요구 사항
다음 요구 사항을 준수해야 합니다.
- 스크립트 이름은
mount.sh여야 하며~/project디렉토리에 위치해야 합니다. - 파일 시스템 정보를 수집하려면
df명령어를 사용해야 합니다. - 셸 배열과
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))구문을 사용할 수 있습니다. $#을 사용하여 스크립트에 전달된 인자 개수를 확인하는 것을 잊지 마세요.
요약
이번 챌린지에서는 파일 시스템 사용량을 모니터링하는 셸 스크립트를 성공적으로 작성했습니다. 명령줄 인자를 처리하는 방법, 특정 출력 옵션과 함께 df 명령어를 사용하는 방법, 그리고 명령어 출력으로 배열을 채우는 방법을 배웠습니다. 또한 for 루프를 사용하여 배열을 순회하며 특정 파일 시스템에 대한 정보를 찾고 표시하는 연습을 했습니다. 이번 챌린지를 통해 셸 스크립팅, 텍스트 처리 및 시스템 정보 검색 능력이 향상되었습니다.



