What is a System Administrator?
Essential Duties of a System Administrator
Linux Distributions
Notation and Typographical Conventions
Units
Man Pages and Other On-line Documentation
Other Authoritative Documentation
Other Sources of Information
Ways to find and Install Software
Where to host
Specialization and Adjacent Disciplines
A system administrator (sysadmin) is responsible for:
Upkeep, configuration, and reliable operation of computer systems.
Managing multi-user computers like servers.
Source: Wikipedia, 2018.
Key responsibilities include:
Controlling access to systems
Adding and configuring hardware
Automating routine tasks
Overseeing backups
Installing and upgrading software
Monitoring system performance and security
Troubleshooting system issues
Documenting processes and configurations
Collaborating with vendors
Responding to emergencies or "fire fighting" incidents.
Responsibilities may be distributed among team members:
It is essential for at least one person to have comprehensive knowledge of all components.
This ensures tasks are performed correctly and consistently.
A Linux distribution comprises:
The Linux kernel (core of the operating system)
Various software packages providing commands and functionalities.
All distributions share the same kernel lineage but may differ in:
Package format
Type and number of packages
Focus and support.
Hundreds of independent Linux distributions exist:
Distributions derived from Debian and Red Hat lineages are gaining predominance in production environments.
Differences among Linux distributions are generally minor, often revolving around installation ease and available software libraries.
Major distributions typically feature:
Simple installation procedures
Desktop environments
Package management systems.
You can test distributions via cloud instances or local VMs.
Choosing a distribution signifies an investment in a vendor's methodology.
Important questions to evaluate a distribution:
Will it be supported in five years?
Is the vendor prompt with security updates?
Is there an active community and good documentation?
What support is available and at what cost?
Distribution | Website | Comments |
---|---|---|
Arch | archlinux.org | For those who fear not the command line |
CentOS | centos.org | Free analog of Red Hat Enterprise |
CoreOS | coreos.com | Containers, containers everywhere |
Debian | debian.org | Free as in freedom, most GNUish distro |
Fedora | fedoraproject.org | Test bed for Red Hat Linux |
Kali | kali.org | For penetration testers |
Linux Mint | linuxmint.com | Ubuntu-based, desktop-friendly |
openSUSE | opensuse.org | Free analog of SUSE Linux Enterprise |
Oracle Linux | oracle.com | Oracle-supported version of RHEL |
RancherOS | rancher.com | 20MiB, everything in containers |
Red Hat | redhat.com | Reliable, slow-changing, commercial |
Slackware | slackware.com | Grizzled, long-surviving distro |
SUSE Linux | suse.com | Strong in Europe, multilingual |
Ubuntu | ubuntu.com | Cleaned-up version of Debian |
Featured distributions include:
Debian GNU/Linux
Ubuntu Linux
Red Hat Enterprise Linux (RHEL) and CentOS
FreeBSD
Red Hat, a leading player in the Linux ecosystem for over two decades:
Dominates the open source software market.
RHEL targets production environments in large enterprises requiring support services.
RHEL is open-source but requires a paid license.
Fedora serves as a test bed for innovations before they reach RHEL.
Shell prompt notation:
$
: Indicates a normal, unprivileged user.
#
: Indicates the shell prompt for the root user.
Common shell globbing characters:
*
: Matches zero or more characters.
?
: Matches exactly one character.
~
: Represents the current user's home directory.
~user
: Refers to another user's home directory.
Example | Meaning |
---|---|
1kB file | A file that contains 1,000 bytes |
4KiB SSD pages | SSD pages that contain 4,096 bytes |
8KB of memory | Not used in this book |
100MB file size limit | Nominally 108 bytes; in context, ambiguous |
100MB disk partition | Nominally 108 bytes; probably 99,999,744 bytes |
1 GiB of RAM | 1,073,741,824 bytes of memory |
1 Gb/s Ethernet | A network that transmits 1,000,000,000 bits per second |
6TB hard disk | A hard disk that stores about 6,000,000,000,000 bytes |
Man pages, accessible via the man
command, provide concise descriptions of:
Commands
Drivers
File formats
Library routines.
Organization of Man Pages:
Linux divides man pages into sections, though the structure isn't crucial for most topics.
How to read man pages:
Run man title
to view specific manual pages.
Titles usually represent commands, devices, files, or library routines.
Man pages searched in numeric order, prioritizing sections describing commands (sections 1 and 8).
man -k keyword
or apropos keyword
lists man pages containing the keyword.
Storage of man pages:
Source code is usually stored under /usr/share/man
and compressed using gzip
.
man
command decompresses them on-the-fly.
Man pages provide only a part of the official documentation.
Additional documentation is often scattered on the web.
Includes system-specific guides.
Package-specific documentation:
Maintained by individuals or third parties like the Internet Systems Consortium and Apache Software Foundation.
Supplemental materials include white papers and technical reports.
Books:
O’Reilly publications are widely respected in the tech industry.
RFC Publications:
This category is authoritative and useful for system administrators.
Keeping current:
Social media platforms like Twitter and Reddit host active communities with valuable insights.
HowTos and reference sites:
Contain guides, tutorials, and articles on executing specific tasks in UNIX and Linux environments.
Conferences:
Excellent networking opportunities.
Offer insights into technology trends, training, certifications, and learnings on latest products and services.
Modern operating systems use packages that can be installed independently.
Default installations provide basic packages that can be expanded or contracted as needed.
Adding new software:
Determine the canonical name of the software package required.
Commands such as the installation of tcpdump
exemplify this process.
Building software from source and installing via a web script are alternative methods.
Operating systems and software can be hosted at:
Private data centers
Co-location facilities
Cloud platforms (recommended for new projects)
Cloud hosting advantages include:
No capital expenses
Low initial operating costs
No hardware management required
Scalable storage, bandwidth, and compute options
Ready-made solutions for common needs like databases and monitoring.
System administrators work alongside various roles within IT:
DevOps
Site reliability engineers
Security operations engineers
Network administrators
Database administrators
Network operations center (NOC) engineers
Data center technicians
Architects.
Specialization in areas can enhance efficacy.
The overarching goal is achieving organizational objectives.