Skip to content

Project — Linux System Information Utility

Beginner portfolio build for the Linux for Cloud & DevOps track — ship a small, reliable host inventory CLI.

Project Overview

Goal: Produce a single command that prints a structured system information report suitable for handoff notes and onboarding.

Deliverable for your portfolio:

  • Git repository with a clear README
  • sysinfo (or linux-info) Bash script
  • Human-readable and optional machine-readable (--json or key=value) output
  • Sample run captured under examples/
  • Documented exit codes

Estimated cost: £0.

Goals

  • Collect OS, kernel, hostname, uptime, CPU, memory, disk, and primary IPv4
  • Support --help and a quiet/machine mode
  • Fail clearly when required tools are missing
  • Include a short validation script or checklist

Stack

Piece Choice
Language Bash
Tools hostnamectl, free, df, ip, lscpu (or /proc)
Layout bin/sysinfo, README.md, examples/

Prerequisites

Milestones

Milestone 1 — Repo skeleton

Create ~/rebash-linux-sysinfo, add .gitignore, README outline, and bin/sysinfo stub with set -euo pipefail.

Milestone 2 — Collectors

Implement functions for identity, memory, disk, and network. Prefer /proc and standard utilities over fragile parsing.

Milestone 3 — Output formats

Default human report; optional --kv or --json (JSON may use python3 -c or jq if documented).

Milestone 4 — Polish

--help, non-zero exit on missing dependencies, examples/sample.txt from a real run.

Success criteria

  • Another engineer runs ./bin/sysinfo in under two minutes
  • Output includes at least OS, kernel, memory, root disk usage, and one IP
  • README lists prerequisites, usage, and exit codes (0 ok, 2 usage, 3 missing tool)